我想知道我是否正確理解了ShallowHistory語法。UML狀態機淺歷史
這是使用它的正確方法嗎?
在UML規範。據說它可以用來代替最初的僞狀態。我猜在這種情況下,將無法重置State1的內存,而在這種情況下,State0的轉換總是從State1.1開始。我對嗎?
我想知道我是否正確理解了ShallowHistory語法。UML狀態機淺歷史
這是使用它的正確方法嗎?
在UML規範。據說它可以用來代替最初的僞狀態。我猜在這種情況下,將無法重置State1的內存,而在這種情況下,State0的轉換總是從State1.1開始。我對嗎?
您的解釋看起來正確。從上部結構:
在進入複合狀態,下面的情況下是有區別的:
•缺省條目:圖形上,這是通過在複合狀態的外邊緣終止呼入過渡指示。在這種情況下,應用默認的條目規則(請參閱語義變化點(默認條目規則))。
而且
語義變化點(默認項規則)
如果過渡終止於一個封閉的狀態,封閉的區域不具有初始僞狀態,這種情況的解釋是一個語義變化點。 在一些解釋中,這被認爲是不合格的模型。也就是說,在這些情況下,初始假狀態是強制性的。另一種解釋允許這種情況,這意味着,當這種轉換被採用時,狀態機保持在複合狀態,而不進入任何區域或它們的子狀態。
最後:
淺歷史條目:如果轉換一個淺歷史僞狀態終止,活動子狀態變得之前與這個詞條最近最活躍的子狀態,除非最近的活動子狀態最終狀態還是第一次進入此狀態。在後兩種情況下,輸入默認的歷史記錄狀態。這是作爲源自歷史假設的過渡目標的子狀態。 (如果沒有指定這種轉換,則情況不明確,處理未定義。)如果由歷史確定的活動子狀態是複合狀態,則它會繼續執行其默認條目 。
要注意,從最後一段,似乎你應該始終有從H
僞狀態的轉換,至少要由initial
指出僞狀態相同的狀態,否則,你可能有一個不明確的機器。
我沒有找到它說你可以使用H *代替初始僞狀態的地方。你在哪裏看到這個?