在UML状态机中,如果输入子状态的最终状态,复合状态的历史记录究竟发生了什么?
考虑下面显示的状态机 . 在触发序列T1-T2-T3-T4之后,它将以最终状态结束 . 通过进入最终状态,State21区域的历史被清除,并且由于该区域也由此完成,因此将执行到State1的完成转换 . 现在,当启用触发器T5时,状态机进入深度历史状态 . 我想在这种情况下,深度历史状态代表State21,这意味着状态机进入State21然后执行从State21的初始伪状态到状态211的转换 . 它是否正确?
我更喜欢上面描述的行为,但我可以看到一个替代方案,当输入State21中的最终状态时,State2的历史也会被清除 . 在这种情况下,状态机执行从State2的初始伪状态到状态22的转换 . 所以你怎么看?
1 回答
从我对深刻的历史描述的理解
你的第一个行为描述似乎是好的 . 通过触发T1,T2,T3,T4和T5转换,您将返回State21条目,即State211 .