目录
定义
特点
分类
类图
时序图
记忆技巧
定义
统一建模语言(英语:unified modeling language,缩写UML)
是非专利的第三代建模和规约语言
特点
UML是一种开放的方法
用于软件开发中的各种产物:如流程图、测试用例、源代码的说明、可视化、构建和编写一个正在开发的面向对象的、软件密集系统的制品的开放方法
UML展现了一系列最佳工程实践
—》这些最佳实践对大规模,复杂系统进行建模方面,特别是软件架构层次已经被验证有效
记忆技巧
- UML箭头方向:从子类指向父类
定义子类时需要通过extends
关键字指定父类
子类一定是知道父类定义的,但父类并不知道子类的定义
只有知道对方信息时才能指向对方
所以箭头方向是从子类指向父类
- 实线和虚线
空心三角形箭头:继承或实现
实线-继承(关联):is a 关系,扩展的目的,实在的关系很结实
表示一个类的对象和另一个类有联系
通常一个类中有另一个类的对象作为属性
虚线-实现(依赖):无实体,实现一个接口,需要自己去实现里面的方法
- 空心菱形(弱关系):
菱形就是一个盛东西的器皿(例如盘子、小碗)
聚合:代表空器皿里可以放很多相同的东西,聚合在一起(箭头方向所指的类)
整体和局部的关系,两者都有各自独立的生命周期,是has a 的关系
体操方队和个人的关系
常见数字表达及含义,假设有A类和B类,数字标记在A类侧
0..1 | 0或1个实例 |
---|---|
0.* | 0或多个实例 |
1.1 | 1个实例 |
1 | 只能有一个实例 |
1..* | 至少有ー个实例 |
- 实心菱形(强关系):
组合:代表器皿里已经有的实体结构的存在,共生共死
整体和局部的关系,和聚合相比,关系更加强烈,两者有相同的生命周期,contains-a的关系
汽车和方向盘的关系
UML时序图
通过时序图可以了解需求的调用关系以及时间关系
Test类调用Client(调用Server(调用Device))
调用线条含义
UML2.2分类
UML2.2中一共定义了14中图示,分类如下:
1 | 结构式图形 | 强调的是系统的建模 | |
---|---|---|---|
2 | 行为式图形 | 强调的是系统模型中触发的事件 | |
3 | 交互式图形 | 属于行为式图形子集合,强调系统中资料流程 | |
4 | |||
5 | |||
6 | |||
7 | |||
8 | |||
9 | |||
10 | |||
11 | |||
12 | |||
13 | |||
14 |
结构式图形
静态图(类图、对象图、包图) Static diagram (class diagram, object diagram, package diagram)
实现图(组件图、部署图) Implementation diagram (component diagram, deployment diagram)
剖面图 profileComposite
结构图 structure drawing
UML类图
用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。
各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
Class Diagram: 描述类、接口、实例等之间的静态关系
虽然它被称为类图,但类不是类图中唯一的类
Class Diagram: describes the static relationships between classes, interfaces, instances,
and so onAlthough it is called a class diagram, classes are not the only ones in the class diagram
行为式图形 Behavior pattern
活动图 Activity diagrams
状态图 State diagramUse
用例图 case diagram
【概念】描述用户需求,从用户的角度描述系统的功能
【描述方式】椭圆表示某个用例;人形符号表示角色
【目的】帮组开发团队以一种可视化的方式理解系统的功能需求
【用例图】
交互式图形
通讯图
交互概述图(UML2.0)
时序图(UML2.0)
时间图(UML2.0)
可参考教程
mermaid的gitHub