活动图是什么
活动图描述流程与并发:动作节点表示一个步骤,控制流连接节点,菱形表示决策与合并,粗线表示分叉与汇合,还可以用泳道按角色或系统划分职责区域。语义上它以令牌流动驱动执行,一个令牌沿控制流前进,经过分叉会产生多个令牌,必须全部到达汇合点后流程才继续。它适合表达业务流程、审批流程与带并发分支的处理逻辑。
PlantUML 示例
PlantUML 示例
@startuml
start
:接收申请;
if (校验通过?) then (是)
:写入订单;
fork
:发送通知;
fork again
:更新统计;
end fork
else (否)
:返回错误;
endif
stop
@enduml基本信息
| 决策与合并 | 菱形,多出多入的条件判断与流程汇聚 |
|---|---|
| 分叉与汇合 | 粗线,表示并发分支开始与等待全部分支完成 |
| 泳道 | 按角色、部门或系统划分职责区域 |
| 对象节点 | 表示流程中流转的数据或产物 |
| 工具 | PlantUML、draw.io、Mermaid、建模工具 |
典型使用场景
- 业务流程梳理:把审批、退换货等跨角色流程画成统一视图
- 需求评审:用泳道明确每个环节由谁负责,减少职责争议
- 并发处理设计:表达哪些步骤可并行、哪些必须等待全部完成
- 异常路径梳理:补出失败、超时、撤销等分支的处理方式
- 流程自动化选型:作为工作流引擎建模的输入
- 系统对接:说明跨系统流程中各自的职责边界
活动图与状态机图容易混用:活动图关注步骤与流转,状态机图关注对象所处的状态;工作流适合前者,生命周期约束适合后者。
分叉后的并行分支在汇合前必须全部完成;若某个分支可能永久等待,需要显式加入超时或取消路径。
节点与语义
| 节点 | 符号 | 语义与注意 |
|---|---|---|
| 起始节点 | 实心圆 | 流程唯一入口,可有多处结束 |
| 动作节点 | 圆角矩形 | 描述一个可执行步骤,命名用动词短语 |
| 决策节点 | 菱形 | 按条件选择一条分支,条件需互斥且完整 |
| 分叉与汇合 | 粗线 | 并发开始与同步等待,注意设置超时出口 |
| 结束节点 | 带圈实心圆 | 流程终止,区分流程结束与局部结束 |