buaa oo unit4 UML单元总结

1.总结本单元作业的架构设计

本次作业三种UML图:类图,顺序图和状态图。三次作业的架构几乎是一致的,有的只是对前一次架构的添加,很少有对前一次架构的修改,就直接拿最后一次作业的架构来讲好了。

整个的架构十分简洁(简单),没有根据三种图的类型再进行整合,直接根据需要从哈希表或者是列表中取出。自己编写的类里面,只有ClsOrFace类是MyClass和MyInterface的共同接口,其他的类都没有继承关系,主要是部分类里面有其他的类的成员集合。

对于各个元素的存储,我是解析后,存入了这个类里面

image

在查询或者是进行检查的时候,根据需要对合适的对象集合进行遍历,进行查询或者检查。

此次作业架构的主要难点是,对于UML的各个元素的类型和他们之间的关系的理解,以及对于指导书的准确理解,做到这两点,在架构上不会出现大的问题。

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

第一单元

对于面向对象的理解比较浅,三次作业几乎三次重构,第一单元主要运用了工厂模式的架构设计,在做第一次作业的时候完全没想到第二次就要加上带有括号嵌套的内容,导致自己十分被动。在第二次作业及时调整思路,对整个架构进行优化。利用面向对象的方法,理清了自己程序中各个类和他们实现的功能。

img

第二单元

第二单元重在生产者和消费者模式的理解和实现,面向对象的层次化设计通过第一单元的训练有了一定程度的理解,但是面对多线程的同步互斥问题,很容易就出现问题,跟架构相关的就是一个调度器的设计,在第一次作业时,根据课程组的强调,我便加入了这个在当时看上去毫无意义的调度器,这对于后面多电梯的时候的意义重大,这样好的架构极大的降低了编程的复杂性。

image

第三单元

第三单元就几乎是按照JML的要求,按部就班的进行实现,架构方面不用考虑过多,主要是避免TLE,以及对JML理解不充分的问题。

抛开作业来看,第三单元的代码,面向对象的思想架构贯穿始终,是一个非常典型和精妙的一个社交网络架构设计,对于其他程序的设计具有极高的参考价值。

第四单元

第四单元UML实现起来也相对轻松,相对于前两单元的作业,不需要过多的考虑架构方面的问题,但是也需要对于本次作业的类的继承和实现关系有一个清晰认识,以及在程序编写时,需要实现哪些类,以及类的属性和方法的设计。总的来说,按照课程组给定的框架,本次作业的发挥空间也十分有限,面向对象方法在本次作业中主要体现在对于各种类的建立和使用之中。

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

在第一个单元,不会写评测机,只会自己构造一些数据(往往造出的数据还比较低能),不仅写代码非常的艰难,自己的测试更是一筹莫展。

在第二个单元开始,逐渐学习写评测机的方法,在室友和其他dl的帮助下,逐渐完成了自己评测机的搭建。

在后面两个单元,也需要海量的测试,通过python程序进行数据生成,对拍验证。

4.总结自己的课程收获

1.熟练掌握了java语言的编程基础,掌握了不少java语言的特性,并能够熟练运用。

2.对于面向对象思想有了更加深入的认识,能够在编程中对面向对象思想进行使用。

3.极大提高了自学java技术的能力,课上时间有限,学到了宏观的框架,在完成作业的时候,需要通过自学掌握一下主流技术,对于自学能力的提升意义非凡。

4.认识到程序开发中可能出现的不少问题,oo课程如强测,互测,修bug这样的课程设计,让笔者对于自己的编程能力有一个比较清晰的认识,同时意识到,写出好的程序并不是一个简单的事,需要持之以恒的学习。

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

1.预习课程可以再加一点料,让同学们尽早认清oo课的难度和侧重点,如加入适量的工厂模式、生产者消费者模式这样的,很难在短时间内理解掌握的内容。

2.在第一二单元可以适当调整一下难度梯度,部分同学面对第一二单元的作业可能会感到手足无措,适当调整难度梯度,避免难度跨度过大可能会帮助到下一届的学弟学妹们。

3.每个单元的总结课有点水,比较浪费时间,建议适当压缩。

posted @ 2021-06-22 23:41  He_RZ  阅读(59)  评论(0)    收藏  举报