活动图类似于业务工作流程图或简单的流程图,具有更丰富的语义。它描述了系统活动,或进行活动的人,以及这些活动的顺序流程。活动图是与面向对象方法相关的 UML 图之一,通过它可以用于任何其他软件开发範式
什么是 UML 中的活动图?
活动图可用于描述如何协调活动以提供不同抽象级别的服务。活动图的强大之处在于它们支持和鼓励并行行为。这使它们成为工作流建模和多线程编程的绝佳工具。活动图还可以通过使用对象名称标记活动或使用泳道来定义到对象的链接,这使得活动图能够基于职责进行结构化。
活动图一览
在我们深入研究活动图中单个符号的细节之前,让我们快速浏览一下一个非常通用的活动图。以下是用于详细说明业务用例的示例活动图 - 在机场办理登机手续:
活动图符号
初始、最终和流程最终节点
初始节点(开始状态)
活动发生之前的起始状态使用初始状态来描述。除非我们描述嵌套活动,否则流程只能有一个初始状态。我们使用黑色实心圆圈来描绘系统的初始状态。UML 活动图中的初始状态标记了入口点和初始活动状态。最终节点(结束状态)
在 UML 中,最终的动作状态是使用一个围绕着一个小的实心圆(一个靶心)的圆来显示的。一个活动图可能只有一个初始动作状态,但可能有任意数量的最终动作状态。
流最终节点
UML 2.0 有一个额外的控制节点类型,称为 Flow Final,它用作 Activity Final 节点的替代方法来终止流。它是必需的,因为在 UML 2.0 中,当控製到达 Activity Final 节点的任何实例时,整个活动(包括所有流)都会终止。Flow Final 只是终止它所连接的流。
注意:由于运行到完成语义,这在 UML 1.5 中不是问题,但是使用 UML 2.0 的不受限制的并行性,您可能不希望所有流停止并销毁所有标记。
动作和活动状态
UML 活动图上的活动(也称为活动状态)通常表示操作的调用、业务流程中的一个步骤或整个业务流程。
Action 是一个命名元素,它代表活动中的单个原子步骤,即在活动中没有进一步分解。
流动过渡
给定一组动作状态,这些动作状态如何相互关联?流转换解决了这个问题,流转换显示了动作状态是如何排序或排序的。有各种类型的流转换,包括控制流和对象流转换。
控制流
动作流或控制流也称为路径和边。它们用于显示从一种活动状态到另一种活动状态的转换。一个活动状态可以有多个传入和传出的动作流。我们使用带箭头的线来描述控制流。如果在进行转换时有要遵守的约束,它会在箭头上注明。
在 UML 中,控制流转换显示为从源动作状态到目标动作状态的实线。
对象流
在 UML 中,对象流转换显示为动作状态和对象之间的虚线箭头。使用对像作为输入的操作状态显示为对象流转换箭头从对象指向操作状态。更新或生成对像作为输出的操作状态显示为对象流转换箭头从操作状态指向对象。
由动作产生或使用的对象。这允许我们对对象流进行建模。决策节点和分支
当我们需要在决定控制流之前做出决定时,我们使用决策节点,例如一个传入的转换,以及多个传出的并行转换和/或对象流。
决策节点
决策节点接受传入边上的令牌并将它们呈现给多个传出边。实际遍历哪条边取决于对输出边上的守卫的评估。合併节点
合併节点是一个控制节点,它汇集了多个备用流。它不用于同步并发流,而是接受多个替代流中的一个。合併节点具有多个传入边和单个传出边。分叉节点
fork 节点是一个控制节点,它将一个流拆分为多个并发流。一个分叉节点有一个入边和多个出边。加入节点
加入节点是同步多个流的控制节点。一个连接节点有多个入边和一个出边。警卫
守卫是为了遍历转换必须为真的条件。
对象节点
UML 2.0 活动建模还支持对象节点。对象节点是一个活动节点,它指示可能处于特定状态的特定分类器的实例可能在活动的特定点可用(例如,作为动作的输出或输入)。对象节点充当特定类型(并且可能处于特定状态)的对象可能流入和流出的容器。
数据存储
数据存储是持久存储对象的对象的构造型。
笔记
注释(注释)提供了将各种注释附加到元素的能力。评论不带有语义力量,但可能包含对建模者有用的信息。泳道
泳道活动图将活动分组到泳道列中,这些列包含适合该泳道所代表的类别的所有活动。泳道可以代表许多类别的信息,例如执行活动的参与者(即角色或部门)、活动发生的过程阶段,或者文档创建者认为应该由文档作者强调和传达的任何其他信息。泳道图。由于图表的水平行与游泳池内的泳道在视觉上相似,因此採用术语泳道。
在 UML 中,泳道显示为通过两侧垂直实线与相邻泳道分开的视觉区域,并在顶部标记为负责泳道内动作状态的元素。
时间事件和事件信号
当时间表达式为真时,时间事件流动,而事件发生时事件信号流动。沙漏符号可用于表示接受时间事件。
接受事件操作是活动图中业务流程的重要元素。接受动作等待事件发生。接受事件后,将执行来自此操作的流程。
发送信号动作是发送给接受活动的信号,该活动可以做出相应的反应。
什么时候画活动图?
活动图用于对描述条件、约束、顺序和并发活动的工作流进行建模。另一方面,用例的目的只是描述功能,即係统做什么而不是如何完成。因此,简单来说,活动图显示“如何”,而用例显示特定係统的“内容”,因此,活动图通常与用例成对出现。
就UML而言,我们可以将活动图用于以下目的,例如:
在高级活动图中对複杂活动和业务工作流进行建模通过检查业务工作流,确定候选用例以及用例的前置和后置条件单个用例中的事件如何相互关联,特别是活动可能重叠并需要用例之间的协调用例集合如何协调为组织创建工作流用例之间/内部的模型工作流注意:活动图可用于说明业务流程(高级实现)到独立算法(底层实现)。
活动图示例
此示例显示了剧院办公室的活动图。此图显示了策划演出所涉及的活动。
箭头显示顺序相关性——例如,必须在安排节目之前选择节目。粗条显示分叉或控制连接。例如,演出安排好后,剧院就可以开始宣传、购买剧本、聘请艺术家、搭建布景、设计灯光和製作服装,所有这些都可以同时进行。但是,在开始排练之前,必须订购脚本并聘请艺术家。活动图有助于理解系统的高级执行行为,而无需涉及协作图所需的消息传递的内部细节。
运输流程
以下示例描述了订单处理的业务流活动。在下图中,请求的订单是活动的输入参数。接受订单并填写所有必需信息后,接受付款并发货。
示例 – 活动图 – 业务提案流程
活动图还可用于描述业务中的角色和职责範围——换句话说,谁负责在业务中做什么。角色和职责範围记录为活动图中的列(UML 泳道)。泳道显示哪些业务人员参与了工作流的实现
此活动图记录了企业如何执行提案流程,具有三个职责範围(客户销售界面、提案所有者和报价所有者)
更多类图示例:
示例 1:文章提交流程
示例 2:多维泳道
UML 2.0 将这种分区功能扩展到活动图的多个维度,并提供了额外的表示法,以便可以用它们所属的分区的名称来标记各个动作。
下图显示了根据 UML 2.0 出现的多维泳道示例,其中动作根据位置和职责进行分组。
通过研究不同应用程序的更多示例,您可以更详细地了解活动图。VisualParadigm Online是一个免费工具,允许您立即编辑和修改示例,无需事先注册。如果你喜欢它,你可以永远免费使用它!
ATM Activity Diagram with Swimlanes
Basic Activity Diagram
Multidimensional Swimlanes
Article Submission
Planning a Show
Completing an Assignment
Order Processing
ATM
Swimlane for Order Fulfilment
Relationships between Activities and Business Entities
Swimlane Proposal Process-
ATM Activity Diagram with Swimlanes
Basic Activity Diagram
Multidimensional Swimlanes
Article Submission
Planning a Show
Completing an Assignment
Order Processing
ATM
Swimlane for Order Fulfilment
Relationships between Activities and Business Entities
Swimlane Proposal Process