我有一个关于UML状态机图的问题。
从UML 2.5规范,“14.2.3.4.5进入一个州”,p。 307f。
显式条目:如果传入的Transition或其连续在复合State的直接包含的子状态上终止,则该子状态变为活动状态,并且在执行包含复合状态的条目行为之后执行其条目行为。如果Transition终止于间接(深度嵌套)子状态,则此规则将递归应用。
设e是我们的显式条目,这意味着在给定的情况下,A1(即x)的条目活动在A的条目活动(即y)之前执行,对吧?或者反过来呢?
谢谢。
设e是我们的显式条目,这意味着在给定的情况下,A1(即x)的条目活动在A的条目活动(即y)之前执行,对吧?或者反过来呢?
不,这是相反的(它的条目行为是在执行包含复合状态的条目行为之后执行的)所以x在y之后执行
这是合乎逻辑的,你输入A之前进入A1(你进入建筑物之前进入建筑物的公寓)。在退出时,这当然是相反的,你退出A1之前退出A
子状态条目活动在包含状态条目活动完成后运行。因此,最外面的状态输入活动首先运行,最后面的最后一个运行。
因此,如果我们有状态x,y,z,其中x包含y,y包含z和Ax,Ay和Az分别是x,y和z的入口活动,那么当转换终止于z时,执行顺序为Ax => Ay => Az。
注意,退出活动以相反的顺序执行(最里面的状态,最后面的最后面)