定义
统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言
特点
UML是一种开放的方法
用于说明、可视化、构建和编写一个正在开发的面向对象的、软件密集系统的制品的开放方法。
UML展现了一系列最佳的工程实践
这些最佳的实践在对大规模,复杂系统今夕建模方面,特别是软件架构层次以及有效验证。
分类
结构式图形:强调的是系统式的建模
行为式图形:强调的系统模型中触发的事件
交互式图形:属于行为式图形的子集合,强调系统模型中资料流程
### 结构式图形
- 静态图(类图、对象图、包图)
- 类图
用于表示类、接口、实例等之间相互的静态关系
虽然名字叫类图,但类图中并不只有类
- 实现图(组件图、部署图)
- 刨面图
- 复合结构图
### 行为式
- 活动图
- 状态图
- 用例图
### 交互式图形
- 通信图
- 交互概述图
- 时序图
- 时间图
UML-记忆技巧
UML箭头方向:从子类指向父类定义子类时需要通过extend关键字指定父类子类一定是知道父类定义的,但父类并不知道子类的定义只有知道对方信息时才能指向对方实现-继承|虚线-实现
- 空心三角箭头:继承或实现
- 实线-继承,is a关系,实际的关系
- 虚线-实现,实现的某种特性是虚无的(依赖关系)
![23812127d8e56dfb6740c2f46a8266d4.png](https://img-blog.csdnimg.cn/img_convert/23812127d8e56dfb6740c2f46a8266d4.png)
继承、实现
![c62473f240c1752e595515788e022e17.png](https://img-blog.csdnimg.cn/img_convert/c62473f240c1752e595515788e022e17.png)
关联、依赖
空心菱形-聚合|实心菱形-组合
- 菱形就是一个盛东西的器皿(箱子)
- 聚合:代表空器皿里可以放很多相同的东西,聚在一起(箭头方向所指的类)
- 组合:代表着满器皿里已经有实体结构存在,生死与共
![dc48bf31c9fdd0cd92bc063154e2724d.png](https://img-blog.csdnimg.cn/img_convert/dc48bf31c9fdd0cd92bc063154e2724d.png)
聚合
![c22fa5401a88c27fc57b0d18ac6617e0.png](https://img-blog.csdnimg.cn/img_convert/c22fa5401a88c27fc57b0d18ac6617e0.png)
组合
常见数字表达及含义,假设有a和b,数字标记在a侧
- 0..1: 0或1个实例
- 0..*: 0或多个实例
- 1..1: 1个实例
- 1 只能有一个实例
- 1..*: 至少有一个实例
UML时序图
- sequence diagram:是显示对象之间交互的图,这些对象是按时间顺序排列的
- 时序图中包括的建模元素主要有: 对象(actor)、生命线(lifeline)、控制焦点(focus of control)、消息(message)等
![7a97bc9dace221335098b224b4f77db7.png](https://img-blog.csdnimg.cn/img_convert/7a97bc9dace221335098b224b4f77db7.png)
时序图
UML类图
![0d08fb002ac407cdf7bb4b54f2d4c23e.png](https://img-blog.csdnimg.cn/img_convert/0d08fb002ac407cdf7bb4b54f2d4c23e.png)
UML类图
- 从上到下3个框分别是类名、属性、方法
- 斜体代表抽象
- 下划线代表接口
- +:public
-: privite
#:protect
~:default - 属性左侧属性名,右侧属性类型
- 方法左侧方法名,右侧返回值
学习图
![bd52c66ed825fbc4293297cc548a1b44.png](https://img-blog.csdnimg.cn/img_convert/bd52c66ed825fbc4293297cc548a1b44.png)