UML状态图表:完成转换

时间:2016-02-28 17:50:29

标签: uml state-machine statechart boost-statechart

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

  1. 状态的完成在事件队列的开头插入“完成事件”,因此只执行“完成转换”,然后显式步骤状态机,或者
  2. 状态的完成立即触发“完成转换”(以及可能后续的“完成转换”),因此状态机可以为每个显式步进执行多个步骤。
  3. 两种情况都表明,一个国家无人看守的“完成过渡”有效地使任何其他定义的过渡(无论是事件触发还是保护)都是多余的。

    我是否正确理解了这一点?

1 个答案:

答案 0 :(得分:2)

答案更接近#2('状态的完成会立即触发"完成转换"')然后你提到"每个显式的多个步骤步进&#34。我不知道你的意思。

UML 2.5规范在14.2.38.3节中说:

  

一种特殊的Transition是一个完成Transition,它有一个隐式触发器。启用此触发器的事件   被称为完成事件,它表示与完成的源状态相关联的所有行为   过渡已完成执行。如果是简单状态,则在关联条目时生成完成事件   和doActivity行为已完成执行。如果未定义此类行为,则会生成完成事件   进入国家后。

该规范继续描述如何为复合或子机器状态生成完成事件。既然您在询问这个更简单的案例,我就会跳过它。

规范还说"完成事件具有调度优先权。也就是说,它们会在任何未决的事件发生之前发送 事件池。"因此,不会调度其他已定义的转换。