面向对象第四单元作业总结
架构设计总结
UML第一次作业架构设计
第一次作业的架构设计我觉得做的不够好
UML图如下
在MyUmlInteraction中建立了一个UmlGraph, 通过对UmlGraph的查询进行interaction。
在UmlGraph中定义了以下数据
其中ClassInformation这个是对于接口和类这两种UmlElement的抽象, 包含了
- 所有的父类
- 所有的属性
- 所有的方法
- 关联的所有类
- 实现的所有接口
所有的查询都是先通过ID或者name找到相应的ClassInformation对象, 然后再其中进行查询。
在建立UML图的时候, 我用了三轮的parse, 针对不同的UmlElement我写了对应的parse方法。- 在第一轮parse里, 我读入了UML_CLASS和UML_INTERFACE
- 在第二轮parse里, 我读入了UML_ATTRIBUTE, OPERATION, ASSOCIATIONEND, GENERALIZATION, INTERFACE_REALIZATION这些element
- 在第三轮中, 我读入了UML_PARAMETER和UML_ASSOCIATION
UML第二次作业架构设计
在第二次作业中, 我对于整个工程进行了代码重构
UML结构图如上图所示, 在每一个UML图中一共有三个子图, 分别为
- classGraph 类图
2.sequenceGraph 顺序图
3.stateGraph 状态图
在对于UMLGRAPH的查询中, 把功能分摊到每一个类中去, 实现高内聚, 低耦合, 每种图之间不要有耦合关系。
classGraph
sequencGraph
stateGraph
OO理解方法的演进
测试理解和实践的演进
最开始的测试方式是通过idea自带的交互窗口进行测试。
之后学会了用命令行, 编译程序, 然后从txt里面读入数据, 进行测试。
到了多线程电梯单元, 和JML单元, 我通过python生成一些测试数据进行压力测试, 和输出对比。
后来逐渐开始使用JUNIT进行测试。
课程收货
通过课程, 我有以下几点收货
- 学会java语言, 了解封装继承多态的方法。
- 学会各种工具, 比如IDEA, checkStyle, metrics, jprofiler
- 学会了软件测试, 使用jUNIT 和自己写评测机生成数据来测试的方法。
- 对于架构设计和软件的重构方法有了一定的了解。(里氏替换原则, 接口抽离原则, 高内聚低耦合原则)
- 对于多线程并发有了深刻的认识。
- 使用JML建模语言对于软件进行规格设计, 和形式验证
- 使用UML对于架构进行设计
课程建议
有以下三点建议
- 建议指导书写的再清楚一点, 避免耽误无谓的时间。
- 添加一些设计模式的内容
- 取消JML