一、架构设计
本单元后两次作业都只进行了增量开发,没有对前次内容进行修改,故只放第三次的UML图
由于每次作业都在上一次作业的基础上进行增量开发,而没有对原架构进行修改,故仅上第三次作业的UML图。
第一次作业:
只有一个umlInteraction类,没有设计复杂的数据结构存储信息,也没有对uml图信息建模,而是只保存了所有类的父亲和对element进行了分类,对于所有查询都是现算。
第二次作业:
对所有状态图分别建图并保存,时序图现查
第三次作业
分别实现了每条规则检查,并把超出500行的部分放到了另一个类中
二、架构设计及OO方法理解的演进
第一单元
前两次作业比较简单,第三次作业内容比较复杂,一开始我粗略的想采用表达式树的架构就直接动手,后来越写越乱,于是停下后比较详细的设计了架构、填充了细节并画了类图,最终比较顺利的完成了第三次作业
第二单元
初次接触多线程,先学习了生产者-消费者模式,用其完成了前两次作业,然后学习了工人模式,用其解决了第三次作业
第三单元
学习了契约式编程,作业主要是对契约式编程的实践,按照jml补充代码即可
第四单元
学习了有关uml图的知识,主要是类图、协作图、状态图三个理解架构的角度,图是对程序的抽象和可视化,学习了uml后对架构设计和理解帮助很大,比如现在看别人的blog只看的uml图就可以大致了解他的设计。因为到了烤漆,不能再像前几个单元一样全情投入OO作业中,我这个单元的oo完成的比较仓促。作业是实现uml解释器,可以感受到我们实现的规则奥妙重重,但是由于精力被牵扯也没什么心思琢磨,比较遗憾。
三、测试理解与实践的演进
因为经常压线作业,所以没有对我的工作做除了样例以外的测试,oo各单元bug不断。没有耕耘,没有收获
四、我的课程收获
主要的收获都已经呈现第二部分中了
五、一些建议
- 建议取消第三单元博客配置工具链的内容,感觉没有意义。
- 建议第四单元在介绍关联、聚合比较迷惑的关系时能增加一下示例代码来辅助理解。
- 建议第四单元可以有一个对于输入内容的具体说明
- 建议对实验结果提供反馈
六、线上学习的感受
感觉和线上学习差别不大,就是交流机会更多需要自己去创造