面向对象第四单元作业总结

面向对象第四单元作业总结

架构设计总结

UML第一次作业架构设计

第一次作业的架构设计我觉得做的不够好
UML图如下

在MyUmlInteraction中建立了一个UmlGraph, 通过对UmlGraph的查询进行interaction。
在UmlGraph中定义了以下数据

其中ClassInformation这个是对于接口和类这两种UmlElement的抽象, 包含了

  1. 所有的父类
  2. 所有的属性
  3. 所有的方法
  4. 关联的所有类
  5. 实现的所有接口
    所有的查询都是先通过ID或者name找到相应的ClassInformation对象, 然后再其中进行查询。
    在建立UML图的时候, 我用了三轮的parse, 针对不同的UmlElement我写了对应的parse方法。
  6. 在第一轮parse里, 我读入了UML_CLASS和UML_INTERFACE
  7. 在第二轮parse里, 我读入了UML_ATTRIBUTE, OPERATION, ASSOCIATIONEND, GENERALIZATION, INTERFACE_REALIZATION这些element
  8. 在第三轮中, 我读入了UML_PARAMETER和UML_ASSOCIATION

UML第二次作业架构设计

在第二次作业中, 我对于整个工程进行了代码重构

UML结构图如上图所示, 在每一个UML图中一共有三个子图, 分别为

  1. classGraph 类图
    2.sequenceGraph 顺序图
    3.stateGraph 状态图

在对于UMLGRAPH的查询中, 把功能分摊到每一个类中去, 实现高内聚, 低耦合, 每种图之间不要有耦合关系。

classGraph

sequencGraph

stateGraph

OO理解方法的演进

测试理解和实践的演进

最开始的测试方式是通过idea自带的交互窗口进行测试。
之后学会了用命令行, 编译程序, 然后从txt里面读入数据, 进行测试。
到了多线程电梯单元, 和JML单元, 我通过python生成一些测试数据进行压力测试, 和输出对比。
后来逐渐开始使用JUNIT进行测试。

课程收货

通过课程, 我有以下几点收货

  1. 学会java语言, 了解封装继承多态的方法。
  2. 学会各种工具, 比如IDEA, checkStyle, metrics, jprofiler
  3. 学会了软件测试, 使用jUNIT 和自己写评测机生成数据来测试的方法。
  4. 对于架构设计和软件的重构方法有了一定的了解。(里氏替换原则, 接口抽离原则, 高内聚低耦合原则)
  5. 对于多线程并发有了深刻的认识。
  6. 使用JML建模语言对于软件进行规格设计, 和形式验证
  7. 使用UML对于架构进行设计

课程建议

有以下三点建议

  1. 建议指导书写的再清楚一点, 避免耽误无谓的时间。
  2. 添加一些设计模式的内容
  3. 取消JML

猜你喜欢

转载自www.cnblogs.com/ziyuzhu-edward/p/11058147.html
今日推荐