UML状态机,本地与外部转换

Sin*_*ico 7 uml modeling

正如在http://www.eclipse.org/forums/index.php/t/452409/中已经提到的那样, 我不确定我是否正确地了解了本地转换的含义,我想知道我是否正在使用它们是否是正确的语义

这两台状态机是否相等?

状态机与本地过渡

状态机没有本地转换

Pet*_*ham 5

下UML 2.4.1,第一图显示从状态1在接收的本地过渡触发,其中在接收的子状态之间的第二显示转换触发。从 State1 的外部转换将通过指向 State1 外然后弯曲回它的箭头表示(上层建筑规范的图 15.48)。

UML 上层结构 2.4.1 的第 15.3.15 节TransitionKind给出了内部、局部和外部转换的语义:

kind=local 意味着转换,如果被触发,将不会退出复合(源)状态,但它会应用于复合状态内的任何状态,并且这些将被退出和进入。

由于子状态之间的本地或转换都不会导致 State1 退出,图中显示了类似的状态机 - 不同之处在于从 State1.3 开始,第一台机器将重新进入 State1.3(导致其退出和进入行为调用),而第二个在触发时不会从 State1.3 执行任何操作。