该篇文章是UML知识的扩充。
什么是活动图
源文链接:https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-activity-diagram/
活动图是UML
图中另一个重要的行为图,用于描述系统的动态方面。活动图本质上是流程图的高级版本,它对从一个活动到另一个活动的流程进行建模。
一、何时使用活动图
活动图描述了如何协调活动以提供可以处于不同抽象级别的服务。通常,一个事件需要通过一些操作来实现,特别是在操作旨在实现需要协调的许多不同事物的情况下,或者单个用例中的事件如何相互关联时,特别是活动的用例可能重叠并需要协调。它还适用于建模用例集合如何协调以表示业务工作流。
- 通过检查业务工作流程确定候选用例。
- 识别用例的前置条件和后置条件(上下文)。
- 用例之间/内部的工作流建模。
- 对对象操作中的复杂工作流进行建模。
- 在高级活动图中详细建模复杂活动。
二、活动图概览
2.1 通过示例学习
一个基本的活动图,流程图:
2.2 为文字处理器建模
下面的活动图示例描述了文字处理通过以下步骤创建文档的工作流程:
- 打开文字处理包。
- 创建一个文件。
- 将文件保存在其目录中的唯一名称下。
- 键入文档。
- 如果需要图形,请打开图形包,创建图形,然后将图形粘贴到文档中。
- 如果需要电子表格,请打开电子表格包,创建电子表格,然后将电子表格粘贴到文档最终。
- 保存文件。
- 打印文档的硬拷贝。
- 退出文字处理包。
三、活动图示例
3.1 流程订单
给定与处理订单的工作流相关的问题描述,让我们使用活动图对描述进行可视化建模:
流程订单-问题描述
一旦收到订单,活动就会分成两组平行的活动。一方填写并发送订单,另一方处理账单。
在填写订单方面,交货方式是有条件的决定。根据情况执行隔夜派送或定期派送。
最后,并行活动结合起来关闭订单。
下面的活动图示例以图形形式可视化流程:
3.2 学生注册
这个UML
活动图示例描述了大学中学生注册的过程,如下图所示。
- 申请人想入读大学。
- 申请人递交一份填写好的报名表副本。
- 登记员检查表格。
- 注册商确定表格已正确填写。
- 注册商通知学生参加大学概况介绍。
- 注册商帮助学生参加研讨会。
- 注册商要求学生支付初始学费。
3.3 swinlane
活动图
swinlane
是一种将同一角色在活动图或活动图上执行的活动分组或将活动分组在单个线程中的方法。以下是用于对员工费用提交进行建模的swinlane
活动图示例:
3.4 swinlane
和非swinlane
活动图
下面的活动图示例描述了使用没有swinlane
的活动图会见新客户的业务流程。
下图描述了使用带有swinlane
的活动图与新客户会面的业务流程。
四、活动图符号总结
4.1 活动符号
活动:用于表示一组动作
4.2 行动符号
行动:表示要执行的任务
4.3 控制流程符号
控制流程符号:表示执行的顺序
4.4 对象流程符号
对象流程符号:显示对象从一个活动(或动作)到另一个活动(或动作)的流程。
4.5 初始节点符号
初始节点符号:描述一组行动或活动的开始
4.6 终止节点符号
终止节点符号:停止活动(或行动)中的所有控制流和对象流
4.7 对象节点符号
对象节点符号:连接到一组对象流的对象
4.8 决策节点符号
决策节点符号:表示一个测试条件,以确保控制流或对象流只沿着一条路径前进
4.9 合并节点符号
合并节点符号:将使用决策节点创建的不同决策路径重新组合在一起
4.10 分叉节点符号
分叉节点符号:将行为拆分为一组并行或并发的活动(或行动)流
4.11 加入节点符号
加入节点符号:将一组并行或并发的活动(或行动)流重新组合在一起
4.12 swinlane
和分区
swinlane
和分区:一种在活动图上对同一参与者执行的活动进行分组或在单个线程中对活动进行分组的方法