时序图表达“一次请求里,谁在什么时间给谁发了什么消息”:竖轴是时间,横轴是参与者,消息从上到下按发生顺序排列,读图就像看一次完整调用的回放。系统设计章节讲接口交互,它是最常用的一张图。

四个基本元素

参与者(或对象)横排在一行,每个向下引出一条虚线生命线;激活条是生命线上的窄矩形,表示对象正在处理;消息是参与者之间的箭头:同步调用用实心箭头,异步用开口箭头,返回用虚线箭头。

消息命名用动词短语:“提交订单”“返回 token”“写入数据库”。参数和返回值写在消息名后面的括号里,图面太挤就省略,放到正文里说明。

  • 参与者 / 对象:顶部一行
  • 生命线:从参与者向下的虚线
  • 激活条:处理中的窄矩形
  • 消息:实心同步、开口异步、虚线返回

分支、循环与拆图

alt 片段画 if/else 分支,每个分区左上角写条件;loop 片段画循环,循环次数写在方括号里。条件表达式写业务语言(“库存充足”),不要写代码。

一张图只讲一条主链路:登录就画登录,不要把注册、改密码都塞进来。参与者超过 7 个或消息超过 20 条时拆成两张图,按“总—分”组织。

论文里的用法

系统设计章节常用时序图说明核心接口:前端、后端、数据库三个参与者起底,把一次关键请求画完整。图注写“图 4-1 用户登录时序图”。

正文解释消息含义和设计考虑,比如为什么先校验再落库,而不是逐条复述箭头——图能看出来的事,正文不重复。

常见问题

时序图和流程图的区别是什么?

时序图按对象之间的消息协作组织,表达“谁和谁交互”;流程图按步骤的顺序与分支组织,表达“事情怎么推进”。讲接口交互用时序图,讲业务过程用流程图。

每条消息都要画返回吗?

同步调用画返回更清楚;简单直接的返回可以省略,但同一张图的口径要统一,不能有的画有的不画。

用工具做一遍

在线画时序图

打开对应工具,把教程里的例子换成你的论文内容。

打开工具