OO第四单元总结

OOUnit4总结分析以及课程总结

一、Unit4架构设计

Task1

本次作业,需要完成的任务为实现一个UML类图分析器UmlInteraction,学习目标为UML入门级的理解、UML类图的构成要素及其解析方法。其主要功能集成在MyUmlInteraction中。涉及元素包括了Class、Atrribute、Parameter、Interface、Generalization、InterfaceRealization、Association、AssociationEnd、ClassAttributeVisibility、TopParentClass等等。

Task2

本次作业,在上次作业基础上,扩展解析器,使得能够支持对UML顺序图和UML状态图的解析。针对规则新建对应的类。

Task3

本次作业,在上次作业基础上,继续扩展解析器,加入了检查功能。针对规则新建对应的类。

 二、架构设计以及OO方法理解演进

  第一单元为表达式求导作业。在刚刚接触java的时候,还没有很好的树立起面向对象编程的意识,因此第一次作业设计的类很少,没能很好的完成题目的要求。好在经过老师的讲解,我逐渐领悟了面向对象这种编程思想,在接下来的两次作业中利用继承和接口进行了重构,对项进行分类封装,分别处理,把所有的项分为单项和组合项,单项又分为幂函数项和三角函数项(由于常数项求导为0,所以省略),组合项有乘积和嵌套,分别制定求导策略。这个单元的重点就在于类的继承和接口的调用,类和接口的封装也是面向对象的关键所在。

  第二单元为电梯调度作业,主要涉及了并行进程的知识。多线程编程在实际工作科研中十分常见,是一门重要的技能。在架构的设计方面,注意一系列原则:OCP——开闭原则、LSP——里氏替换原则、ISP——接口隔离原则、DIP——依赖倒置原则。从上层架构开始写,最后再完善每个模块的内容,实现了高层模块不应该依赖于底层模块,二者都应该依赖于抽象的原则。本单元的关键在于进程间的通信,也就是进程间的数据共享。通过对方法或对象进行上锁来保证数据的同步。但是盲目的对所有方法甚至类进行上锁是一种鲁莽的行为,会极大的降低程序的效率。本单元作业涉及生产者消费者模式和工厂模式,对于作业的架构设计很重要。

  第三单元是JML形式化设计作业。JML(Java Modeling Language)是用于对Java程序进行规格化设计的一种表示语言。JML是一种行为接口规格语言(Behavior Interface Specification Language,BISL),基于Larch方法构建。本单元很重要的一点就是:对于代码实现者来说,最重要的就是不能照着规格来写代码,规格只是需求,我们要分析需求,从面向对象的角度出发寻找最好的解决办法。本单元给我留下印象最深的一点就是一个项目的规格可以用代码写出来,但是规格不等同于实现,具体的实现架构还是要实现者自己确定。在实现的过程中,我感觉到自己很容易被规格的架构所诱导,沿袭规格的架构使自己的实现很复杂。本单元更为突出的是对图算法的考察,在这方面我以后还要巩固练习才能对算法更加熟练。

  第四单元是UML图作业。我们主要学习了面向对象编程中重要的建模语言UML,并且依据课程组提供的接口实现了UML树形结构的解析器。本单元展示了一个项目的整个结构,让我认识到了实现一个功能时减少类与类之间的耦合的重要性。

三、测试理解与实践的演进

在第一单元和第二单元中,我都是通过人工手动测试,想的一些测试样例。这样的测试方法虽然然方便,但是很难覆盖到所有的情况,因此这些自己构造的样例很难测出程序的全部bug。

在第三单元和第四单元中,我开始用自动化测试和JUnit测试的方法,新的测试方法应用于这两单元的作业取得了不错的效果。

四、课程收获

学习到了java编程的基础知识,可以熟练运用java语言编程了。在阅读java代码方面也有所长进。

逐渐领悟了面向对象编程的思想,完成了从面向过程到面向对象思想的转变。

复习了图算法,并扩展了算法的知识。

学习了自动化测试方法。

学到了JML和UML的标识方法。

五、三个具体改进建议

希望研讨课老师可以更多的主导讨论的方向,现在大家的分享的知识水平参差不齐,有些大佬讲的我属实听的一知半解,没能很好的实现研讨课的价值。

希望实验课能有订正答案的环节,不然每次都是做完就结束了。

主题课程作业要是能有典型架构实例分析就好了,这样经过老师的分析就能更好的理解优秀代码的架构涉及思路是什么了。

六、线上OO课程的体会

理论课的线上线下学习,除了学习氛围之外都没什么太大的区别。视频课老师做的也很精致,学生也可以反复观看,感觉挺好的。

对于研讨课来说,师生的交流受阻,使得效果打折了。

作业部分的话,其实是不受影响的,只要摆正心态,在家也能肝。

最后,感谢助教和老师本学期的付出~

原文地址:https://www.cnblogs.com/oofirst/p/13166576.html