トップ
トップ >  オブジェクト指向 >  UML >  ステートマシン図
ステートマシン図
概要
オブジェクトの状態遷移を表現するための図です。

表記法
要素表記説明
状態状態状態を表します。内部にさらに状態遷移を描くことができ、これをコンポジット状態と言います。
開始状態開始状態開始を表します。ステートマシン図1つに対して1つです。
終了状態終了状態終了を表します。
状態遷移状態遷移状態遷移を表します。書式は以下のとおりです。
トリガー[[ガード条件]]
履歴履歴コンポジット状態から抜け出て、再度入る場合に、前回抜け出た時点の状態からはじめます。履歴から伸びる矢印は、初回の状態遷移を表します。
深い履歴深い履歴同レベルおよびそのサブ状態を記憶します。
入場点入場点コンポジット状態の開始状態以外への入り口を表します。
退場点退場点コンポジット状態の開始状態以外からの出口を表します。
合成アイコン合成アイコンコンポジット状態において、サブ状態を省略する際に使用します。

解説
オブジェクトの状態に着目したダイアグラムです。 あるオブジェクトが複数の状態を取りうる場合、 どのトリガーによってどの状態に遷移するかを明確にできます。 なお、トリガーは以下のように、ガード条件をつけることができ、 条件による分岐を表現するのに使用します。 トリガートリガーのフォーマットです。 エフェクトはトリガー発動契機で実行される処理です。 トリガー

概要表記説明
状態遷移 状態遷移 トリガ1で開始から状態1に遷移します。
状態遷移 状態遷移 トリガ1で開始から状態2に遷移します。トリガ2で開始から状態3に遷移します。
自己遷移 自己遷移 同一の状態に再び入ることを自己遷移といいます。
ガード条件 ガード 同一トリガーでも条件により遷移が変わる場合はガード条件で使用します。 ガード条件1を満たしていると状態2に遷移し、ガード条件2を満たしていると状態3に遷移します。
コンポジット状態 例1 状態内のさらに状態を持つケースです。
合成アイコン 例2 合成アイコンで内部状態を省略します。
サブ状態 サブ状態 サブ状態です。
サブ状態 コンポジット状態 開始状態以外に入るケースでは入場点を使用し、終了状態以外から出るケースは退場点を使用します。
履歴 履歴 履歴です。最初にコンポジット状態に入る場合、履歴から引かれている状態3に入ります。 状態4の時に状態1に遷移すると、次の遷移先は状態4になります。
深い履歴 深い履歴 深い履歴です。

詳細
エフェクト
状態遷移時に行うべき動作を追記することができます。
例3
入場アクションその状態に入る時点で実行される動作です。
アクティビティ入場から出場まで継続される動作です。
出場アクションその状態から出る時点で実行される動作です。

トリガー
トリガーにはより詳細な書式が用意されています。
トリガー
エフェクトを記述することでイベント発生時の動作を表せます。

新旧対応(2.0と1.5)
1.5との相違点です。
項目2.01.5説明
ステートマシン図ステートマシン図ステートチャート図1.5では名称がステートチャート図になります。
トリガートリガーイベント1.5では名称がイベントになります。
エフェクトエフェクトアクション1.5では名称がアクションになります。
入場点入場点
入場点
スタブ
スタブ
1.5ではスタブとして縦線で示します。
退場点退場点
退場点
スタブ
スタブ
1.5ではスタブとして縦線で示します。
トップ >  オブジェクト指向 >  UML >  ステートマシン図