OO第四单元总结
一、架构设计
第四单元作业实现了UML类图、时序图、状态图的解析,并最终进行了有效性检查。为了能正确解析每种类型的图,深入理解其结构是十分必要的。
-
第一次作业
实现一个UML类图分析器
UmlInteraction这次作业在中测中提交了十一次,感谢m1测试点,一己之力帮我揪出了无数个bug。
而最后发现问题是自己写的判断
type相等的方法可能出现空指针异常。由此观之,仔细阅读深入理解课程组给出的代码,是极有必要的。
第一次作业刚拿到时其实不是很能理解,但阅读后发现其实不难,重点在于仔细读题。
查询的算法多采用广度优先

-
第二次作业
-
![]()
-
第三次作业
其中比较有难度的是各种循环继承,多重实现的有效性判断,通过维护栈实现了dfs代替递归
以及辛酸的重构

二、四个单元中架构设计及OO方法理解的演进
最明显的体验大概就是:
第一单元开始时,我对多态完全没有头绪,不知道如何确定父类子类关系;
三、四个单元中测试理解与实践的演进
测试这个方面,我其实是有欠缺的,从始至终都在进行白盒测试。
遥想第一单元第一次作业,连基本测试都不充分就勇敢提交,导致在强测很基础的测试点上挂掉
之后直到第二单元,都是根据自己的理解,构造特殊的数据。
第三单元某次作业在同学评测机的帮助下,才发现了传错参数这种低级错误。
第四单元第一次作业也是因为白盒测试,根本没有测试到错误所在。
四、课程收获
-
-
通过checkstyle规范了代码风格
-
数据结构没学会正则表达式也学会并能应用了
-
工厂模式、单例模式等等
-
初次接触了神奇的多线程
-
学习JML阅读
-
理解UML
-
面向对象的多态得到了应用
-
五、课程建议
1.第四单元作业的指导书其实是不够清晰的,很多的信息需要从讨论区甚至群聊获得
2.或许可以考虑互换第三、四单元作业,因为比起第四单元,似乎第三单元作业的强度更适合考期
3.希望课程部分涉及一些评测机搭建方法


浙公网安备 33010602011771号