交互流程描述方法:流程图符号规范、泳道图与状态机

交互流程描述是将设计意图转化为可执行、可评审结构的关键技能。本章聚焦三种核心描述方法:标准化流程图符号提供通用视觉语言,泳道图明确角色职责与交接,状态机刻画对象连续状态变化。掌握这三类方法能覆盖绝大多数交互场景的描述需求。

适用场景

方法典型场景说明
流程图(通用符号)线性/分支/循环流程注册、登录、下单等确定性流程
泳道图多角色协作流程订单审批、客服转接、跨系统对接
状态机有限状态变化订单状态、用户账户状态、任务进度

前置条件

  • 已确定描述范围和粒度(页面级 / 任务级 / 原子操作级)。
  • 团队已对齐符号基本含义,避免自创符号。
  • 具备绘图工具(Figma / Draw.io / Mermaid 等)或模板。
  • 交互需求文档已有明确的功能列表和用户角色定义。

操作步骤

4.1 标准化流程图符号

  1. 选定起始与终止 – 使用圆角矩形(终端符)标记开始和结束。
  2. 绘制操作步骤 – 矩形(处理框)表示原子操作或页面。
  3. 判断与分支 – 菱形(决策符)表示条件判断,每个出口标注“是/否”或结果。
  4. 连接顺流 – 箭头线表示流转方向,避免交叉或远距离跨越。
  5. 合并与循环 – 使用圆形(连接符)跨页跳转;回环箭头表示循环或重试。

4.2 泳道图

  1. 定义角色泳道 – 每一列或行代表一个角色 / 系统。泳道标题明确角色名称。
  2. 绘制角色内的活动 – 在对应泳道内放置矩形处理框,每个活动只能属于一个角色。
  3. 标注角色间交接 – 箭头跨越泳道时附加消息或数据标签,注明协议(HTTP / 消息队列 / 文件等)。
  4. 突出关键路径 – 用高亮或粗细区分主流程和异常分支。

4.3 状态机描述

  1. 枚举所有状态 – 列出对象可能经历的有限状态(如待支付、已支付、已取消)。
  2. 定义状态转移 – 每一条转移需标注触发事件和动作(如“支付成功 → 已支付”)。
  3. 识别初始与终态 – 使用实心圆表示初始状态,双层圆表示结束状态。
  4. 检查状态完整性与互斥性 – 确保没有遗漏状态且同一时刻不冲突。

输入输出物

输入物来源输出物去向
功能清单PRD / 产品需求文档流程图 / 泳道图 / 状态图评审会议、开发任务
用户角色定义用户画像 / 场景分析泳道图角色划分结果交互设计稿
对象状态范围业务流程文档状态转移表 / 状态机图单元测试用例

责任边界

  • 交互设计师 – 选择正确的描述方法、绘制主流程、维护符号规范一致性。
  • 产品经理 – 提供前置条件、确认角色划分与状态定义。
  • 开发/测试 – 基于图表开展实现与用例编写,反馈描述歧义或遗漏。
  • 评审主持人 – 组织逐节点评审,重点检查跨泳道交互和状态转移条件。

记录材料

材料名称格式内容要求保存位置责任方
流程图符号对照表.pdf / 内联表格列出项目中使用的所有符号与含义设计库 / 项目 wiki交互设计师
泳道图完整版本.svg / .drawio包含所有角色、活动、跨泳道交互版本控制仓库交互设计师
状态机定义表.csv / .md状态、触发事件、动作、前置条件项目文档目录交互设计师
评审签到与决议.xlsx / .docx参加人、已通过节点、待修改项列表会议记录夹产品经理

异常处理

异常现象可能原因处理措施预防策略
流程图箭头交叉拥堵未使用连接符 / 布局不合理拆分子图,增加跨页连接符提前规划绘图方向(从上到下或从左到右)
泳道图中某活动归属争议角色定义模糊或活动跨越多个角色细分活动粒度或拆分为两步评审前先与相关角色确认权责
状态机遗漏关键状态需求分析未覆盖基于业务流程补充缺失状态,新增转移线枚举所有可能的外部事件和内部超时
评审时参与者对符号理解不一致缺少符号规范基线暂停评审,先对齐符号对照表项目初期建立并发布符号规范文档

验收标准

  • 符号使用完全对齐项目内定义的符号对照表,无自创或歧义符号。
  • 泳道图中每个活动有且仅有一个所属角色,跨泳道箭头附带可读的交互描述。
  • 状态机中初始状态、每个中间态与终态均已定义;转移线上注明触发事件与动作。
  • 所有图表示例附带创建日期、版本号、作者姓名。
  • 评审记录中无“符号不清楚”“角色不明”“状态遗漏”类遗留问题。
最佳实践提示: 先使用“流程图”快速勾勒主路径,再将其放入“泳道图”核对角色职责,最后用“状态机”校验对象生命周期。三种方法配合使用可从不同维度发现交互盲区。
常见陷阱: 状态机常被误用作“活动图”。状态机描述的是对象状态变化,而非“活动步骤”。例如“用户点击按钮”是活动,对应的事件是“单击按钮”,而不是“状态”。务必区分“状态”与“动作”。
交互流程描述方法选型与关系 交互流程描述方法 标准化流程图符号 泳道图(角色视图) 状态机描述 线性/分支流程 循环/重试路径 角色职责分配 跨角色消息流 状态转移 事件触发 选型指南 描述确定性操作 → 流程图;明确角色边界 → 泳道图; 刻画对象状态变化 → 状态机;三种方法可组合使用 ⚠ 常见陷阱 状态机 ≠ 活动图:状态机关注对象状态,活动图关注操作步骤

模板示例:泳道图字段定义

以下为泳道图描述字段的推荐表格格式,用于在文档中直接定义每一跨泳道交互:

| 跨泳道交互编号 | 源泳道   | 目标泳道 | 交互内容                     | 触发条件       | 返回消息 / 异常处理 |
|----------------|----------|----------|------------------------------|----------------|---------------------|
| LN-01          | 用户端   | 服务端   | POST /api/payment            | 用户点击“支付” | 200:支付成功/400:余额不足 |
| LN-02          | 服务端   | 结算系统 | 消息队列: request.payment    | 接收到LN-01请求 | 确认收到 + 错误重试策略 |
| LN-03          | 结算系统 | 服务端   | 消息队列: response.payment   | 处理完成       | 同步状态机转移     |

将此类表格附在泳道图旁,可消除描述歧义,成为开发与测试的直接依据。状态机描述的字段可参考 状态 → 触发事件 → 前置条件 → 后置动作 → 下一个状态 列结构。