単一メッセージの run-to-completion 処理

IBM® Rational® Rhapsody® では、外部アクターからステートチャートに振り向けられた単一メッセージに、ステートチャートが反応するものと仮定しています。外部アクターは、システム・イベント・キューまたは別のオブジェクトです。

ステートチャートによるメッセージ処理は、複数のステップに分割されます。各ステップにおいて、処理のためにメッセージがステートチャートにディスパッチされます。

メッセージがディスパッチされると、メッセージによってトリガーされた遷移が有効になります。各直交コンポーネントは、メッセージ・ディスパッチの結果として、1 つだけの遷移を始動できます。相反する遷移は、同じステップでは始動しません。

選択された遷移の始動の順序は定義されていません。この順序は、ステートチャートでは明示的に定義されていない独自の仕組みに基づいています。

各コンポーネントは、メッセージの結果として 1 つの遷移を実行できます。すべてのコンポーネントが遷移の実行を完了すると、メッセージは消費されたことになり、そのステップは終了します。

メッセージに応答した後で、ステートチャートが、状態の一部が外向きのアクティブなヌル遷移を持つ状態構成 (一時的構成) に到達する場合があります。 この場合、ステートチャートが安定した状態構成 (遷移がもうアクティブでない) に到達するまで、追加の手順を実行する必要があります。 ヌル遷移は、ヌル・イベントによってトリガーされます。このヌル・イベントは、ステートチャートが一時的構成に到達した場合に必ずステートチャートにディスパッチされるイベントです。ヌル・イベントは、一連のステップにおいて、安定した構成に到達するまでディスパッチされます。安定した構成に到達すると、メッセージに対する反応は完了し、制御はディスパッチャーに戻り、新しいメッセージをディスパッチできるようになります。

注: 理論上は、ステートチャートが決して安定した構成に達しない可能性もあります。現実的な解決策は、ステートチャートが安定した構成に達するまでの最大ステップ数に制約を設けることです。現在の実装では、ステップが最大数に達すると、メッセージ処理が完了されたかのように扱われます。

フィードバック