什么是活动图

活动图描述活动如何协调以提供服务,该服务可以在不同抽象层次上实现。通常,一个事件需要通过某种操作来实现,尤其是在该操作旨在实现多种不同目标且需要协调时,或描述单个用例中事件之间的相互关系,特别是活动可能重叠并需要协调的用例。它也适用于建模一组用例如何协调以创建组织的工作流程。

何时使用活动图?

开发人员使用活动图来理解程序的高层流程。它还使他们能够识别触发特定事件的约束和条件。

  1. 表示业务工作流程
  2. 通过检查业务工作流程来识别候选用例
  3. 识别用例的前置和后置条件(上下文)
  4. 建模用例之间/内部的工作流程
  5. 在对象操作中建模复杂的工作流程
  6. 在高层活动图中详细建模复杂的活动

活动图的基本组件

活动图本质上是一种流程图,用于表示从一个活动到另一个活动的流程。活动可以被描述为系统的一个操作。活动图的基本目的是捕捉系统的动态行为。它也被称为面向对象的流程图。

活动图的符号与状态机图的符号也非常相似。事实上,根据UML规范,活动图是状态机图的一种变体。

动作

动作是表示活动中单一原子步骤的命名元素,即在该活动中不再进一步分解。

Action

活动

活动表示由各个元素组成的某种行为,这些元素是活动节点,可能包括:

  1. 动作
  2. 对象
  3. 控制流

控制流

控制流表示从一个动作到另一个动作的执行控制转移。

它被绘制为一条实线,一端带有箭头,指向下一个动作。

示例填写订单动作结束后,执行控制将转移到发货订单动作。

Control flow

开始和结束

它们表示活动内动作执行序列的起始点和结束点。开始符号和结束符号也称为初始状态符号和最终状态。

  1. 开始元素绘制为一个小实心圆。
  2. 结束元素绘制为一个被外圆包围的小实心圆。

示例

Start and final

决策

它表示一个决策动作,用于评估某些条件,并决定继续执行哪条动作路径。

决策符号绘制为一个小菱形,具有一条进入的控制流和多条流出的控制流。

每条流出的控制流都应标注导致该流的条件。

示例

在以下动作之后执行的决策动作:接收订单动作以检查库存,可以在图中如下所示绘制:

Decision

合并

它表示多个备选执行路径交汇并继续的合并点。

它绘制为一个小菱形,具有多条进入的控制流和一条流出的控制流。

示例

多个路径交汇的合并点,例如发货订单暂存订单交汇的点可以在图中以合并符号形式绘制,如下所示:

Merge

分叉

它表示一个分叉动作,将单一执行流拆分为多个并发执行流。

它绘制为一条短实线,一侧有一条进入的控制流,另一侧有多条流出的控制流。

示例

在以下动作之后执行的分叉动作:接收订单动作以启动发货订单 操作和 发送发票 操作可以并发地绘制在如下所示的图中:

Fork

合并

它表示一个等待多个并发执行流完成的合并操作。

它被绘制为一条短实线,一侧有多个传入的控制流,另一侧有一个传出的控制流。

示例

在以下操作之前执行的合并操作:关闭订单 操作,以等待以下两个操作都完成:发货订单 操作和 发送发票 操作完成,可以如下面图示所示绘制:

Join

对象

它表示一个可以是操作的输入和/或输出的对象。在这种情况下,对象被视为某个类在特定状态下的一个实例。

它用一个矩形表示,其名称位于矩形内部。

它也可以通过在名称下方用括号写出的状态来加以限定。

示例

订单 [已填] 由以下操作生成的对象:填写订单 操作将被以下操作消耗:发货订单 操作。该对象可以如下面所示,在UML活动图中以对象符号表示:

Object不同符号但具有相同语义:

Object (Semantic)

信号和事件

它表示一个将信号发送到活动外部的信号操作。发送信号操作不会等待信号接收者的任何响应。它自身结束,并将执行控制传递给下一个操作。

它被绘制为一个凸五边形,其名称位于内部。

示例

通知客户在订单处理活动中,发送信号操作可以绘制为UML活动图中的发送信号符号,如下所示:

Singal and evnet

泳道和分区

  1. 分区表示一组共享某些共同属性的操作和对象。
  2. 它被绘制为两条平行线,分区名称位于一端。
  3. 位于两条线之间的任何操作和对象都被认为属于该组。
  4. 如果某个操作或对象可能位于多个分区的边界上,则被认为属于多个组。
  5. 分区可以嵌套,以形成分区的层次结构。

示例

订单处理活动中的操作和对象可以分为3个组:

  1. 订单部门操作组
  2. 会计部门操作组
  3. 客户操作组,基于操作所有权

这些组可以绘制为UML活动图中的分区符号,如下所示:

Swimlane and partition

参数化活动

参数化活动接受活动的输入或提供活动的输出。

活动参数显示在边界上,并在活动名称下方列出:参数名:参数类型。

示例

以下示例展示了为活动定义的两个输入参数和一个输出参数。

Parameterized activity

活动框架

它用于UML活动图中,为活动的所有操作和对象提供一个边界。

它被绘制为一个带圆角的大矩形。活动名称、输入参数和输出参数写在矩形的左上角附近。

表示输入参数和输出参数的对象符号可以放置在矩形的边上。

为什么使用活动图?

UML中的活动图允许您将事件创建为活动,该活动包含由边连接的一组节点。活动可以附加到任何建模元素上以模拟其行为。活动图常用于详细说明。

  • 用例
  • 组件和子系统
  • 工作流和业务流程

更多活动图示例

Activity frame

示例:活动图——符号

Activity notatins explained

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

Activity diagram example - Process Order

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

Activity diagram example - Create shipment

示例:活动图泳道

Activity diagram example - Process Order (Swimlane)

资源

  1. 如何在UML中绘制活动图?——Visual Paradigm
  2. Visual Paradigm Online – Google Workspace Marketplace
  3. Visual Paradigm 中的 UML 图简介 – ArchiMetric
  4. Visual Paradigm 子活动图图标 – Stack Overflow
  5. 在线UML图工具
  6. 活动图——统一建模语言(UML)——GeeksforGeeks
  7. 创建UML活动图 – Microsoft 支持
  8. UML类图教程
  9. 领域模型与活动图之间的区别 – Stack Overflow

Leave a Reply