作业架构设计

第十三次作业

第一次作业只有类图解析,因此结构较为简单,在解析元素的过程中建立MyClass,MyInterraction以及MyOperation,并分别管理对应元素即可。

第十四次作业

第二次作业加入了状态图和时序图,我在第一次作业的基础上剥离出了对于各类异常的检查,统一放入了HelpFuctions类中,其他部分新增了状态图和时序图的元素来管理相应的元素。

第十五次作业

第三次作业新增了对于模型合法性的检查,因为涉及到了很多元素是否属于同一模型的检查,因此做了一点小的重构,将解析的元素按照其归属分别交给ClassModel,StateModel以及SequenceModel类去管理,这三个类只负责数据模型的构建与数据存储,查询方法等依然分发到特定数据的类内部去做。

架构设计及OO方法理解的演进

第一单元

第一单元主要是对OO方法的认识与逐渐熟悉,首先是尝试理解什么是面对对象,其次是根据多项式的内容去抽象不同的层次与结构,最后根据抽象的层次去设计架构。这一单元我对于OO的理解仍较为粗浅,作业完成的也很差。

第二单元

第二单元主要是关于多线程的内容,需要我们去理解多线程的交互模式,以及线程安全等问题,这一单元我对于面向对象的理解有了一定的加深,在架构的设计上尝试去采用生产者消费者模式去解决本单元的电梯模型(但是太菜了第二单元还是没做完)。

第三单元

第三单元设计JML,主要要求我们理解JML语言,并实现接口的要求。可能因为本单元的作业难度相对于之前有所下降,虽然在强测和互测中结果还是不够理想,但是在实现的过程中我对于OO方法的理解与架构的设计更加精进了。这一单元要求实现的社交网络模型也很适合不断地去根据数据优化架构设计,同时根据架构去优化算法,提升效率。

第四单元

本单元的重点主要在于理解UML模型,同时架构设计上和第三单元有相似之处,重点在于数据的管理与图模型的构建,在此基础上可以进一步优化算法,提升效率,这一单元的时候我对于OO思想有了足够的了解,在作业完成的效率与质量上也有了一定的提高。

测试理解与实践的演进

在四个单元中,我测试的手段都是手动构造测试样例,主要是设计一些边界点以及特殊结构的模型去测试(在测试方面可以说是毫无长进),在后两个单元有去尝试使用JUnit进行单元测试。之前研讨课的时候有同学讲解过评测机的搭建,包括对拍测试,测试数据生成等等,我在后续的学习中会去更加关注这方面的内容。

课程收获

  • 学习到了面对对象思想
  • 对于OO中架构设计有了更深的理解
  • 对于java语言有了更深的理解
  • 对于多线程机制有了更多的认识
  • 学习了JML语言及其应用
  • 学习了UML模型及其意义

三个改进建议

  • 希望课程在初始的几次作业中难度可以适当调低一点,因为大家刚接触OO以及java语言,可能有很多不习惯的地方。
  • 在作业开始的时候可以稍微提示一下后续内容增加的方向,便于初次写作业时进行架构设计。
  • 也许可以设计一个往届优秀博客分享环节?这样方便大家去学习优秀的架构设计,同时加深对于特定单元内容的理解。
 posted on 2021-06-21 23:57  buaddd  阅读(82)  评论(0)    收藏  举报