jml

面向对象程序设计——UML分析和本学期总结

会有一股神秘感。 提交于 2020-05-02 04:53:22
​ 随着第四单元UML第二次作业的结束,本学期的OO学习也宣告结束了(但还得写博客),下面就对本单元和本次作业做一个总结。 第四单元两次作业的架构设计 ​ 本单元是对UML的结构进行解析,第一次作业是对UML类图的解析,主要的难度是UML各种元素之间较为复杂的从属以及其他关系。我的类图设计如下: ​ 我自己创建了ClassModel类来统领两个子类ClassClass和InterfaceClass,分别代表类和接口,其中实现了添加、储存、处理类和接口的各种下设参数的方法和变量,让类和接口的类继承同一个父类非常重要,因为类和接口有很多相似的地方,再进行输入处理时也有很多不易区分也不用区分是类还是接口的情况,所以这样处理极大地方便了程序对这两个类地储存和管理。对于方法我创建了OperationClass来添加储存和管理方法的各种属性,然后ClassClass和InterfaceClass就只用储存和管理OperationClass即可,对于其他的属性由于没有更多的层次,所以就直接使用接口提供的UML类来进行储存和管理即可。 ​ 在进行输入处理的过程中,由于其结构的层次性,应该将各种属性的UML_ELEMENT分批来处理,我首先识别处理了UML_CLASS,UML_INTERFACE,UML_OPERATION, UML_ASSSOCIATION_END,

2019年北航OO第四次博客总结<完结撒花>

雨燕双飞 提交于 2020-04-29 21:25:57
一、UML单元架构设计 1. 类图解析器架构设计 1.1 UML类图 这次作业的目标是要解析一个UML类图,首先为了解耦,我新建了一个类UmTree进行解析工作,而Interaction类仅仅作为实现接口的一个类。其次,通过观察输入发现,这单元作业的输入是乱序的json对象,如果不将这些数据其有效的组织起来,之后的查找将变得非常麻烦。因此,我们需要将其组织成有效的数据结构。 1.2 树形结构 经过思考后我发现,可以用一个树形结构来表示一系列的umlelement,对于一个类图,首先有很多类。每个类又有许多属性与方法,而每个方法又有参数和返回值的类型,这样就形成了一个树形结构。由于每个类需要存储属性,方法,所关联的类,所实现的接口,以及父类;每个接口需要存储父类;每个方法需要存储返回值和参数。因此,我重写了umlClass,umlInterface,和umlOperation类来满足我的查找需求。我们通过对json对象的解析来构建我们的树。当我们的树构建好后,一切也就迎刃而解了。 2. 类图,顺序图,状态图综合解析与检查 2.1 UML类图 这次作业增加了对UML类图规则的检查和状态图、顺序图的解析,因此我建了三个包分别存放与类图解析相关的类,与顺序图解析相关的类和与状态图解析相关的类,然后主类在src目录下,显得结构清晰明了,易于管理。另外,由于java中checkstyle的限制