最終更新日:2026年7月16日
fe fe-technology system-development
まず結論
状態遷移図とは、ある状態が、イベントをきっかけに別の状態へ変わる様子を表す図です。
基本情報技術者試験では、次の3語を見つけたら状態遷移図を疑います。
- 状態
- イベント
- 遷移
特に、現在の状態によって次の動きが変わることが判断のポイントです。
直感的な説明
状態遷移図は、システムの「今いる場所」と「次へ進むきっかけ」を表した地図のようなものです。
例えば、信号機なら次のように状態が変わります。
青 --一定時間が経過--> 黄
黄 --一定時間が経過--> 赤
赤 --一定時間が経過--> 青
ここでは、青・黄・赤が状態、時間の経過がイベント、青から黄へ変わることが遷移です。
単に処理が上から下へ進むのではなく、今どの状態にいるかによって次の動きが決まります。
定義・仕組み
状態遷移図では、主に次の要素を見ます。
| 要素 | 意味 | 例 |
|---|---|---|
| 状態 | 対象が現在どのような状況にあるか | 待機中、処理中、停止中 |
| イベント | 状態が変わるきっかけ | ボタン押下、時間経過、エラー発生 |
| 遷移 | ある状態から別の状態へ移ること | 待機中から処理中へ移る |
| 初期状態 | 最初にいる状態 | 起動直後の待機状態 |
| 終了状態 | 処理が終了した状態 | 完了、停止 |
基本形は次のように読めます。
状態A --イベント--> 状態B
例えば、注文処理なら次のように整理できます。
未注文 --注文確定--> 受付済み
受付済み --発送--> 発送済み
受付済み --取消し--> 取消済み
重要なのは、矢印が単なる処理順ではなく、イベントによる状態の変化を表していることです。
このテーマは、基本情報技術者試験の「システム開発技術」やUMLに関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。
科目Aでどう出る?
科目Aでは、図の用途や、他のUML図との違いを問われます。
まず、次の判断基準を押さえます。
| 問題文のキーワード | 選びやすい図 |
|---|---|
| 状態・イベント・遷移 | 状態遷移図 |
| メッセージを送る順番 | シーケンス図 |
| オブジェクト同士のつながり | コミュニケーション図 |
| 時間に伴う状態や値の変化 | タイミング図 |
| 処理手順・分岐・繰返し | フローチャート、アクティビティ図 |
状態遷移図を選ぶポイントは、次の3つです。
1. 複数の状態がある
2. イベントで状態が変わる
3. 現在の状態によって次の動作が変わる
例えば、「ボタンを押す」「タイムアウトする」「エラーが発生する」といったきっかけで、待機中・処理中・停止中などが切り替わる場合に向いています。
一方、オブジェクト間のメッセージ交換を表したい場合は、シーケンス図とコミュニケーション図の違いを使います。
どんな場面で使う?
状態遷移図は、現在の状態によって振る舞いが変わる対象を整理するときに使います。
代表例は次のとおりです。
- 自動販売機の待機・入金・商品選択・払出し
- ログイン前・ログイン中・ロック中の認証状態
- 注文受付・発送・取消し・完了
- 通信機器の接続中・切断中・再接続中
- 設備の停止・運転・異常・復旧
- 画面やメニューの遷移
例えば設備制御では、同じスタート操作でも、停止中なら運転を開始し、異常中なら開始できないことがあります。
このように、同じイベントでも現在の状態によって結果が変わる対象と相性がよい図です。
よくある誤解・混同
処理の順番を表す図である
状態遷移図の中心は処理手順ではなく、状態の変化です。
フローチャート
→ 何をどの順番で処理するか
状態遷移図
→ どの状態から、何をきっかけに、どの状態へ移るか
シーケンス図と同じである
シーケンス図は、複数のオブジェクト間でメッセージが送られる順番を表します。
状態遷移図は、基本的に一つの対象に注目して、その状態の変化を表します。
タイミング図と同じである
どちらも状態を扱いますが、注目点が異なります。
- 状態遷移図:イベントをきっかけとした状態の移り変わり
- タイミング図:時間軸上での状態や値の変化
「ある状態が何秒続くか」「最短時間・最長時間」といった時間的な制約は、タイミング図側の特徴です。
状態とイベントを逆に読む
「待機中」は状態、「ボタンを押す」はイベントです。
待機中 --開始ボタン押下--> 運転中
名詞的な状況が状態、状態を変える出来事や操作がイベント、と考えると見分けやすくなります。
確認問題(基本情報技術者試験対策)
状態遷移図で表す内容として、最も適切なものはどれか。
- ア. 複数のオブジェクト間で送受信されるメッセージの時間順
- イ. システムの状態と、イベントによって別の状態へ移る関係
- ウ. データが入力元から処理を経て出力先へ流れる関係
- エ. プログラムの各処理に必要な実行時間の合計
▶ クリックして答えと解説を見る(ここを開く)
正解:イ
- アはシーケンス図の説明です。
- イは状態遷移図の説明です。
- ウはデータフロー図に近い説明です。
- エは状態遷移図が表す中心的な内容ではありません。
まとめ(試験直前用)
- 状態遷移図は、状態がイベントによって別の状態へ移る様子を表す
- 「状態・イベント・遷移」が判断キーワード
- 現在の状態によって次の動作が変わる対象に向く
- メッセージの順番はシーケンス図、時間軸上の変化はタイミング図
- フローチャートは処理手順、状態遷移図は状態変化を見る