单一消息的“运行到完成”处理

IBM® Rational® Rhapsody® 假定状态图将对某个外部参与者对状态图应用的单一消息作出反应。外部参与者可以是系统事件队列或另一对象。

状态图进行的消息处理分为多个步骤。在每个步骤中,都将一条消息分派到状态图以进行处理。

一旦分派消息,该消息就有可能启用由该消息触发的过渡。每个正交组件最多可以触发一个过渡作为消息分派结果。有冲突的过渡不会在同一个步骤中触发。

所选过渡的触发顺序未定义。此顺序基于未由状态图显式定义的任意遍历。

每个组件都可以执行一个过渡来作为此消息的结果。一旦所有组件执行该过渡完成,就称该消息已被耗用,并且该步骤将终止。

对消息作出反应后,状态图可能会到达某些状态具有活动传出空过渡的状态配置(瞬态配置)。在这种情况下,需要执行其他步骤直到状态图到达稳定状态配置(没有更多的活动过渡)为止。空过渡由空事件触发(每当遇到瞬态配置时,都会将这些事件分派到状态图)。将在一系列步骤中分派空事件,直到到达稳定配置为止。到达稳定配置后,对该消息所作的反应完成,控制权返回到分派器,并且可以分派新消息。

注: 在理论上,状态图有可能永远不会到达稳定配置。可行的解决方案是,对状态图到达稳定配置所允许的最大步骤数设置限制。在当前实现中,将到达最大步骤数视为消息处理完成。

反馈