ステートチャート

ステートチャートは、オブジェクトのライフ・サイクルを、論理状態あるいは論理モードの観点で指定するもので、この論理状態、モードが外部刺激に対するオブジェクトの応答を基本的に決定します。 オブジェクトの状態は、問題の記述およびシーケンス図のオブジェクト・ライフラインの両方から導き出されます。

下図に、HomeHeatingSystem サンプルの Room のステートチャートを示します。

SomeoneEntersTheRoom シーケンス図の Room のライフラインから、 Room が、その occupancy 属性をポーリングして使用中かどうかを確認することがわかります。 使用中の場合は、居住者によってサーモスタットに希望の温度が設定されたときに、必要な暖房を Furnace に送ります。 Room が、Furnace から、作動開始されたというメッセージを受信すると Room は、Valve に開くように伝えるメッセージを送信します。部屋が十分暖かくなると、 RoomFurnace に発熱を停止するように伝え、Valve を閉じます。 最後に、Room は、Furnace から Furnace の作動停止を知らせる確認応答を受け取ります。

この一連のイベントから、Room には 4 つの領域の責務、すなわち、並行状態 があることがわかります。

領域 責務
mode 使用の有無に基づき作動温度を決定します。
heatMode 暖房の必要性を決定します。
FurnaceMode Furnace の状態をモニターします。
sampling 定期的に暖房と使用センサーをサンプリングします。

フィードバック