活动图是UML的5种动态建模机制之一,是面向过程的说明,描述了业务用例实现的工作流程。活动图也是状态机的一个特殊例子,强调计算过程中的顺序和并发步骤,其中大部分状态都是活动状态,大部分的转换由原状态中的活动的完成触发:即由上一个活动完成后产生的结果对下一个活动产生的影响。
活动图是一中用于描述系统行为的模型视图,用来描述动作和动作导致对象状态改变的结果,而不用考虑印发状态改变的事件。活动图通常记录单个操作或方法的逻辑、用例的逻辑流程。活动图是状态图的一种,所以活动图的符号与状态图的符号很相似。活动图的开始和结束与状态图类似,开始都是一个实心的圆,结束是一个实心的圆外面一个圆圈。与状态图中的状态相比,活动图中的活动的表示是一个接近椭圆的矩形,目的是描述动作及对象的改变结果,且不需要任何触发事件。
活动图的作用
1. 描述一个操作执行过程中所完成的工作,说明对象是如何工作的。
2. 对用例描述尤其有用,说明用例的实例是如何执行动作以及如何改变对象状态的。
3. 显示如何执行一组相关的动作,以及这些动作如何影响对象周围的相关项。
4. 可以明确业务处理操作是如何进行的,以及可能产生的变化。
5. 描述复杂过程的算法。
活动图的组成
动作状态:在UML中动作状态是用一个近似椭圆的方块表示,它表示的事件处理时间很短。动作状态不包括事件触发的转换,常用于对工作流执行过程中的步骤进行建模。另外动作状态是原子性的动作或操作的执行状态,即动作要么不执行,要么完全执行。
活动状态:活动状态是非原子性的,用来表示一个具有子结构的纯粹计算的执行。活动状态可以分解成其他子活动或动作状态,可以使转换离开状态的时间从外部中断,可以有内部转换、入口动作和出口动作。相对于动作状态,活动状态用于描述持续事件或复杂性的计算,活动时间长。两者的表示外形一样,区别是活动状态可以再图标中给出入口动作和出口动作等信息。
组合活动:组合活动是一种内嵌的活动图状态,嵌套了若干活动或动作,可以表示连续的复杂的多状态的活动。
分叉与组合:对于一些大型复杂的系统来说,对象在运行时往往不只存在一个控制流,而是多个控制流并发运行,为了更好的对并发操作的处理,UML中引入了分叉和组合。分叉用一条粗体黑线表示,具有一个输入多个输出;组合也是用的粗体黑线,是具有多个输入一个输出。
分支与合并:分支在活动图中很常见,它是转换的一部分,将转换路径分为多个部分,每一部分有自己的监护条件和不同的结果。最常见的就是用来进行判断的过程。UML中的一个空心菱形用来表示判断,判断后就将活动分为了两部分。合并跟分支是相反的作用,最常见的就是在判断后,合并到同一个结果的时候,这就是合并。
泳道:为了对活动的职责进行组织而在活动图中阿静活动状态分为不同的组,成为泳道,每个泳道代表特定含义的状态职责部分,明确表示了那些活动是由那些对象进行的。
对象流:对象流是将对象流状态作为输入或输出的控制流。在活动图中,对象流描述了动作状态或活动状态与对象之间的关系,表示了动作使用对象以及动作对对象的影响。