UML时序图

概述

因为工作需要使用时序图表示详细设计文档。

同样使用plantUML。

《计算机是怎么跑起来的》中面象对象章节中,面象过程通常使用流程图进行步骤的表示,面象对象用时序图进行步骤的表示。我理解面象对象中单个方法不涉及其他对象时同样使用流程图表示。本文讲述时序图。

学习

时序图由角色、对象、生命线、激活、消息、组合片段构成。

角色、对象、生命线对应着参与者,生命线算是参与者带着的。

激活 对应着 激活。

消息 分为同步(实线+实心箭头)、异步(实线+开口箭头)和返回(虚线+箭头),对应着消息。

组合 分为条件分支(alt/opt)、循环(loop)或并行(par),对应着组合消息。

其实参与者 + 消息 + 组合 就可以足够表达了。

参与者

1
2
3
4
5
6
7
8
9
10
@startuml
participant Participant
actor Actor
boundary Boundary
control Control
entity Entity
database Database
collections Collections
queue Queue
@enduml

其中actor、participant、database、queue是我常用的。

消息

1
2
3
4
5
6
7
8
9
@startuml
actor 前端
participant 后端
database 数据库
前端 -> 后端: 请求
后端 -> 数据库: 查询
数据库 --> 后端: 返回
后端 --> 前端: 返回
@enduml

只有同步的请求与返回。异步的消息没有,找plantUML中消息的箭头进行选择。

组合

分支

alt : Alternative

opt : option

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@startuml
actor 前端
participant 服务A
participant 服务B
database 数据库
前端 -> 服务A: 请求
alt 成功情况
服务A -> 数据库: 查询
else 失败情况
服务A -> 服务B: 请求
服务B -> 数据库: 查询
else 另一种失败
服务B -> 服务A: 请求
end
后端 --> 前端: 返回
@enduml

循环

loop : Loop

1
2
3
4
5
6
7
8
@startuml
actor 前端
participant 后端
database 数据库
loop 1000次
前端 -> 后端: 请求
end
@enduml

并行

par : parallel

1
2
3
4
5
6
7
8
9
@startuml
actor 前端
participant 后端
database 数据库
par 并行
前端 -> 后端: 请求1
前端 -> 后端: 请求2
end
@enduml

更多

如果需要更多,还是要去官网查找。

https://plantuml.com/zh/sequence-diagram


UML时序图
http://hanqichuan.com/2025/06/26/系统设计/UML时序图/
作者
韩启川
发布于
2025年6月26日
许可协议