一、活动图是啥?—— 流程图的“升级加强版” 🚀
关键字:活动图、业务流程、动态执行逻辑、并行/分支流程
🧠
活动图像
“智能流程图”
:它能描述系统的动态执行逻辑,不仅能展示“步骤顺序”,还能表达“分支判断、并行执行、多角色协作”等复杂流程——比传统流程图的语义更丰富,是业务流程和系统操作流程的“可视化工具”。
🤖 类比:
如果传统流程图是“步行路线图”(只能走固定路线),那活动图就是“导航APP的路线规划”——能显示“左转/右转的分支”“多条路线并行选择”“不同交通工具(角色)的协作路段”。
✍️ 核心作用:
- 描述业务流程:展示“用户下单→商家发货→骑手配送”等实际业务的执行步骤;
- 梳理系统操作:明确“ATM取款→输入密码→验证→出钞”等系统功能的执行逻辑;
- 沟通跨角色协作:用“泳道”区分不同角色(比如“老师出卷/学生答卷”)的工作内容。
二、活动图的“基础零件”:动作+控制流+判断/合并 🧩
关键字:动作、活动节点、开始/终止、控制流、判断节点、合并节点
👆 1. 动作&活动节点:流程的“步骤”
动作
是流程中不可拆分的“原子步骤”(比如“填写取款单”“检查密码”),用“两端圆弧形的矩形”表示;
活动节点
是多个动作的组合(比如“订单处理”包含“审核/支付/发货”),用于简化复杂流程。
🎬 2. 开始&终止:流程的“起点/终点”
“开始”是流程的起点(用“实心小圆”表示),一个活动图只能有一个开始;“终止”是流程的终点(用“实心小圆+外圈”表示),一个活动图可以有多个终止(对应不同的流程结束方式)。
➡️ 3. 控制流:步骤的“连接线”
控制流是连接动作/活动节点的“箭头”,表示流程的执行顺序——比如“填写取款单→检查有无密码”的箭头,就是控制流。
❓ 4. 判断节点:流程的“分支路口”
判断节点(菱形)是流程的“分支开关”,根据“监护条件”选择不同的执行路径——比如“检查密码是否正确”的判断节点,会根据“[密码正确]”/“[密码错误]”分别跳转到“出钞”或“审核失败”。
🔀 5. 合并节点:流程的“汇合点”
合并节点(菱形)是多个分支流程的“汇合处”——比如“出钞”和“打印清单”两个分支,最终会合并到同一个终止节点,简化图形结构。
三、活动图的“进阶零件”:泳道+并行+对象流 📈
关键字:泳道、分叉/结合节点、对象流
🏊 1. 泳道:流程的“角色分工表”
泳道是按“执行角色”划分的流程区域——比如“考试流程”分为“老师泳道”(出卷/批卷)和“学生泳道”(答卷/领取成绩单),清晰展示不同角色的工作内容。
🔀 2. 分叉/结合节点:流程的“并行开关”
分叉节点(粗横线)让流程“同时执行多个任务”(比如“主任务→同时执行任务A和任务B”);结合节点(粗横线)让并行的任务“全部完成后再继续”(比如“任务A和任务B都完成后,才执行下一个任务”)。
// 对应“主任务→并行任务A/B→结合节点→下一个任务”的代码逻辑 // 启动并行任务 Thread taskA = new Thread(() -> doTaskA()); Thread taskB = new Thread(() -> doTaskB()); taskA.start(); taskB.start(); // 等待并行任务完成(结合节点) taskA.join(); taskB.join(); // 执行下一个任务 doNextTask();
📦 3. 对象流:流程的“数据载体”
对象流是流程中“对象的创建/使用/状态变化”——比如“生成订单”活动会创建“订单对象(未支付)”,“支付”活动会将其状态改为“已支付”,用虚线连接活动和对象,展示数据的流转。
四、活动图的建模步骤:画好“业务剧本” 📋
关键字:建模技术、识别流程、拆分步骤、添加分支/并行、划分泳道
📌 步骤:
- 识别核心流程:确定要展示的业务/系统流程(比如“机票购买流程”);
- 拆分执行步骤:把流程拆分为“原子动作”(比如“选择商品→生成订单→支付”);
- 添加分支/并行逻辑:用判断节点表示分支(比如“支付成功/失败”),用分叉/结合节点表示并行(比如“同时检查库存和价格”);
- 划分泳道(可选):按执行角色划分泳道(比如“客户/订单中心”);
- 补充对象流(可选):展示流程中对象的创建/状态变化(比如“订单对象的状态流转”)。
五、活动图的实战价值:复杂流程的“沟通利器” 🔧
🚀
在实际工作中,活动图是
跨团队沟通的“共同语言”
:产品经理用它向开发团队展示业务流程,开发团队用它梳理代码的执行逻辑,测试团队用它设计测试用例。
☁️ 复杂场景:工作流引擎的依据
对于OA系统、审批系统等“工作流密集型”系统,活动图可以直接作为“工作流引擎”的配置依据——引擎根据活动图的“步骤、分支、角色”自动执行流程,减少手动编码的工作量。