何时使用活动图?
开发人员使用活动图来理解程序的高层流程。它还使他们能够识别触发特定事件的约束和条件。
- 表示业务工作流程
- 通过检查业务工作流程来识别候选用例
- 识别用例的前置和后置条件(上下文)
- 建模用例之间/内部的工作流程
- 在对象操作中建模复杂的工作流程
- 在高层活动图中详细建模复杂的活动
活动图的基本组件
活动图本质上是一种流程图,用于表示从一个活动到另一个活动的流程。活动可以被描述为系统的一个操作。活动图的基本目的是捕捉系统的动态行为。它也被称为面向对象的流程图。
活动图的符号与状态机图的符号也非常相似。事实上,根据UML规范,活动图是状态机图的一种变体。
动作
动作是表示活动中单一原子步骤的命名元素,即在该活动中不再进一步分解。
![]()
活动
活动表示由各个元素组成的某种行为,这些元素是活动节点,可能包括:
- 动作
- 对象
- 控制流
控制流
控制流表示从一个动作到另一个动作的执行控制转移。
它被绘制为一条实线,一端带有箭头,指向下一个动作。
示例当填写订单动作结束后,执行控制将转移到发货订单动作。
![]()
开始和结束
它们表示活动内动作执行序列的起始点和结束点。开始符号和结束符号也称为初始状态符号和最终状态。
- 开始元素绘制为一个小实心圆。
- 结束元素绘制为一个被外圆包围的小实心圆。
示例
![]()
决策
它表示一个决策动作,用于评估某些条件,并决定继续执行哪条动作路径。
决策符号绘制为一个小菱形,具有一条进入的控制流和多条流出的控制流。
每条流出的控制流都应标注导致该流的条件。
示例
在以下动作之后执行的决策动作:接收订单动作以检查库存,可以在图中如下所示绘制:

合并
它表示多个备选执行路径交汇并继续的合并点。
它绘制为一个小菱形,具有多条进入的控制流和一条流出的控制流。
示例
多个路径交汇的合并点,例如发货订单和暂存订单交汇的点可以在图中以合并符号形式绘制,如下所示:

分叉
它表示一个分叉动作,将单一执行流拆分为多个并发执行流。
它绘制为一条短实线,一侧有一条进入的控制流,另一侧有多条流出的控制流。
示例
在以下动作之后执行的分叉动作:接收订单动作以启动发货订单 操作和 发送发票 操作可以并发地绘制在如下所示的图中:

合并
它表示一个等待多个并发执行流完成的合并操作。
它被绘制为一条短实线,一侧有多个传入的控制流,另一侧有一个传出的控制流。
示例
在以下操作之前执行的合并操作:关闭订单 操作,以等待以下两个操作都完成:发货订单 操作和 发送发票 操作完成,可以如下面图示所示绘制:

对象
它表示一个可以是操作的输入和/或输出的对象。在这种情况下,对象被视为某个类在特定状态下的一个实例。
它用一个矩形表示,其名称位于矩形内部。
它也可以通过在名称下方用括号写出的状态来加以限定。
示例
订单 [已填] 由以下操作生成的对象:填写订单 操作将被以下操作消耗:发货订单 操作。该对象可以如下面所示,在UML活动图中以对象符号表示:
不同符号但具有相同语义:
![]()
信号和事件
它表示一个将信号发送到活动外部的信号操作。发送信号操作不会等待信号接收者的任何响应。它自身结束,并将执行控制传递给下一个操作。
它被绘制为一个凸五边形,其名称位于内部。
示例
该通知客户在订单处理活动中,发送信号操作可以绘制为UML活动图中的发送信号符号,如下所示:
![]()
泳道和分区
- 分区表示一组共享某些共同属性的操作和对象。
- 它被绘制为两条平行线,分区名称位于一端。
- 位于两条线之间的任何操作和对象都被认为属于该组。
- 如果某个操作或对象可能位于多个分区的边界上,则被认为属于多个组。
- 分区可以嵌套,以形成分区的层次结构。
示例
订单处理活动中的操作和对象可以分为3个组:
- 订单部门操作组
- 会计部门操作组
- 客户操作组,基于操作所有权
这些组可以绘制为UML活动图中的分区符号,如下所示:

参数化活动
参数化活动接受活动的输入或提供活动的输出。
活动参数显示在边界上,并在活动名称下方列出:参数名:参数类型。
示例
以下示例展示了为活动定义的两个输入参数和一个输出参数。

活动框架
它用于UML活动图中,为活动的所有操作和对象提供一个边界。
它被绘制为一个带圆角的大矩形。活动名称、输入参数和输出参数写在矩形的左上角附近。
表示输入参数和输出参数的对象符号可以放置在矩形的边上。
为什么使用活动图?
UML中的活动图允许您将事件创建为活动,该活动包含由边连接的一组节点。活动可以附加到任何建模元素上以模拟其行为。活动图常用于详细说明。
- 用例
- 类
- 组件和子系统
- 工作流和业务流程
更多活动图示例

示例:活动图——符号

示例:活动图——流程顺序

示例:活动图——创建发货

示例:活动图泳道

资源
- 如何在UML中绘制活动图?——Visual Paradigm
- Visual Paradigm. (无日期). 如何在UML中绘制活动图?——Visual Paradigm .
- Visual Paradigm Online – Google Workspace Marketplace
- Google Workspace Marketplace. (无日期). Visual Paradigm Online – Google Workspace Marketplace .
- Visual Paradigm 中的 UML 图简介 – ArchiMetric
- ArchiMetric. (2024年8月23日). Visual Paradigm 中的 UML 图简介 – ArchiMetric .
- Visual Paradigm 子活动图图标 – Stack Overflow
- Stack Overflow. (无日期). Visual Paradigm 子活动图图标 – Stack Overflow .
- 在线UML图工具
- Visual Paradigm. (无日期). 在线UML图工具.
- 活动图——统一建模语言(UML)——GeeksforGeeks
- GeeksforGeeks. (2017年10月27日). 活动图——统一建模语言(UML)——GeeksforGeeks.
- 创建UML活动图 – Microsoft 支持
- Microsoft 支持。(无日期)。创建UML活动图 – Microsoft 支持.
- UML类图教程
- Visual Paradigm。(无日期)。UML类图教程 .
- 领域模型与活动图之间的区别 – Stack Overflow
- Stack Overflow。(无日期)。领域模型与活动图之间的区别 – Stack Overflow .