BUAA_第四单元总结
本单元架构设计
本单元最后一次作业的UML类图,分三个部分进行描述:UML类图,UML顺序图,UML状态图
-
类图的类图
-
顺序图的类图
-
UML状态图
可以看出本单元的架构主要是利用组合关系建立一些层次。通过关联得到的属性向下调用。
架构设计思维及OO方法理解的演进
架构设计思维的演进
第一单元:学习到了层次化的思想,我认为就是把一个问题拆分成更简单的问题,或者说把问题缩小范围,交给下一层次的类去解决,每一层要做的事就是拆到下一层去,然后又从下一层拼回来。
第二单元:学习到了生产者消费者这种架构思想。这种思想方便我讲各个类的职责理清楚。
第三单元:这单元只需要完成一些方法,架构官方包已经搭好了。
第四单元:这单元我认为又是层次化的思想。
OO方法理解的演进
第一单元:这一单元没学到什么特别的OO语法或技巧。
第二单元:这一单元学习了多线程,多线程就是CPU一下执行这个线程的代码,一下执行那个线程的代码。学会了加锁来实现同步(wait-notifyall)和互斥。
第三单元:这一单元主要是学习了JML语言的阅读。
第四单元:这一单元没有学到什么特别的OO语法或技巧。
测试理解和实践的演进
第一单元:模仿作业采用递归下降的方式生成了一些数据。
第二单元:使用同学的数据进行测试
第三单元:使用同学的数据进行测试并阅读别人代码进行白盒测试
第四单元:使用同学的数据进行测试
课程收获
-
学会java的基本语法和基本的多线程使用
-
学习了UML类图的绘制
-
学习了Markdown语言的基本使用
-
学习了git的基本使用
-
学习了打jar包命令行测试
-
学习到了层次化思想和生产者消费者思想
-
学会了JML语言的基本构成
-
学习了迭代和重构
三个具体的课程改进建议
- 建议加强暑期预习作业的监督,我认为没有暑期的预习,要想在第一周掌握java的基本使用完成难度还高的第一单元第一次作业是十分困难的。
- 建议适当增强公测的强度,前面三个单元已经反映除了公测相比于互测的脆弱,但是也许公测的弱是为了方便我们互测的进行,但是第四单元就没有这个必要了,所以至少提高第四单元公测的强度。
- 我深知测试的重要性,所以我觉得可以出一些官方的测试教程,教我们如何生成评测数据。至少可以每次作业结束后公布一点官方生成测试数据的程序,Python写的也可以,只要方便。