UML 活动图:参考

“活动图”可通过一系列操作将业务流程或软件进程以工作流的形式显示出来。 这些操作可以由人、软件组件或计算机来执行。

使用活动图可以描述多种类型的流程,具体示例如下:

  • 用户和您的系统之间的业务流程或工作流。 有关更多信息,请参见用户需求建模

  • 某一用例中执行的步骤。 有关更多信息,请参见UML 用例图:准则

  • 软件协议,即允许在组件间进行的交互序列。

  • 软件算法。

本主题介绍可以在活动图中使用的元素。 有关绘制活动图的更多详细信息,请参见UML 活动图:准则。 若要创建 UML 活动图,请在**“体系结构”菜单上,单击“新建关系图”**。 有关如何绘制一般建模图的更多信息,请参见如何:编辑 UML 模型和关系图

读取活动图

下面几节中的表介绍可以在活动图中使用的元素以及它们的主要属性。 有关这些元素的属性的完整列表,请参见活动图中元素的属性

活动图中显示的操作和其他元素共同构成一个活动。 可以在 UML 模型资源管理器中查看活动。 活动在您向关系图中添加第一个元素时创建。

在读取关系图时,假设有一个令牌或控制线程将连接线从一个操作传递给下一个操作。

Dd409360.collapse_all(zh-cn,VS.110).gif简单控制流

可以使用分支和循环显示操作序列。 有关如何使用此处所述元素的更多信息,请参见UML 活动图:准则主题的“描述控制流”部分。

一个简单的控制流

形状

元素

说明和主要属性

1

操作

活动中的一个步骤,用户或软件可以在其中执行某项任务。

操作可以在令牌到达其所有传入流时开始。 操作结束后,令牌会在所有传出流上进行发送。

  • Body - 指定详细操作。

  • Language - 正文中的表达式的语言。

  • Local Postconditions - 终止执行时必须满足的约束。 操作实现的目标。

  • Local Preconditions - 开始执行前必须满足的约束。

2

控制流

显示操作之间的控制流的连接线。 在解释关系图时,假设有一个令牌从一个操作流向下一个操作。

若要创建控制流,请使用“连接线”工具。

3

初始节点

指示活动中的第一个操作或第一组操作。 活动开始时,令牌从初始节点流出。

4

活动最终节点

标志着活动的结束。 令牌到达时,活动将终止。

5

决策节点

流中的一个条件分支。 具有一个输入以及两个或多个输出。 传入令牌只会在一个输出上显示。

6

Guard

一种用于指定令牌是否可以沿着连接线流动的条件。 在决策节点的传出流上最常用到。

若要设置临界,请右击流,再单击“属性”,接着设置“临界”属性。

7

合并节点

在合并由决策节点拆分的流时需要用到。 具有两个或多个输入以及一个输出。 任何输入上的令牌都会在输出上显示。

8

注释

提供有关其链接到的元素的其他信息。

9

调用行为操作

一种操作,在另一个活动图中进行了详细定义。

  • IsSynchronous - 如果为 True,则直到活动终止时才执行操作。

  • Behavior - 调用的活动。

(不显示)

“调用操作”操作

一种操作,可以在类的实例上调用操作。

活动

活动图所描绘的工作流。 若要查看活动的属性,必须在“UML 模型资源管理器”中选择该活动。

  • Is Read Only - 如果为 True,则此活动不应更改任何对象的状态。

  • Is Single Execution - 如果为 True,则每次最多只能执行一次此关系图。

UML 活动图

用于显示活动的关系图。 要查看其属性,请单击关系图中的空白部分。

说明说明
活动图的名称、活动图所在文件的名称以及图中所示活动的名称可以各不相同。

Dd409360.collapse_all(zh-cn,VS.110).gif并发流

可以描述同时执行的操作序列。 有关更多信息,请参见“绘制并发流”。

显示并发流的活动图

形状

元素

说明

11

分叉节点

将单个流划分为并发流。 每个传入令牌会在每个传出连接线上生成一个令牌。

12

联接节点

将并发流合并为单个流。 当每个传入流有等待的令牌时,输出上就会生成一个令牌。

13

发送信号操作

一种操作,可以将消息或信号发送给另一个活动,或同一活动中的并发线程。 消息的类型和内容可以通过操作的标题或其他注释中指定的信息看出。

此操作能够以信号形式发送数据,信号可以传递给对象流或输入插针 (16) 中的操作。

14

接受事件操作

一种要在等到消息或信号后才能继续执行的操作。 此操作能接收的消息类型可以通过操作的标题或其他注释中指定的信息看出。

如果此操作没有传入控制流,它会在收到消息后立即生成一个令牌。

此操作能够以信号形式接收数据,信号可以在对象流或输出插针 (17) 中进行传递。

  • IsUnmarshall - 如果为 True,则可有多个类型化的输出插针,并且取消对它们封送数据。 如果为 False,则所有数据都显示在一个插针上。

Dd409360.collapse_all(zh-cn,VS.110).gif数据流

可以描述从一个操作到另一个操作的数据流。 有关此节中所用元素的更多信息,请参见“绘制活动图指南”主题的“绘制数据流”部分。

显示数据流的活动图

形状

元素

说明

15

对象节点

表示通过流传递的数据。

  • Ordering - 如何存储多个令牌。

  • Selection - 调用对数据进行筛选的进程,该进程可在另一个关系图中定义。

  • Upper Bound - 0 指示数据必须直接通过流传递;* 指示数据可以存储在流中。

  • Type - 存储和传输的对象的类型。

16

输入插针

表示操作执行时可以接收的数据。

  • Type - 传输的对象的类型。

17

输出插针

表示操作执行时生成的数据。

  • Type - 传输的对象的类型。

18

活动参数节点

一种对象节点,通过该节点活动可以接收或生成数据。

在通过另一个活动调用此关系图表示的活动时使用,或在此关系图描述操作或函数时使用。

  • Type - 传输的对象的类型。

(不显示)

Object Flow

显示操作和对象节点之间的数据流的连接线。

若要创建对象流,可以使用“连接线”工具将输入/输出插针或对象节点链接到另一个元素。

  • Selection - 调用对数据进行筛选的进程,该进程可在另一个关系图中定义。

  • Transformation - 调用对数据进行转换的进程,该进程可在另一个关系图中定义。

  • IsMulticast - 指示可能有多个接收方对象或组件。

  • IsMultiReceive - 指示可以从多个对象或组件接收输入。

请参见

概念

如何:编辑 UML 模型和关系图

UML 活动图:准则