OO第四单元总结

OO第四单元总结

一、本单元三次作业的架构设计

作业1

第一次作业没有对原有架构进行改变,所有的方法实现都集中在MyUmlInteraction类里。

作业2

第二次作业需要解析三种图,分别是类图、时序图和状态图。因此,我把这三种图的数据分别存储在三个类中,分别是ClassManager类、SequenceDiagramManager类和StateMachineManager类,并在这三个类中对图的数据进行处理和查询。

作业3

作业三在作业二的基础上增加了规则检查。
由于在此作业中对类图的规格检查较多且较繁琐,因此我为处理类图新建了一个classBasicOperation类,以对类图的数据进行查询和处理,如查询类图的继承关系、接口实现关系、关联关系等等。 classManager类会调用classBasicOperation类来进行查询。此外,我创建了classData类以存储类图的数据,当classBasicOperation和classManager需要对类图的数据进行处理时,他们都需要从存储类图数据的classData类中获得数据。classData类采用了singleton模式,以确保classBasicOperation和classManager类在相同的数据上进行操作。

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

单元1

第一单元的作业都是表达式求导。我在第一单元开始尝试使用继承、多态等面向对象结构。并且在第一单元开始接触到工厂模式这个设计模式。

单元2

第二单元主要关于多线程。在此单元中我对多线程和死锁有了许多认识,并且认识到架构设计的重要性。若架构设计得好,程序执行逻辑一目了然,那便不容易产生死锁。在此单元中,我接触了蛮多设计模式,但是我在作业中只使用了较容易实现的singleton模式和consumer-producer模式。此外,在这单元中,我接触到了评判程序架构可扩展性的SOLID原则,让我在写程序的过程中有了一个参考方向。

单元3

第三单元主要关于JML,由于作业的程序都已经封装好了,我们只需要按照JML规格实现一些方法,在架构上并没有什么大的改动。

单元4

第四单元主要关于UML。 我在这单元中认识到OO体系的庞大与复杂。OO的架构可以用许多种类的图来表达,在作业中我们就解析了三种图,即类图、顺序图和状态图。UML图可以帮助我们清晰地表达我们的架构设计,让程序的逻辑更清晰。

三、四个单元中测试理解与实践的演进

在第一单元中我用python写了评测机。
在第二单元中由于作业难度对我来说较大,因此我只是简单地用python写了自动生成测试数据的程序,并非评测机。
在第三单元和第四单元中,课程组向我们介绍了JUnit测试工具,因此我就使用JUnit针对个别方法进行测试。但是JUnit的使用较繁琐,因为需要手动生成测试数据,并且手动生成测试数据要保证全覆盖也较困难。

四、课程收获

  • 提高了代码量,一共有12次编程作业,而每一次作业都需要好几百行代码,让我越来越习惯写程序(写bug)。
  • checkstyle的使用让我培养了较好的JAVA编程习惯。
  • 对各种OO思想有了比较初步的理解,如抽象思想,把代码一层一层地抽象出来,让程序架构更清晰。
  • 培养了我的一些信心。除了第一单元的第三次作业,其余的作业我都完成了,虽然强测和互测还是会有bug,但是课程组还开设了bug修复阶段让我们修bug。对我来说整体难度较大的是第二单元和第三单元,硬着头皮在网上查了好多第二单元的多线程以及第三单元的算法的资料后,最终都通过了测试。

五、对课程的三个具体改进建议

  1. 希望实验课提交后可以给一些具体的反馈。此外我觉得对于需要读好多代码的题(第三单元的两次实验课),实验课的时间太赶了。
  2. 在JML和UML第三次作业,我感觉和JML和UML学习的联系已经不大了,好像比较侧重于算法方面。
  3. 希望可以在第二次作业时透露一点第三次作业可能会增加的要求,给菜鸡一点心里准备,不然每次第三次作业的难度都来个大提升,一时接受不能。

六、线上学习OO课程的体会

线上学习OO课程我觉得体验蛮好的,可以以自己能够接受的速度观看老师录制的教学影片,但是坏处就是研讨课和课程讨论感觉线上和线下的气氛还是有差别的。然后最重要的一点就是再也不必烦恼笔记本电脑的电量问题了,在学校的话常常会烦恼要在哪充电,在家就没这个烦恼了。

最后必须大夸特夸咱们的课程组,把写程序搞得跟打游戏似的,让人欲罢不能。课程中总是给出很多数据,如哪些测试数据通过了、哪些没有通过,让人看到自己的进度,然后不断朝着目标努力。中测就像小boss,强测是大boss,互测是玩家互相切磋,讨论区是秘籍攻略,bug修复是死了复活后继续打boss,实验课是副本......。总之,感谢课程组的付出。我这学期也投入了许多时间在这门课上,这门课的节奏也蛮适合我的,如今要结课了,我还是很不舍的,毕竟这是我在北航的四个学期里体验最好的一门课了。

最后的最后,祝愿OO课越办越好!

posted @ 2020-06-17 21:36  samuel234  阅读(194)  评论(0编辑  收藏  举报