第四次博客作业

目录

一 架构设计

(一) 第一次作业
建立类图

1590906-20190623103213678-258430735.jpg

如上图所示,

建立了com包来管理自定义类,MyClass,MyInterface,Operation,Association。

整个UmlInteraction结构保存三个HashMap

mainHashMap<Container>() (存储MyClass,MyInterface以及其下的Operation等数据)
operationHashMap<Operation>() 
associationHashMap<Association>() 

MyClass和MyInterface实现了Container接口(考虑到他们的数据结构和方法极度一致)

这样的数据层次分类使得后续添加功能十分方便,在MyUmlInteraction添加功能之后,根据功能函数涉及到的层级,在不同HashMap中遍历找到查找单位。并在其对应的类中调用方法,得到结果。

Bug修复

BUG是由于没有考虑接口多继承引起的,修改后一次AC。

(二) 第二次作业
建立类图

1590906-20190623103226077-1585260441.jpg

构建与第一次类似,不过多出了

MyUmlClassModelInteraction
MyUmlCollaborationInteraction
MyUmlStateChartInteraction

三个容器分别解决各个图的功能(Rules在MyUmlClassModelInteraction中得以解决)

基于第一次的设计,添加功能较快,整个程序大概写了8小时左右。

Bug修复

​ 撰写时还未修复完。但大部分的BUG是因为调试时调用的System.out忘记删除了(x)

​ 另外的BUG应该在Rule上。会尽快解决。

二、四个单元中架构设计及OO方法理解的演进

四个单元依次是表达式求导 多线程电梯 JML规格化 UML模型化

第一单元基本是按照指导书要求的构架进行相关实践;第二单元引入设计模式,在设计模式的基础上对自己的电梯进行设计;第三单元对JML进行查询,第四单元对UML进行查询,架构设计较为自由。具体架构设计在每次的总结中都有提到,不再赘述。

至于OO方法,最后一单元UML是最好的例子。

三、四个单元中测试理解与实践的演进

在测试过程中尝试过自动化测试,规格化测试,以及单元测试。

在个人编写中,后两者使用频次较低。最常使用的还是自动化测试(或者对拍)。

四、三个具体改进建议

  1. 尽快公开标程以及其设计思想解读。
  2. 降低第一单元难度,将重心放在设计与基本的JAVA代码实现上。(回顾下来,第一单元反而是最痛苦的)
  3. 降低授课学时,增加讨论课学时。

原文链接:加载失败,请重新获取