一、第四单元架构设计

这两次的作业是对UML类图、顺序图、状态图的解析。

第一次作业只是对UML类图的解析,并实现一些基本的查询操作,第二次作业引入顺序图状态图,增加了对顺序图状态图的查询操作,还实现了对类图的有效性检查操作。

这两次作业在架构设计方面我没做好。我只是简单的利用HashMap对一些需要的查询进行存储。对架构色剂没有清楚的理解,这种设计对后面的第二次作业的程序扩展造成了巨大的阻碍,而且对程序可读性也很差,做的确实不好。

第一次的作业需要对UML类图按照层次进行封装,包括类、接口、操作、关系;

第二次的作业可以在第一次的架构基础上进行扩展实现

二、四个单元中架构设计及OO方法理解的演进

第一单元作业是对多项式进行化简求导,主要的注意力主要放在了对正则表达式的识别处理上,我设计了表达式对象、项对象、因子对象,都各自实现了求导操作。这个单元的作业的坑点在于各种多项式错误的识别处理。这单元对于架构设计并没有过多注意,页不清楚好的架构设计对于程序可扩展性,可读性,debug有怎样的益处

第二单元是电梯系列,分别是傻瓜电梯(先进先服务策略,并且不顺路捎带)、智能电梯(第一次的基础上实现顺路捎带)、多部智能电梯调度;第一次的作业没有注意架构设计,没有实现电梯对象,就利用调度器从请求队列中按顺序取请求,进行输出。第二次作业建立了调度器对象和电梯对象,设计了三个线程:输入线程、调度器线程、电梯线程,两种请求队列(第一种是输入线程项线程放入请求,调度器从中取请求,其实就是第一次电梯作业的队列(用户请求队列),还有一个是电梯捎带请求时将原请求插入队列,然后执行完捎带的请求就将原请求又取出来继续执行(命名为电梯请求队列))。调度器线程不断地扫描请求队列与电梯状态对比看是否符合捎带,如果符合就把这个请求插到电梯请求队列,如果队列为空调度器线程等待。电梯线程从电梯请求队列取出请求执行,如果队列为空电梯线程就等待。第三次电梯作业是实现三部有顺路捎带功能的电梯,这三部电梯的某些性质不一样(运动速度、停靠楼层、最大容纳人数)。这次作业可以不用重构,但是电梯类需要改一下,添加一些属性:运动速度、停靠楼层、最大容纳人数。其他的设计与第二次电梯作业一样。为了能满足换乘请求,输入线程在插入请求时,将不能直达的请求拆分成几个分段请求,执行完一段请求,就将下一段请求加入请求队列由调度器进行调度执行。

第三单元作业比较简单,是按照JML规格语言写程序,比较简单。这单元的作业架构设计做的较好,使得程序扩展很方便,JML规格语言给了一个通用标准的方式来表达对类和方法的详细设计。这单元的难点在于对无向图(带权或者不带权)的存储以及对最短路径的查询算法。

最后一单元就是要将各种元素(例如类图中:类、接口、关系…)进行抽象,并完成各种查询操作。

三、测试理解与实践

第一单元的测试:利用自己在测试自己的程序过程中遇到的异常情况进行测试数据设计,就是对一些边界情况进行测试。

第二单元的bug出现多是因为各种程序上的小毛病导致线程可能无法结束,出现死循环的情况,这种情况需要对程序的架构设计较为清楚,用设置断点等的方法进行debug

第三单元按照规格写代码,使用Junit进行测试。

第四单元,对不同的查询操作分别设计不同的测试场景,例如接口实现查询操作,实现场景应包括(接口间的继承、一个类实现多个接口、接口多重继承、父类子类之间的继承)。这样很容易找出自己程序的问题。

四、课程收获

熟练了java语言,,并对面向对象有了清楚的理解;

对程序的架构设计的优点有更深入的了解和认识;

对程序测试方法有了更多的了解

编程能力和debug能力的提升

五、建议

中测难度可以适当加强,强测中也会经常出现同质bug,希望可以对强测数据进行改进

转载于:https://www.cnblogs.com/mujiangtao1234/p/11076572.html

OO第四次总结学期总结相关推荐

  1. OO第四单元小结暨2019春季学期OO课程总结

    OO第四单元小结暨2019春季学期OO课程总结 目录: OO第四单元总结 一.总结本单元两次作业的架构设计 第一次作业 第二次作业 学期最终总结 二.四个单元中架构设计及OO方法理解 2.1 第一单元 ...

  2. 【OO学习】OO第四单元作业总结及OO课程总结

    [OO学习]OO第四单元作业总结及OO课程总结 第四单元作业架构设计 第十三次作业 第十四次作业 总结 这两次作业架构思路上是一样的. 通过将需要使用的UmlElement,封装成Element的子类 ...

  3. 四年上册级计算机教学计划,四年级上学期教学计划(通用5篇)

    四年级上学期教学计划(通用5篇) 教学计划要以校工作计划和德育工作计划为指导,本着为学生服务的宗旨,养成学生崇高的思想品质和良好的道德情操,努力培养德.智.体.美全面发展的接班人.下面是小编为大家整理 ...

  4. 2019年北航OO第四单元(UML任务)及学期总结

    第四单元两次作业总结 第十三次作业 需求分析 本次作业需要完成一个UML类图解析器,所需要解析的只有符合UML标准和能够在Java 8中复现的UML类图.查询指令存在两种:仅与所查对象有关的指令,以及 ...

  5. OO第四单元博客作业

    一.UML作业架构设计 1.第一次作业 其中 Main 是入口类,MyUmlinteraction实现了接口,UmlInteractionBase为MyUmlinteraction实现提供了底层功能, ...

  6. OO第四单元作业小结

    一.本单元两次作业的架构设计 1.第一次作业 整体思路:以class为核心,建立MyInterface.MyAttribute.MyOperation.MyAssociation四个类分别储存每个类的 ...

  7. OO第四单元作业总结

    第四次博客作业 本单元架构设计 第一次作业 在自己尝试画了第一次作业的类图后,发现自己作业的架构依旧混乱不堪.第一次作业中,我总共建了四个类,除去MyUmlInteraction类外,ClassRel ...

  8. OO第四单元——UML及其解析器——总结 暨 OO课程大总结

    第四单元总结 第四单元主要内容是写代码解析UML,因此需要理解UML UML相关 starUML的储存方式是一个.mdj文件,通过使用文本编辑器观察这个文件,我们可以看出这是一个json格式储存的文件 ...

  9. 小学计算机四年级教学计划,小学信息技术四年级第二学期教学计划

    一.教材分析 本册教材的特点是:体例上采用以信息为主线.任务为核心的模式:引入研究性学习方法,充分培养学生的自主性和探究性精神:强化任务淡化计算机知识:任务和例题实用性强:任务之间互相融合:教材使用适 ...

最新文章

  1. .Net Core快速创建Windows服务
  2. linux恢复设置文件夹,将.bashrc文件恢复到Ubuntu中的默认设置
  3. cpu满了卡住 linux_Linux系统中CPU占用率较高问题排查思路与解决方法
  4. Python基础(7)——for循环
  5. CentOS安装PPTP ×××
  6. 特征工程之特征选择_特征工程与特征选择
  7. 数据结构之树:树的介绍——9
  8. js 匿名函数_编写高质量箭头函数的5个最佳做法
  9. 百度开源业内首个口罩人脸检测及分类模型,携手开发者共同“抗疫”
  10. iOS 16要来了:速度更快、UI改动明显?苹果WWDC大会或将在线下举行
  11. asteroids模板 游戏 java_在高级Java游戏中存储全局/静态变量的最佳方法是什么?...
  12. java文件无法导出excel文件,【excel表格文件格式无效】java导出excel,excel打不开,报文件格式无效,怎么解决!...
  13. AcWing 1843. 圆形牛棚(暴力+枚举)
  14. S3C2440 LCD驱动(FrameBuffer)实例开发一(转)
  15. 计算机网络——网络层
  16. BIGEMAP地图下载器(91卫图助手)功能对比
  17. 【Qt5】关于Qt5对xp的兼容说明
  18. 碳素结构钢的实际拉伸性能可能与规定的最小值不同
  19. UGUI之菜单动画效果制作思路
  20. 单元格内容分列多行_『如何将excel单个表格里的多行数据分列』

热门文章

  1. Node.js模块化开发(非常详细,满满的干货)
  2. 报错:Uncaught TypeError: 获取的元素节点.setAttribute is not a function
  3. 移动web-margin塌陷
  4. 【数据结构和算法笔记】遍历生成树
  5. 开源视频会议系统:OpenMeetings 安装方法
  6. macOS下JetBrains配置修改错误导致无法启动解决方案
  7. Python pip install修改默认下载路径
  8. 小白学vb还是python_小白学 Python 爬虫(30):代理基础
  9. HDOJ水题集合8:DBFS
  10. C++奥赛一本通递归题解