BUAA OO第四单元作业总结

一、总结本单元作业的架构设计

  本单元主要完成的是UML类图、顺序图、状态图的构建,首先需要解析传入的各条参数,因此设计了预处理类来初始化整个uml图,解析所有成员的属性,并把它们分别对应着加入到自己该在的元素之下。由于每个元素都有name、id等属性,因此我设计了information类,来存储所有元素的基本信息,所有类都继承于information类,而其他的属性则在各自的类中分别添加,来构成整个图的各种联系。由于某些元素的原始类中并没有存储很多关键信息,比如class的父类,class实现的接口,interface的各个方法等,因此需要一个Myxxx类来将这些信息封装起来,构成一个新的类。而对于第三次作业新添加的合法性检查,我单独设计了MyCheck类进行方法的编程,这样做的好处是将图的构建与用于检查的代码分开,减小耦合度。

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

  第一单元:这一单元主要是考虑层次化的设计,许多同学用的递归下降。在学习了同学介绍的递归下降方法,确实使第三次作业变得直观了一些。

  第二单元:电梯作业主要讲的是多线程,设计模式主要是生产者消费者模式。第二单元是我觉得最有挑战性的作业。因为设计的结构比较清晰,所以三次作业都没有重构,而是直接在上次作业的基础上加以修改,让我认识到要注意代码的可扩展性。

  第三单元:这一单元基本只需要按照规格去实现代码就可以,架构上不用太多的进行考虑,还有涉及最短距离和强连通的方法,建立了图后使用dijstra和tarjan算法。JML让我感受到了设计与实现的分离,既方便了我们设计程序,同时也便于我们开展单元测试。

  第四单元:最后一个单元是UML,架构设计则按照UML的思路进行建模,因为代码量非常大,让我感受到了工程化设计的重要性。

三、总结自己在四个单元中测试理解与实践的演进

  因为测试水平不够,我之前都是肉眼debug,看群里同学说的特殊点去测试,后来第三单元尝试使用JUnit进行单元测试,更容易定位到程序的bug,也更容易找到bug。第四单元就是和同学进行对拍找问题。

四、总结自己的课程收获

  首先就是学会使用基本的java了,其次就是尽量会用面向对象的思想去思考问题,虽然我基本还是面向过程,但现在会去思考需要哪些对象,哪些类,该怎么构建他们之间的关系。最重要的会注意代码的可扩展性,使用工程化设计方法,这在迭代开发中是十分重要的。最最最重要的是,终于愿意去动手测试数据了,会尝试用新方法debug。

五、立足于自己的体会给课程提三个具体改进建议

  1、理论课太抽象,希望多点例子的讲解。

  2、实验没有反馈,不知道正确答案,感觉问题依然存在。

  3、希望第一单元作业不要这么难,照顾一下不会Java的同学。

posted @ 2021-06-26 20:57  y123h  阅读(60)  评论(0编辑  收藏  举报