一、用例图(Use)
1.1 基本元素
用例图由四个元素组成:参与者(Actor)、用例(Use Case)、系统(System),以及三者之间的关系(Relationship),他们的表示方法如下,
1.2 基本关系
用例图的基本关系包括四种:关联、泛化、包含(依赖)、扩展(实现)。
关系类型 | 说明 | 表示符号 |
关联 | 参与者与用例的关系 | ![]() |
泛化 | 参与者之间父用例和子用例的关系 (继承) | ![]() |
包含 (依赖) | 当执行用例A时,被包含的用例B也一定会执行 | ![]() |
扩展 (实现) | 当执行用例A时,需要满足一定条件,才会执行扩展用例B | ![]() |
1.3 实际案例
参与者可以分为:主要(Primary)参与者、次要(Secondary)参与者,主要参与者做出动作以后,次要参与者才会响应。在用例图中,主要参与者在系统的左边,次要参与者在系统右边。
用例应绘制在系统内部,通常表达为一个动作(动词)。
注意:泛化由子用例指向父用例,包含由基本用例指向包含用例,扩展由扩展用例指向基本用例。
参考:6 分钟学会 UML 用例图_哔哩哔哩_bilibili
二、类图
2.1 基本类图
类名 |
- Attribute1:string - Attribute2:int |
- Method1(var, var): string - Method2() |
如果是抽象类,有两种表示方法:1.类名用斜体表示;2.将类名放在<<>>内。
属性和方法前的符号含义:- private; + public; # protected; ~ package/default。其中属性通常为private或者protected,方法通常为public,package表示在同一个包中其它类都可以访问(少用)。
2.2 基本关系
类图的基本关系包括四种:继承、关联、组合、聚合。
关系类型 | 说明 | 表示符号 |
继承 | 父类与子类 | 由子类空心箭头指向父类 |
关联 | 两个类存在关系,但不依赖彼此而存在(比如兔子吃草) | 用实线连接 |
组合 | 整体和部分的关系,部分可以存在于整体之外(比如乌龟属于爬行类动物) | 使用空心菱形由部分指向整体 |
聚合 | 整体和部分的关系,部分不能存在于整体之外(卫生间必须在房子内) | 使用实心菱形由部分指向整体 (一个整体可能有多个部分组成,用1....n表示;如果是一对一或者一多,用1/n表示) |
参考:6 分钟学会 UML 类图_哔哩哔哩_bilibili
三、活动图
展现了一个活动到另一个活动的控制流程,它可以显示系统的活动顺序。
3.1 基本元素
元素 | 说明 | 表示符号 |
开始节点 | 活动图的开始,一个活动图只能有一个开始节点 | 实心圆 |
结束节点 | 活动图的结束,一个活动图可以有多个结束节点 | |
动作节点 | 表示要开始指定的任务,一个原子性操作,用动词描述 | 用圆角矩形表示 |
决策节点 | 通过不同的条件来执行不同的子流程 | 用空心菱形表示![]() |
合并节点 | 不同条件的子流程在此合并 | |
并行执行 | 不同自流程可以并行执行 | 用组黑线表示![]() |
Joint节点 | 所有并行执行的异步操作子流程都完成以后,合并为同一个流程 |
3.2 实际案例
为了给出更加清晰的视图方案,可以基于用户角色使用泳道图:
参考:3 分钟学会 UML 活动图_哔哩哔哩_bilibili
四、时序图
直观显示系统的内外交互过程。