UML 活动图指定类、用例和操作的工作流程(即“流程”)。当行为并非由事件驱动时,最好使用活动图而非状态图。
类(用例/操作)可以具有活动图或状态图,但不能同时具有这两者。但是,类、对象、块、部件或用例可以有多个活动图并将其中一个图指定为主行为。
注: 在同一个分类器中的不同活动之间,可以对主行为进行更改。
活动图的一种非常有用的应用是定义算法。算法实际上是将函数分解成更小的函数以指定给定流程中包含的活动。
注: 时序图可以显示对象中的执行算法,但活动图由于能够更好地显示并发性而更适合于此用途。
UML 活动图具有下列特征:
- 决策节点根据警戒条件指示程序流中的分支点。
- 动作表示在函数完成时采用单一退出控制流的函数调用。并非所有动作都必须在同一个对象中。
- 接受事件动作表示流程正在等待事件发生。
- 动作块表示可以分解为多个动作的复合动作。
- 子活动表示嵌套的活动图。
- 对象节点表示从一个状态的动作输出传递到另一状态的动作输入的对象。
- 泳道以可视方式组织动作及子动作的职责。它们通常与业务模型中的组织单元相对应。
- 调用行为引用另一活动图中的活动,或者引用整个活动图本身。
- 调用操作引用另一活动图中的操作,或者引用整个活动图本身。
- 分析方式使用引脚、参数、流终态以及可中断的区域。
另外,还可以使用活动图的下列高级功能:
- 对活动图进行命名和重命名
- 随包一起包括活动图(但不包括状态图),而不创建类
- 在一个包中支持多个活动
- 使对象节点与类相关联
- 在活动图中添加调用行为,或者通过将操作从浏览器拖放到图中来完成此任务
- 通过将一个类从浏览器拖到“泳道”名称区段,可以创建与这个类(且仅与这个类)的泳道关联(这些关联代表字段填充)。有关更多信息,请参阅使用泳道来划分活动图。
- 在主行为活动图中引用备用活动图