Skip to content

时序图

时序图(Sequence Diagram)用于描述对象在一个业务场景中的交互顺序。学习时序图的关键是看懂参与者、消息方向以及消息发生的先后关系。

时序图基础元素

参与者与生命线

参与者可以是用户、系统组件或第三方服务。生命线表示该参与者在交互过程中的存在周期,时间从上往下流动。

PlantUML

TIP

  • 参与者是图最上方的角色/对象名称(如 用户Web 前端)。
  • 生命线是从参与者向下延伸的竖直虚线,表示该对象在交互期间的存在时间。

激活条

激活条表示对象正在处理某个调用,通常从收到请求开始,到返回结果结束。

PlantUML

TIP

  • 激活条是生命线上的细长矩形,表示对象正在执行某段逻辑。
  • activate / deactivate 分别表示激活条开始和结束。

常见消息符号

时序图常见消息符号

组合片段

时序图通过组合片段表达分支、循环与并发逻辑:

片段作用典型场景
alt条件分支(二选一或多选一)登录成功/失败
opt可选执行(单分支)有优惠券才计算折扣
loop循环执行遍历订单项
par并行执行并行查询多个下游服务
break中断当前交互参数校验失败直接返回
critical临界区保证一段操作串行执行
ref引用子时序复用公共流程

alt

PlantUML

说明:alt 表示互斥分支。图中根据凭证是否有效,流程只会进入“登录成功”或“登录失败”其中一个分支。

opt

PlantUML

说明:opt 表示可选分支。只有“用户有优惠券”条件满足时,才会触发优惠计算逻辑。

loop

PlantUML

说明:loop 表示重复执行。图中会按“每个订单项”循环调用库存校验,直到全部校验完成。

par

PlantUML

说明:par 表示并行片段。图中价格、优惠、库存三个查询可以并发进行,最终汇总结果返回给用户。

break

PlantUML

说明:break 表示中断当前交互。一旦参数非法,流程立即返回错误并终止后续主流程。

critical

PlantUML

说明:critical 表示临界区。图中“扣减库存”这段逻辑需要串行执行,避免并发下出现超卖或库存不一致。

ref

PlantUML

子时序图(被 ref 引用):

PlantUML

说明:ref 用于引用子时序图。图中将“支付授权流程”抽成可复用片段,主图只保留调用关系。

Released under the MIT License.