时序图 vs 活动图:何时用哪个

时序图 vs 活动图:何时用哪个

puml.online

简介 / Introduction

时序图(Sequence Diagram)和活动图(Activity Diagram)都是交互建模的重要工具,但侧重点不同。时序图强调谁在何时对谁说了什么;活动图强调流程的分支、循环与并行。选对图类型,能让图表一目了然;选错则徒增困惑。

PlantUML 版

时序图示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@startuml
title 用户登录时序
actor User
participant "前端" as FE
participant "后端" as BE
database "数据库" as DB

User -> FE : 输入账号密码
FE -> BE : POST /login
BE -> DB : 查询用户
DB --> BE : 用户记录
BE --> FE : JWT Token
FE --> User : 登录成功
@enduml

活动图示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@startuml
title 订单处理活动图
start
:接收订单;
:校验库存;
if (库存充足?) then (是)
:扣减库存;
:生成发货单;
else (否)
:通知用户缺货;
stop
endif
:发送订单邮件;
stop
@enduml

时序图用 -> / --> 表达消息流向;活动图用 if / fork / kill 控制流程节点。两者在 PlantUML 中有完全独立的语法关键字。

Mermaid 版

时序图示例

1
2
3
4
5
6
7
8
9
10
11
12
13
sequenceDiagram
title 用户登录时序
actor User
participant Frontend
participant Backend
database Database

User->>Frontend: 输入账号密码
Frontend->>Backend: POST /login
Backend->>Database: 查询用户
Database-->>Backend: 用户记录
Backend-->>Frontend: JWT Token
Frontend-->>User: 登录成功

活动图示例

1
2
3
4
5
6
7
8
9
10
11
12
13
activity
title 订单处理活动图
:接收订单;
:校验库存;
if (库存充足?) then (是)
:扣减库存;
:生成发货单;
else (否)
:通知用户缺货;
stop
endif
:发送订单邮件;
stop

Mermaid 的 sequenceDiagram 与 activity 同样使用不同语法块,主题关键字 title 均可省略。

对比 / Side-by-side

维度 时序图 活动图
核心描述 对象间消息的时间顺序 流程的分支与并行
关键字(PlantUML) ->、`–>`` if、fork、kill、start/stop
关键字(Mermaid) ->>、-->> if / else、parallel、stop
适用场景 API 调用、协议交互、对象协作 业务流程、算法步骤、决策分支
循环表示 loop(PlantUML)/ loop(Mermaid) while / repeat

小结 / Wrap-up

时序图适合描述参与者之间的消息交换(who calls whom, when),活动图适合描述流程逻辑(分支、循环、并行)。实际项目中,两者常常互补:活动图展示整体业务流,时序图解释关键节点的接口调用。选择取决于你想表达的核心语义,而非图表的”复杂度”。

  • 标题: 时序图 vs 活动图:何时用哪个
  • 作者: puml.online
  • 创建于 : 2026-10-13 09:00:00
  • 更新于 : 2026-10-13 01:06:47
  • 链接: https://puml.online/blog/sequence-vs-activity-for-flow/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。