时序图绘制要点:聚焦关键调用顺序
从参与者、消息和片段三个部分讲清时序图,并说明工具支持的箭头和 loop/alt/opt 等片段。
时序图不是流程图换皮,它讲的是对象之间按时间发生的调用和返回。
时序图用来回答“谁在什么时候调用谁,调用后返回什么”。它适合放在详细设计章节,用来解释登录认证、图表导出、支付回调、审批流转这类跨页面、跨服务、跨数据库的场景。单个页面里的简单按钮操作,没有必要都画成时序图。
流程图讲控制步骤,时序图讲交互对象。登录流程图可以写“校验密码 -> 生成令牌”,但时序图要说明是前端调用认证服务,认证服务查询用户中心,用户中心返回账号信息,然后认证服务再签发令牌。
这张图由哪些东西组成
本工具的时序图由参与者、消息和片段组成。参与者写在顶部,消息按出现顺序向下排列,片段用缩进包住一段消息。
| 组件 | DSL 写法 | 图里表达什么 |
|---|---|---|
| 角色 | 角色 用户 | 人或外部参与者 |
| 参与者 | 参与者 认证服务 | 页面、服务、数据库、第三方系统 |
| 同步消息 | 用户 -> 前端: 提交表单 | 调用方等待结果的请求 |
| 异步消息 | 服务 ~> 前端: 推送通知 | 不阻塞等待的通知或事件 |
| 返回消息 | 数据库 --> 服务: 返回记录 | 查询结果、处理结果、错误信息 |
| 自调用 | 服务 => 服务: 生成令牌 | 同一对象内部处理 |
| 片段 | alt、loop、opt 等 | 条件、循环、可选、并行等交互范围 |
片段支持 loop、alt、opt、par、break、critical、ref。片段后可以写标题和守卫条件,例如 alt 登录校验 [密码正确]。缩进必须用空格,片段里至少要有一条消息。
一个可用的文本例子
#标题 图表导出时序图
角色 用户
参与者 编辑页面
参与者 导出接口
参与者 文档服务
参与者 文件存储
用户 -> 编辑页面: 点击导出 Word
编辑页面 -> 导出接口: 提交图表脚本
导出接口 -> 文档服务: 生成 DOCX
alt 生成结果 [成功]
文档服务 -> 文件存储: 保存导出文件
文件存储 --> 文档服务: 返回下载地址
文档服务 --> 导出接口: 返回文件信息
导出接口 --> 编辑页面: 展示下载入口
这段文本里,“用户”会被画成角色,其他对象会被画成普通参与者。alt 片段包住成功路径,图里会有明确的条件区域。
返回和失败路径不要省略
很多论文里的时序图只画请求,不画返回。评阅者会追问:密码错了怎么办?导出失败怎么办?第三方接口超时怎么办?不必把所有异常都画满,但关键返回结果要出现。
返回消息可以很短,例如“返回校验失败原因”“返回下载地址”“返回库存不足”。如果失败路径很长,可以用 alt 单独包住;如果只是可选通知,用 opt 更合适;如果需要重复查询状态,用 loop。
参与者名称要和实现章节一致
时序图最怕突然冒出正文从未出现过的对象。图里的“导出接口”“文档服务”“项目表”应能在系统设计或实现章节找到对应说明。不要一会儿写“用户服务”,一会儿写“账号模块”,除非你在正文中解释两者关系。
参与者也不要太多。一张普通毕业论文时序图控制在四到七个参与者更容易读;如果调用链太长,可以拆成“前端到后端”和“后端内部导出”两张图。
写进论文时怎么落笔
图后可以按“发起方—核心服务—返回结果”解释:
如图 4-3 所示,用户在编辑页面发起导出请求后,导出接口负责参数校验并调用文档服务生成文件。文档服务生成成功后将文件写入存储,并把下载地址返回给前端;若脚本解析失败,则返回错误信息并停止导出。
这比“导出时序图如下”更能说明接口边界。
定稿前检查
- 是否只选择了真正有交互价值的场景。
- 参与者是否先声明,且名称和正文一致。
- 消息箭头是否符合调用含义:请求、异步、返回、自调用不要混用。
alt、loop、opt等片段是否覆盖了正确消息范围。- 是否至少说明关键返回结果和失败处理。
绘图太麻烦?
使用云朵绘图,新一代计算机论文绘图工具,AI一键绘图!