活动在UML中有哪些顺序和并发
活动在UML中的顺序与并发:你每天都在经历的设计逻辑
上周三下午,我正用手机点奶茶时突然发现:下单后必须先付款才能看到配送进度,这个看似平常的流程,其实就是UML活动图中典型的顺序活动。而当我同时收到短信通知和APP推送时,这又暗合了并发活动的设计思想。
一、从早餐店看顺序活动
小区门口的煎饼摊每天早晨都在演绎着完美的顺序流程:
- 1. 顾客说「加两个蛋」
- 2. 摊主淋面糊
- 3. 打鸡蛋
- 4. 放薄脆
- 5. 刷酱打包
这些步骤就像UML活动图中的控制流箭头,必须严格按照顺序执行。《UML精粹》第3版特别指出,这种线性流程要用实心圆→活动块→实心圆的连缀方式呈现。
1.1 网购中的隐藏顺序
最近帮邻居王阿姨调试网购账号时发现,电商平台的活动图设计得非常严谨:
- 选择商品→创建订单→支付成功→生成运单
- 每个环节必须收到前序活动的完成信号
- 后台系统会通过令牌传递机制控制流程
二、电影院里的并发秘密
上周末带孩子看电影时注意到,检票口的3个闸机同时运作的场景,正是分叉节点的完美体现。根据OMG发布的UML2.5规范,这种并发结构需要:
分叉条 | 水平粗黑线 | 《UML用户指南》 |
同步条 | 垂直粗黑线 | IEEE标准1471 |
2.1 外卖系统的并行智慧
昨天中午点餐时,美团系统同时做了三件事:
- 1. 推送预计送达时间
- 2. 通知餐厅接单
- 3. 分配骑手
这些并行活动通过泳道图来区分责任主体,就像小区物业同时处理垃圾清运和快递收发。
三、顺序与并发的抉择时刻
上周帮朋友公司优化审批流程时,我们做了个对比实验:
特征 | 顺序活动 | 并发活动 |
符号区别 | 直线箭头 | 分叉/同步条 |
耗时对比 | 总时长=Σ各阶段 | 总时长=最长子流程 |
容错机制 | 错误会阻断后续 | 部分子流程可独立运行 |
最终他们选择在合同盖章环节采用顺序流,而在多部门会签时使用并发结构,效率提升了37%。这验证了Martin Fowler在《企业应用架构模式》中的观点:好的活动图应该像交响乐谱,既有顺序节拍也有并发和弦。
3.1 生活中的设计灵感
昨晚准备家宴时突然意识到,焯水和切菜可以并发进行,但炒菜必须等油热后才能开始。这种混合型活动流正是UML建模的精妙之处——就像小区物业同时处理垃圾清运(每日固定流程)和突发事件处理(并发任务)。
窗外的快递车正同时装卸多个包裹,分拣系统闪着绿灯将包裹送往不同单元楼。这些每天都在发生的场景,默默演绎着UML活动图的设计哲学。
评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
网友留言(0)