301
社区成员
发帖
与我相关
我的任务
分享最后一个单元的oo迭代从代码角度开发来说相较于前三个单元更为简单,但要求画UML类图、状态图以及顺序图。本单元无互测。
//终于oo也要结束了
最后版本迭代的UML:


如类图中所示:
对于一切书籍的调度和分配设立了统一的最高单位:Library
在Library类中设置了许多参数作为容器,起到各个部门的作用:
U1的设计是递归下降,尽管有oopre的基础,但是第一单元的整体设计依然是较为混乱,想到哪写到哪,很多地方在刚写完都出现了很多的漏洞,互相之间耦合程度过高,相互调用导致CTLE,互测也被测出了bug
U2是电梯的多线程,刚开始对于死锁,线程安全等问题理解不够深刻,经常出现bug,但在架构设计上比U1成熟了很多
U3是根据JML设计来在合理的时间复杂度内完成自己的实现,由于这个是根据JML来辅导的,所以从官方给的架构设计上学到了很多,更加加深了对高内聚低耦合的感念的理解,这里应该是一次对架构设计思路的一次蜕变个人认为
U4更像是对个人架构设计能力的一个小测验,本次是没有任何提示的完全按照自己的思路去设计架构,并且是先画出UML,根据自己的UML来写代码,再在过程中逐步修改更新自己的UML类图等,第二次由于更新了官方包和新的续借等要求,所以对于白天和黑夜的整理要相对于第一次有所变化,因为首次实现是成功做到了高内聚低耦合(个人认为),因此在迭代的过程中非常顺利,只需要小小改动一下操作的位置。
最开始只是靠特殊数据和自己编造数据来进行手动测试,但也就是U1的第一次作业,在后来的学习中就是利用编写的评测机进行大量数据的强测去找bug,虽然但是,由于构造的伪随机性,一些比较特殊的极限样例是很难构造的,需要在提供数据时特殊考虑加入其中(并用来互测)。
相较于oopre,oo课程的代码量更大任务更多,但每次成功完成时总有一种喜悦感,自己亲手参与架构设计尽管在任务量和debug上存在难度,但整体过程还是并不枯燥的。在本学期课程的学习中,自己的代码编写、架构设计和调试能力都有了大幅的提高,大量时间的投入还是收获满满的。