目录
一 架构设计
(一) 第一次作业
建立类图
如上图所示,
建立了com包来管理自定义类,MyClass,MyInterface,Operation,Association。
整个UmlInteraction结构保存三个HashMap
mainHashMap<Container>() (存储MyClass,MyInterface以及其下的Operation等数据)
operationHashMap<Operation>()
associationHashMap<Association>()
MyClass和MyInterface实现了Container接口(考虑到他们的数据结构和方法极度一致)
这样的数据层次分类使得后续添加功能十分方便,在MyUmlInteraction添加功能之后,根据功能函数涉及到的层级,在不同HashMap中遍历找到查找单位。并在其对应的类中调用方法,得到结果。
Bug修复
BUG是由于没有考虑接口多继承引起的,修改后一次AC。
(二) 第二次作业
建立类图
构建与第一次类似,不过多出了
MyUmlClassModelInteraction
MyUmlCollaborationInteraction
MyUmlStateChartInteraction
三个容器分别解决各个图的功能(Rules在MyUmlClassModelInteraction中得以解决)
基于第一次的设计,添加功能较快,整个程序大概写了8小时左右。
Bug修复
撰写时还未修复完。但大部分的BUG是因为调试时调用的System.out忘记删除了(x)
另外的BUG应该在Rule上。会尽快解决。
二、四个单元中架构设计及OO方法理解的演进
四个单元依次是表达式求导
多线程电梯
JML规格化
UML模型化
,
第一单元基本是按照指导书要求的构架进行相关实践;第二单元引入设计模式,在设计模式的基础上对自己的电梯进行设计;第三单元对JML进行查询,第四单元对UML进行查询,架构设计较为*。具体架构设计在每次的总结中都有提到,不再赘述。
至于OO方法,最后一单元UML是最好的例子。
三、四个单元中测试理解与实践的演进
在测试过程中尝试过自动化测试,规格化测试,以及单元测试。
在个人编写中,后两者使用频次较低。最常使用的还是自动化测试(或者对拍)。
四、三个具体改进建议
- 尽快公开标程以及其设计思想解读。
- 降低第一单元难度,将重心放在设计与基本的JAVA代码实现上。(回顾下来,第一单元反而是最痛苦的)
- 降低授课学时,增加讨论课学时。