UML状态图:完成转换

UML状态图:完成转换,uml,state-machine,statechart,boost-statechart,Uml,State Machine,Statechart,Boost Statechart,在运行到完成模型的UML状态图的上下文中,“完成转换”是如何处理的 状态的完成在事件队列的开头插入一个“完成事件”,因此只有在状态机显式步进时才执行“完成转换”,或者 状态的完成立即触发“完成转换”(以及可能的后续“完成转换”),因此状态机可以为每个显式步骤执行多个步骤 这两种情况都表明,一个状态的无防护“完成转换”有效地使任何其他定义的转换(无论是事件触发的还是防护的)冗余 我的理解正确吗?答案更接近于#2(“状态的完成会立即触发“完成转换”),但您随后提到“每个显式步骤都有多个步骤”。我不知

在运行到完成模型的UML状态图的上下文中,“完成转换”是如何处理的

  • 状态的完成在事件队列的开头插入一个“完成事件”,因此只有在状态机显式步进时才执行“完成转换”,或者
  • 状态的完成立即触发“完成转换”(以及可能的后续“完成转换”),因此状态机可以为每个显式步骤执行多个步骤
  • 这两种情况都表明,一个状态的无防护“完成转换”有效地使任何其他定义的转换(无论是事件触发的还是防护的)冗余

    我的理解正确吗?

    答案更接近于#2(“状态的完成会立即触发“完成转换”),但您随后提到“每个显式步骤都有多个步骤”。我不知道您的意思

    第14.2.38.3节中的UML 2.5规范说明:

    一种特殊的转换是具有隐式触发器的完成转换。启用此触发器的事件 被称为完成事件,它表示与完成的源状态关联的所有行为 转换已完成执行。对于简单状态,当关联的条目 和doActivity行为已完成执行。如果未定义此类行为,则生成完成事件 在进入该国时

    规范继续描述如何为复合状态或子机状态生成完成事件。既然你问的是这个简单的案子,我就不提了

    该规范还说,“完成事件具有调度优先级。也就是说,它们在系统中任何未决事件发生之前被调度。” 因此,其他定义的转换不会被调度。