活动图与业务工作流程图类似,或者简单地说是具有更丰富语义的流程图。它描述了系统活动或进行活动的人员以及这些活动的顺序流程。活动图是与面向对象方法相关的UML图之一,因为它可以用于任何其他软件开发范例
(一键即时打开使用)
什么是UML中的活动图?
活动图可用于描述如何协调活动以提供不同抽象级别的服务。活动图的强大之处在于它们支持和鼓励平行行为。这使得它们成为工作流建模的理想工具,并且原则上也是多线程编程的工具。活动图还可以通过用对象名称标记活动或使用泳道来定义到对象的链接,从而使活动图可以根据职责进行组织。
尝试一下!
寻找在线活动图工具?只需点击下面的绘图按钮即可在线创建活动图。Visual Paradigm Online是免费*且直观的。在开始之前,您还可以通过此活动图教程了解活动图。
现在画
活动图一览
在我们讨论活动图中的单个符号的细节之前,让我们快速看一下非常一般的活动图。以下是详细描述业务用例的示例活动图 - 机场办理登机手续:
活动图表示法
初始,最终和最终流程节点
初始节点(开始状态)
- 使用初始状态描述活动发生之前的开始状态。
- 一个进程只能有一个初始状态,除非我们描述了嵌套的活动。我们用一个黑色的实心圆圈来描述系统的初始状态。
- UML活动图中的初始状态标记了入口点和初始活动状态。
最终节点(结束状态)
在UML中,最终动作状态使用围绕小实心圆圈(牛眼)的圆圈显示。活动图可能只有一个初始操作状态,但可能有任何数量的最终操作状态。
流最终节点
UML 2.0有一个名为Flow Final的附加控制节点类型,用作活动最终节点的替代方案来终止流程。这是因为在UML 2.0中,当控制到达Activity Final节点的任何实例时,整个活动(包括所有流)都会终止。流程最终会简单地终止它所连接的流程。
注意:由于运行到完成的语义,这在UML 1.5中不是问题,但是由于UML 2.0的限制并行性,您可能不希望所有流都停止,并且所有令牌都被销毁。
行动和活动状态
UML活动图上的活动(也称为活动状态)通常表示调用操作,业务流程中的步骤或整个业务流程。
Action是一个命名的元素,它表示活动中的单个原子步骤,即在活动内不会进一步分解。
流程转换
鉴于一系列行为状态,这些行为状态如何相互关联?流程转换解决了这个问题,流程转换显示了如何对操作状态进行排序或排序。有多种类型的流程转换,包括控制流程和目标流程转换。
控制流
动作流或控制流也称为路径和边。它们用于显示从一个活动状态到另一个活动状态的转换。活动状态可以有多个传入和传出的操作流。我们使用带箭头的线来描绘控制流程。如果在进行转换时需要遵守一些约束条件,则会在箭头中提及。
在UML中,控制流转换显示为从源操作状态到目标操作状态的实线。
对象流
在UML中,对象流转换显示为动作状态和对象之间的虚线箭头。显示使用对象作为输入的操作状态,其中对象流转换箭头指向对象到操作状态。显示更新或生成对象作为输出的操作状态,其中操作状态指向对象的对象流转换箭头显示。
- 动作产生或使用的对象。这允许我们对对象流进行建模。
决策节点和分支
当我们需要在决定控制流程之前做出决定时,我们使用决策节点,例如一个输入转换,以及多个输出并行转换和/或对象流。
决策节点
- 决策节点在输入边上接受令牌并将它们呈现给多个输出边。
- 实际上遍历哪条边取决于对出边的防护的评估。
合并节点
- 合并节点是将多个备用流程汇集在一起的控制节点。
- 它不是用来同步并发流,而是用来接受几个备用流中的一个。
- 合并节点具有多个传入边和单个传出边。
叉节点
- 分叉节点是将流分成多个并发流的控制节点。
- 叉节点具有一个传入边缘和多个传出边缘。
加入节点
- 加入节点是同步多个流的控制节点。
- 一个连接节点有多个传入边和一个传出边。
守卫
守卫是贯穿过渡必须是真实的条件。
对象节点
UML 2.0活动建模也支持对象节点。对象节点是一个活动节点,指示特定分类器的实例(可能处于特定状态)可能在活动的特定点(例如,作为输出或输入到动作)可用。对象节点充当特定类型(可能处于特定状态)的对象可能流向的容器。
数据存储
数据存储是持久存储对象的对象的刻板印象。
注意
- 注释(注释)赋予将各种注释附加到元素的能力。
- 评论不带有语义力,但可能包含对建模者有用的信息。
甬道
泳道活动图将活动分组成泳道列,其中包含所有适合泳道所代表的类别的活动。泳道可以代表许多类别的信息,例如执行活动的角色(即角色或部门),活动发生的过程的阶段,或文档创建者认为应该由泳道图。泳道这个术语是由于图的水平行与游泳池内发现的泳道之间的视觉相似性而被采纳的。
在UML中,泳道被显示为一个视觉区域,其两侧用垂直实线与相邻泳道分开,并在顶部标记负责泳道内动作状态的元素。
时间事件和事件信号
时间事件在时间表达式为真时流动,事件信号在事件发生时流动。可以使用沙漏符号来表示接受时间事件。
接受事件操作是活动图中业务流程的重要元素。接受操作等待事件发生。事件被接受后,执行来自此操作的流程。
发送信号动作是一个信号被发送到接受活动,可以作出相应的反应。
何时绘制活动图?
活动图用于模拟描述条件,约束,顺序和并发活动的工作流程。另一方面,用例的目的仅仅是描述功能,即系统的功能,而不是如何完成。所以简单地说,一个活动图显示了“如何”,而一个用例显示了特定系统的“什么”,因此活动图通常与用例配对。
就UML而言,我们可以将活动图用于以下目的,例如:
- 在高层活动图中模拟复杂活动和业务工作流程
- 通过检查业务工作流来确定候选用例以及用例的前置条件和后置条件
- 一个用例中的事件如何相互关联,尤其是活动可能重叠并需要在用例之间进行协调的情况
- 用例集合如何协调为组织创建工作流程
- 在用例之间/在用例之间建模工作流
注意:可以使用活动图来说明业务流程(高级别实施)到独立算法(地面级实施)。
活动图示例
这个例子显示了剧院办公室的活动图。该图显示了计划展览时涉及的活动。
- 箭头显示顺序依赖关系 - 例如,必须在计划之前选择显示。
- 沉重的酒吧显示叉子或控制加入。例如,在节目安排完毕后,剧院可以开始宣传,购买剧本,雇佣艺术家,制作布景,设计照明和制作服装,所有这些都是同时进行的。但是,在开始排练之前,剧本必须订购,艺术家必须被录用。
活动图有助于理解系统的高级执行行为,而不涉及协作图所需的消息传递的内部细节。
运输过程
以下示例描述了订单处理的业务流程活动。在下图中,请求的顺序是活动的输入参数。接受订单并填写所有必填信息后,付款将被接受并且订单已发货。
示例 - 活动图 - 业务建议流程
活动图也可用于描述业务中的角色和责任领域 - 换句话说,谁负责在业务中做什么。角色和职责范围在活动图中记录为列(UML泳道)。泳道显示哪些业务工作者参与实现工作流程
此活动图表记录了企业如何执行提案流程,其中包含三个职责领域(客户销售界面,提案所有者和报价所有者)
更多类图示例:
示例1:文章提交过程
示例2:多维泳道
UML 2.0将此分区功能扩展到活动图的多个维度并提供附加的表示法,以便可以使用它们所属的分区的名称来标记各个操作。
下图显示了根据UML 2.0显示的多维泳道示例,其中根据位置和责任对动作进行分组。