SJ/T XXXX.1 - XXXX 1 1 活动图 1 1 .1 活动图 11.1.1 语义 活动图是状态机的变体,变体中的状态表示动作或子活动的执行,转换由动作或子活动的完成触发。活动图表示过程自身的状态机。 11.1.2 表示法 活动图是状态图的特例,其中所有(至少大多数)的状态是动作或子活动,并且其中所有(至少大多数)的转换由在源状态中的动作或子活动的完成触发。整个活动图附属(通过模型)到类(如用况)、包或操作的实现。活动图注重于由内部进程驱动的流(与外部事件相比)。在所有或大多数事件都表示实现内部产生的动作(即,控制的过程流)的情形下,使用活动图。在发生异步事件的情境下,使用普通的状态图。 11.1.3 例子 图11-1 活动图 90SJ/T XXXX.1 - XXXX 11.1.4 映射 活动图型映射为活动图 11.2 动作状态 11.2.1 语义 动作状态是这样的状态,它具有一个入口动作和至少一个外出转换,外出转换中包含完成入口动作的隐含事件(如果有监护条件,可能有几个这样的转换)。动作状态不能有内部转换或者基于显式事件的外出转换,对这种情形,使用一般的状态。通常用动作状态对算法(过程)或工作流的执行步骤进行建模。 11.2.2 表示法 可以用一个上下是直线、左右是外凸的圆弧的图形表示动作状态。动作表达式放在图形之内。动作表达式在图中可以是不唯一的。 从动作状态出发的转换不应包括事件特征标记。状态中动作的完成隐式地触发这样的转换。转换可以包括监护条件和动作。 11.2.3 表示选项 可以用自然语言、伪代码或者程序语言代码描述动作。描述动作时仅可以使用拥有这个动作的对象的属性和链。 注意,可以在普通的状态图中使用动作状态表示法;然而,它们在活动图中更加常用,活动图是状态图的特殊情况。 11.2.4 例子 图 11-2 动作状态 11.2.5 映射 动作状态符号映射为动作状态,这样的动作状态带有被映射为状态的入口动作的动作表达式。动作状态既没有退出也没有内部转换。状态通常是匿名的。 11.3 子活动状态 11.3.1 语义 子活动状态调用活动图。当进入一个子活动状态时,就执行“嵌套”在其中的活动图,这样的活动图就象其他的活动图一样。除非达到嵌套图的最后一个状态,或者在由子活动状态出来的转换上发生了触发事件,否则不退出子活动状态。因为在活动图中通常状态没有触发事件,所以子活动状态经常在嵌套图完成后退出。单个的活动图可以被多个子活动状态唤醒。 11.3.2 表示法 子活动状...