如果我的状态 S1 有 2 个转换都由事件“A”触发,但其中一个有作为警卫x !=0
,另一个没有。当警卫有效()时,预期的行为是x ==1
什么?
- 不可预料的
- 采取带守卫的过渡
- 无防护过渡
我不记得读过关于不能在同一个事件中进行 2 次转换的文章。
如果我的状态 S1 有 2 个转换都由事件“A”触发,但其中一个有作为警卫x !=0
,另一个没有。当警卫有效()时,预期的行为是x ==1
什么?
我不记得读过关于不能在同一个事件中进行 2 次转换的文章。
如果x != 0
,例如x== 1
,则转换x == 0
未启用,另一个无人看守的转换是。另一个被解雇了。
如果x == 0
,则启用两个转换。这是所谓的“冲突转换”的情况(参见 UML Spec. 2.4.1 ., p. 575)。冲突解决通常相当复杂,请参阅 UML 规范。在您的特定情况下,两个转换都离开相同的状态,结果是不确定的:可以采用任何一个转换