过渡到以前的状态

时间:2011-04-19 22:53:02

标签: transitions states state-machine

我正在设计一个状态机,并且有一个特定的状态,我可以从两个不同的状态进入...我不知道如何回到以前的状态......或者我的模型是错误的?

说明:

   | state   | trigger  | nextstate
---------------------------------
1. | initial |   evtX   |    A
2. | initial |   evtY   |    B
3. | B       |   evtX   |    A
4. | A       |   evtZ   | ????

最后一行是我遇到麻烦的地方。我需要转换到初始状态,如果A从第1行的过渡点到达,我需要转换到状态B,如果A从第3行的转换到达。

我如何更好地建模?

1 个答案:

答案 0 :(得分:1)

事实上,你有两种不同的A状态:

   | state   | trigger  | nextstate
---------------------------------
1. | initial |   evtX   |    A1
2. | initial |   evtY   |    B
3. | B       |   evtX   |    A2
4. | A1      |   evtZ   | initial
4. | A2      |   evtZ   | B

如果你想要更强大的东西,可以试试Harel / UML状态图(它有'超级,正交区域和活动作为状态的一部分“[1])。你可能会看到SCXML作为weel [2]我不知道他们中的任何一个。

[1] http://en.wikipedia.org/wiki/Harel_statechart#Harel_statechart

[2] http://en.wikipedia.org/wiki/SCXML