本文目录导读:

时序图(Sequence Diagram)是UML(统一建模语言)中用于展示对象之间交互顺序的图表,特别适合描述业务流程、API调用或系统协作。
以下是绘制时序图的核心步骤、常用方法及工具推荐:
核心概念与元素
在动手画之前,先理解这些基本符号:
| 元素 | 表示方式 | 作用 | 示例 |
|---|---|---|---|
| 生命线 | 矩形框 + 垂直虚线 | 代表一个对象或参与者 | 用户 登录系统 数据库 |
| 激活条 | 生命线上的窄竖条 | 表示对象正在执行操作的时间段 | 方法调用开始到返回 |
| 消息 | 箭头线 | 对象之间传递的信号 | 实线箭头(调用)、虚线箭头(返回)、自关联(自身调用) |
| 交互片段 | 矩形框 + 标签 | 表示循环、条件、可选等逻辑 | loop alt opt |
绘制步骤(以“用户登录”为例)
场景: 用户输入账号密码 -> 前端验证 -> 后端验证 -> 数据库查询 -> 返回登录结果。
确定参与者与生命线
- 顶部放置:
用户、前端页面、后端服务、数据库
绘制时间顺序(从上到下)
- 消息1(调用): 用户 -> 前端页面 : 输入账号密码
- 消息2(调用): 前端页面 -> 后端服务 : 发送登录请求
- 消息3(自关联): 后端服务 -> 后端服务 : 验证参数
- 消息4(调用): 后端服务 -> 数据库 : 查询用户信息
- 消息5(返回): 数据库 -> 后端服务 : 返回用户数据
- 消息6(返回): 后端服务 -> 前端页面 : 返回登录成功/失败
- 消息7(返回): 前端页面 -> 用户 : 显示登录结果
添加激活条
- 在每个对象执行操作的时间段,在生命线上画上激活条(细长矩形),通常从接收到消息开始,到返回消息结束。
处理复杂逻辑(可选)
- 分支(alt): 如果密码正确,返回token;否则返回错误提示。
- 循环(loop): 如果用户不断尝试登录(重试机制)。
常见绘制方式
手绘或专业绘图软件(适合正式文档)
- 工具: Draw.io (diagrams.net)、Lucidchart、Visio、PlantUML (文本生成)
- 优点: 美观、可精确控制位置、支持团队协作
- 步骤: 新建时序图模板 -> 拖拽生命线 -> 添加箭头和文本 -> 调整布局
代码/文本生成(适合程序员、快速迭代)
- 工具: PlantUML (最推荐)、Mermaid (集成在GitHub/Notion)
- 优点: 版本控制友好、修改文本即可更新图、无需拖拽
- 示例(PlantUML):
@startuml actor 用户 participant "前端页面" as Front participant "后端服务" as Back database "数据库" as DB 用户 -> Front : 输入账号密码 activate Front Front -> Back : 发送登录请求 activate Back Back -> Back : 验证参数 Back -> DB : 查询用户信息 activate DB DB --> Back : 返回用户数据 deactivate DB Back --> Front : 返回登录结果 deactivate Back Front --> 用户 : 显示登录结果 deactivate Front @enduml
效果: 会生成一个标准的时序图,包含所有参与者生命线和激活条。
在线AI工具(最快、最傻瓜化)
- 工具: BoardMix博思白板、ProcessOn、Whimsical
- 优点: 有大量模板,AI输入文字即可生成图,直接修改
- 操作: 搜索“AI生成时序图”,输入“请生成一个用户登录的时序图”,AI会自动布局。
绘制时的4个关键规范与技巧
- 时间方向: 从上到下代表时间流逝,越靠上,发生得越早。
- 箭头方向: 实线箭头代表主动调用(请求),虚线箭头代表返回结果(响应),现代简约画法有时省略返回箭头,但复杂图中建议保留。
- 激活条(执行状态): 激活条应覆盖该对象从接收请求到返回结果的整个时间段,不要忘记在返回后关闭(deactivate)。
- 交互片段使用: 使用
alt(分支)和loop(循环)框来表示逻辑条件,而不是画复杂的交叉箭头。alt [密码正确]...else [密码错误]...loop [最多重试3次]...
总结最佳实践
- 快速原型/写文档: 使用 PlantUML 或 Mermaid 文本生成,维护方便。
- 正式汇报/非技术人员协作: 使用 Draw.io 或 ProcessOn 拖拽绘制,更直观。
- 复杂时序: 务必使用
alt/loop框来简化主流程,避免流程图乱成蜘蛛网。
一句话: 从上到下画时间线,从左到右放参与者,箭头表示谁喊谁,激活条表示谁在干活。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。