UML总结
2016-06-08 本文已影响415人
某昆
uml概述
uml形式
- 类图
- 时序图
类图是展示软件项目中,类与类关系的逻辑图。
时序图展示的是软件的方法调用流程。
uml类图
先从一张图片说起:
![](https://img.haomeiwen.com/i2095550/11d8895d050eabce.png)
图中一共包含五种关系
- 泛化
- 聚合
- 组合
- 依赖
- 关联
泛化
泛化关系,有两种类型
- 继承 上图中小汽车和suv就是继承关系,小汽车是suv的父类,对应在uml图上就是用一个空心三角箭头指向父类
- 实现 上图中小汽车实现车这个接口,也是空心三角箭头指向接口,但线是虚线
聚合
聚合关系,表示由A组成B,但如果B不存在了,A还能独立存在,A是B的一部分。对应上图的学生和班级,由实线菱形箭头表示
组合
组合关系,表示A是B的一部分,但如果B不存在了,那么A也不再存在。对应上图的轮胎和小汽车,由实现黑色菱形箭头表示,箭头指向B。
组合关系和聚合关系非常相似,都表示A是B的一部分,但组合关系相对更加箭单一些,只要A是B的全局变量,则可以使用组合关系表达,但聚合关系稍微复杂,表示A能脱离B而单独存在,比如学生与班级,班级不存在了,学生依旧存在。
依赖
依赖关系,使用带虚线的箭头表示,表示在运行时的依赖,是一种临时性的关系。
上图中,学生就依赖于自行车。
对应软件上,本人理解的就是,A依赖B,B是A在运行时的局部变量。
关联
关联关系,使用实线箭头表示,但表示的是一种静态关系的依赖。
关联关系,在最终代码上是以成员变量形式存在的。与组合,聚合类似。
![](https://img.haomeiwen.com/i2095550/8eb188407a05e2b5.png)
如上图所示,Adress是Customer的一个成员变量,它们之间就是关联关系,箭头处为成员变量。
uml时序图
uml时序图,用于表示软件的调用流程,使用starUml软件绘制uml时序图特别方便,标注也很清晰。
uml类图,本人倾向于使用visio 2013绘制
uml时序图具体示例请看下图
![](https://img.haomeiwen.com/i2095550/c77e9ce789e75734.png)