正如http://www.eclipse.org/forums/index.php/t/452409/中已经提到的那样 我不确定我是否正确地理解了局部过渡的意义,我想知道我是否使用了正确的语义或不使用它们
这两台状态机是否相等?
答案 0 :(得分:4)
在UML 2.4.1下,第一个图显示了在收到触发器时从State1的本地转换,其中第二个图显示了在收到触发器时子状态之间的转换。从State1开始的外部过渡将通过指向State1的箭头显示,然后弯曲回到它(上层结构规范的图15.48)。
第15.3.15节UML上层结构2.4.1的 TransitionKind 给出了内部,局部和外部转换的语义:
kind = local表示转换(如果已触发)将不会退出复合(源)状态,但它将应用于复合状态中的任何状态,并且将退出并输入这些状态。
由于本地和子状态之间的转换都不会导致State1退出,图表显示类似的状态机 - 不同之处在于,从State1.3开始,第一台机器将重新进入State1.3(导致其退出和进入要调用的行为)而第二个对触发器的State1.3无效。