9

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

这两个状态机是否相等?

具有本地转换的状态机

没有本地转换的状态机

4

1 回答 1

5

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

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

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

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

于 2013-02-03T10:32:22.157 回答