Uml 分层状态机(HSM)操作的执行顺序

Uml 分层状态机(HSM)操作的执行顺序,uml,diagram,state-machine,fsm,Uml,Diagram,State Machine,Fsm,事实上,我想要验证关于HSM的执行顺序。 下面这张照片上有真的吗 我想问题是关于图表中存在的独特转换 自转换 没有到s2的转换,因此当转换发生时不可能在s2中。转换是外部的,因此s1ExitAction然后T1TransAction然后s1entreaction 假设有一个额外的初始伪状态和从它到s2的转换,那么执行就是您指示的执行 如果我们处于s2,因为隐藏的转换不是来自隐藏的初始伪状态,那么执行是s2ExitAction,然后是s1ExitAction,然后是T1TransAction,然后

事实上,我想要验证关于HSM的执行顺序。 下面这张照片上有真的吗


我想问题是关于图表中存在的独特转换

自转换

没有到s2的转换,因此当转换发生时不可能在s2中。转换是外部的,因此s1ExitAction然后T1TransAction然后s1entreaction

假设有一个额外的初始伪状态和从它到s2的转换,那么执行就是您指示的执行

如果我们处于s2,因为隐藏的转换不是来自隐藏的初始伪状态,那么执行是s2ExitAction,然后是s1ExitAction,然后是T1TransAction,然后是s1EnterAction

外部转换A

假设转换至少发生第二次,则执行是您指示的执行,否则在s1中发生转换,执行是s1ExitAction,然后是t1TransAction,然后是s1EnterAction,然后是s2EnterAction

本地转换A

假设至少第二次发生转换,或者由于隐藏转换,我们处于s2,则执行是您指示的执行,否则在s1中发生转换,执行是t1TransAction,然后是s2EnterAction

外部转换B

没有到s2的转换,因此不可能在s2中,也不可能进行转换

假设有一个额外的初始伪状态和从它到s2的转换,那么执行就是您指示的执行

如果我们处于s2,因为隐藏的转换不是来自隐藏的初始伪状态,那么执行是s2ExitAction,然后是s1ExitAction,然后是t1TransAction,然后是s1EnterAction

本地转换B

没有到s2的转换,因此不可能在s2中,也不可能进行转换

假设有一个额外的初始伪状态和一个从它到s2的转换,或者一个允许在s2中的隐藏转换,那么执行就是您指定的执行

内部转换

没有到s2的转换,因此当转换发生时不可能在s2中,那么执行是t1TransAction

假设有一个额外的初始伪状态和从它到s2的转换,那么执行就是您指示的执行


如果我们处于s2,因为隐藏的转换不是从隐藏的初始伪状态开始的,那么执行是s2ExitAction,然后是t1TransAction

在失去分数之前进行快速家庭作业检查?谢谢Bruno。正如您所说,黄色状态(s2)是活动状态。另一个问题;因为超级状态中只有一个子状态,所以需要init pseudo state?@kaernk我在标准中没有看到,如果只有一个子状态,那么就有一个隐式的初始pseudo state和到该状态的转换。注意:在一些图中,假设当前状态是s2,因为隐藏的转换不是从初始伪状态开始的。执行与您所说的不同,因为没有理由进入s2,所以关联的进入操作不存在done@kaernk为了清楚起见,我编辑了我的答案,添加了当前状态为s2但不是因为隐藏的初始伪状态和到它的隐藏转换,但另一个隐藏转换