2011-04-19 63 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