状态机离开迁移守卫均为假时的去向及UML状态图有效性咨询
UML状态机守卫条件全不满足时的行为判断
- 当状态机某状态的所有离开迁移守卫条件均为假时,状态机不会触发任何迁移,将持续停留在当前状态。
- 针对你提到的考题场景:初始x=9,离开迁移的守卫分别为
x>9和x>=10,由于守卫评估先于迁移动作(+1)执行,首次评估时两个守卫都不成立,此时状态机不会执行任何迁移,也不会执行+1操作,会保持在当前状态。 - 你的“状态图无效”判断不正确。UML状态机允许存在这种场景——只要没有违反状态机的语法规则(比如无冲突的迁移定义、合法的守卫表达式等),即使某些情况下没有迁移触发,状态图依然是有效的。这种情况属于状态机的合法行为,只是在当前输入下没有迁移发生。
内容的提问来源于stack exchange,提问作者Dirk Fraanje
相关产品推荐
相关产品推荐

