面向对象设计与构造 第四单元总结
面向对象设计与构造 第四单元总结
第四单元架构设计
本单元作业是对UML类图、时序图、状态图的分析,了解UML图的组成结构,由此来实现查询UML图相关性质的功能,并在后续开发中实现错误形式的检验。本单元整体构建难度不大,对于性能的要求不高,难点主要在于理解UML图以及理解逐渐谜语人的指导书对于指令的描述。由于平时摸鱼太多了导致烤漆时复习时间紧张,因此只做了第一次作业,所以就简单看看第一次作业的架构。
第一次作业

这次作业是实现一个UML类图分析器UmlInteraction,为了完成这次作业我定义了MyUmlClass、MyUmlInterface、MyUmlOperation来存储类、接口和方法,存储容器基本上选择的是HashMap,由于查询和操作时对于Key值可能不同的分别以ID、name为Key值建立了HashMap,方便不同的查询与操作。
四个单元中架构设计及OO方法理解的演进
第一单元
第一单元是多项式求导,这一单元也是我第一次接触Java和面向对象编程,因此第一单元的第一次作业基本上还是面向过程,并且由于过于针对第一次作业的格式,导致第二次作业时直接进行了重构,改用递归下降将多项式拆分成一个个的因子,最后对它们进行处理。通过这一单元,我对于面向对象编程思想有了进一步的理解,同时也学习了递归下降分析法,深刻认识到了一个优秀架构的重要性。
第二单元
第二单元是多线程电梯,这一单元我选择了集中式调度,采用LOOK算法来让电梯自由竞争,写法简单,性能也有一定的保证。通过这一单元,我掌握了简单线程并发编程,了解了部分线程安全问题及多线程debug的方法。
第三单元
了解到了JML规格,完成作业时照着规格写就完事了。
第四单元
见上文
总结自己在四个单元中测试理解与实践的演进
由于太弱小了,因此测试基本上都是靠同学们的测试程序和测试数据,WA了之后大喊一声“寄!”,然后对代码进行一个bug的de,艰难的通过测试。
总结自己的课程收获
这学期的OO虽然一直在夹缝中求生存,但是经过了一学期OO的毒打,我的收获也很大。
- pre和第一单元,学习了Java编程语言和面向对象编程的思想。
- 第一单元的三次作业中学习了正则表达式匹配和递归下降分析法,同时让我对面向对象的编程思想有了进一步的理解,认识到了架构的重要性。
- 第二次作业学习了多线程并发设计,了解了线程安全问题。
- 第三次作业学习了JML规格,同时对于编程时容器的选择有了进一步了认识。
- 第四次作业了解了UML图的结构和组成。
立足于自己的体会给课程提三个具体改进建议
- 课程开始时或者开始之前多来点Java相关的基本教程。
- 第一单元的架构设计比较重要,希望可以多来点提升,防止走弯路。
- 可以调换一下第三单元和第四单元的顺序,第四单元临近烤漆,时间紧张,比较简单的第三单元更适合放在最后面来缓解压力。
浙公网安备 33010602011771号