2011-04-19 62 views
0

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

来说明:

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

最后一行就是我有麻烦。我需要转换到初始状态,如果A从行编号1中的过渡位置到达,并且我需要过渡到状态B,如果A是从行编号3的过渡位置到达。

我该如何建模更好?

+0

谢谢我理解你的答案在理论上,但有一个后续问题 – user716129 2011-04-19 23:39:34

回答

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 

如果你想要更强大的东西,尝试用哈雷尔/ UML状态图(有“超级大国,正交区域和活动作为国家的一部分“[1])。你可能在SCXML看看作为WEEL [2]。我不知道任何人虽然。

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

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

+0

谢谢我理解你的答案在理论上,但有一个后续问题 – user716129 2011-04-19 23:39:52

+0

http://stackoverflow.com/questions/5724073/need-help-with-state-modeling – user716129 2011-04-20 00:07:55