OO第四单元博客作业

OO第四单元博客作业

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

第一次作业

 

Information中存储的是类图中的各种信息,主要通过hashmap存储类和属性、操作等的对应关系,MyUmlInteraction实现接口UmlInteracton中的方法。

第二次作业

 

和上次作业相同,Information仍然存储的是类图中的各种信息,MyUmlClassModleInteraction和MyUmlStandardPreCheck使用information中存储的信息实现接口定义的方法,MyUmlCollaborationInteraction和MyUmlStateChartInteraction需要定义分别存储顺序图和状态图的信息,实现相关接口定义的方法。

 

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

(1)第一单元——表达式求导

第一单元实现多项式求导,三次作业总体来看,面向过程的设计思想明显,尤其是第一次作业,大量使用类代替面向过程设计中的函数,而且也没有做到好的层次化设计,如第一次作业,因子分为三种x、cos(x)、sin(x),它们都包含系数和指数,三个可继承自同一个父类,但是在进行第一次作业的实现的时候,我并没有对其加以区分,在第三次作业的时候不得不全部推倒进行重构。

(2)第二单元——多线程电梯

多线程电梯的第一次作业通过轮询的方式完成输入和电梯线程的同步和互斥,采用的是FAFS的调度方式,不需要实现特殊的调度方法。第二次作业中,需要实现ALS捎带算法,但是由于对于多线程的理解不够深刻,第二次作业花费了大量时间,在多线程的同步和互斥问题上遇到了很多问题。经过第二次作业的实践,在电梯作业完成的比较顺利,在请求的处理上也作业一些优化,总体来说也算是重构。

(3)第三单元——地铁线路查询

地铁线路查询这个单元的作业在架构和实现方法上相对来说都比较简单,实现方法上借鉴了讨论区大佬分享的方法。二三次作业可以复用前一次作业的代码,只进行功能上的扩充和完善,层次化设计也比较简单。

(4)第四单元——UML图解析

在第一部分已经简单介绍了第四单元两次作业的架构,这两次作业的信息存储实现方法采用了比较简单的方式,通过hashmap实现相关信息之间的对应关系,查询方法也只是根据输入指令在图中查询相关信息。

 

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

通过一个学期的OO课程的学习,对于测试我有了更深的理解和体会,测试是程序设计中非常重要的环节。OO课程设置弱测、中测、强测和互测环节,在完成前几次作业的时候,依赖弱测和中测的结果发现并修正程序中存在的问题,导致程序中的bug不能很好地发现和修复。在后面程序设计和完成时,我渐渐尝试自己通过分析和构造测试样例,虽然在强测中还是会出现问题,但是对于bug的发现和修复有了明显的提高。

 

四、总结自己的课程收获

(1)OO课程最重要的培养大家面向对象的思想,相对于之间面向过程编程,对于我而言这是一种完全不同的编程思想,经过一个学期的理论学习和实战联系,对于面向对象的思想,我有了更加深入的理解和认识。

(2)Checkstyle,最开始的时候对于checkstyle的很多规则不是很理解,比如每行的字符长度不得超过80个字符,方法的长度不得超过50行,类的长度不能超过500行。开始在程序设计的过程中,我并没有过多在意checktyle的规则,只是在程序完成之后一并修改所有的代码风格问题。在后来程序设计的过程中改变了之前的做法,在代码完成过程中就会注意代码风格的问题,代码风格的习惯有了很大的改进。

 

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

(1)两周一次的上机实验,这学期理论课安排在周五上午,上机实验安排在周五下午,理论课结束之后没有消化理解的时间,上机实验时需要对照ppt完成相关任务。

(2)希望可以在每次作业或者每个单元结束之后能够较快学习实现比较好的架构或者代码,这样有助于在下次作业中进行优化,只是可能会辛苦助教。

(3)指导书的一点小小建议,OO的指导书总体来说还是比较清晰明了的,但是仍有部分存在疑问的地方,如对最后一个单元作业的指导书有较多有疑问的地方,大部分都是通过老师和同学在讨论区发的贴子解决。

 

在一个学期的OO课程中学到了很多,也进步了很多,很感谢老师和助教一个学期的辛勤付出,也希望OO课程能够越来越完善。

 

posted on 2019-06-23 00:02  suirui  阅读(102)  评论(0)    收藏  举报

导航