最終更新日:2026年8月5日
fe fe-technology system-development
まず結論
状態遷移図とは、ある状態が、イベントをきっかけに別の状態へ変わる様子を表す図です。
基本情報技術者試験では、次の3語を見つけたら状態遷移図を疑います。
- 状態
- イベント
- 遷移
特に、現在の状態によって次の動きが変わることが判断のポイントです。
現在の状態
+
入力やイベント
→
次の状態が決まる
単なる集計や料金計算より、センサー入力やボタン操作によって運転状態が切り替わる制御システムに向いています。
直感的な説明
状態遷移図は、システムの「今いる場所」と「次へ進むきっかけ」を表した地図のようなものです。
例えば、信号機なら次のように状態が変わります。
青 --一定時間が経過--> 黄
黄 --一定時間が経過--> 赤
赤 --一定時間が経過--> 青
ここでは、青・黄・赤が状態、時間の経過がイベント、青から黄へ変わることが遷移です。
単に処理が上から下へ進むのではなく、今どの状態にいるかによって次の動きが決まります。
例えば温度制御では、同じ温度情報でも現在の運転状態によって処理が変わります。
停止中
+ 温度が設定値を下回る
→ 加温中
加温中
+ 温度が設定値に達する
→ 停止中
このようなシステムを整理するのに、状態遷移図が向いています。
定義・仕組み
状態遷移図では、主に次の要素を見ます。
| 要素 | 意味 | 例 |
|---|---|---|
| 状態 | 対象が現在どのような状況にあるか | 待機中、処理中、停止中 |
| イベント | 状態が変わるきっかけ | ボタン押下、時間経過、エラー発生 |
| 遷移 | ある状態から別の状態へ移ること | 待機中から処理中へ移る |
| 動作 | 遷移時や状態中に実行する処理 | ヒーターをONにする |
| 初期状態 | 最初にいる状態 | 起動直後の待機状態 |
| 終了状態 | 処理が終了した状態 | 完了、停止 |
基本形は次のように読めます。
状態A --イベント--> 状態B
例えば、注文処理なら次のように整理できます。
未注文 --注文確定--> 受付済み
受付済み --発送--> 発送済み
受付済み --取消し--> 取消済み
重要なのは、矢印が単なる処理順ではなく、イベントによる状態の変化を表していることです。
状態と動作の違い
状態は、ある期間続く状況です。
動作は、その状態へ移るときや、その状態にいる間に実行する処理です。
状態:加温中
動作:ヒーターをONにする
状態と処理を同じものとして考えないようにします。
自己遷移
イベントが起きても、同じ状態にとどまることがあります。
入力待ち --無効な入力--> 入力待ち
このように同じ状態へ戻る遷移を、自己遷移と考えます。
このテーマは、基本情報技術者試験の「システム開発技術」やUMLに関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。
科目Aでどう出る?
科目Aでは、状態遷移図を使うのに適したシステムや、他の図との違いを問われます。
まず、次の3点を確認します。
1. 複数の状態がある
2. イベントで状態が変わる
3. 現在の状態によって次の動作が変わる
状態遷移図が適するシステム
次のようなシステムは、状態遷移図と相性がよいです。
- センサー情報によって運転状態を切り替える制御システム
- 待機・処理中・完了・異常などの状態を持つシステム
- ボタン操作や時間経過で状態が変わるシステム
- 通信の接続中・切断中・再接続中を管理するシステム
例えば温室制御では、センサー値をきっかけに加温、冷却、停止などが切り替わります。
停止中 --温度低下--> 加温中
加温中 --設定温度到達--> 停止中
停止中 --温度上昇--> 冷却中
これは、状態遷移図で表すのに適した典型例です。
状態遷移図が中心ではないシステム
次のような処理では、状態遷移図が最適とは限りません。
| システム | 主な処理 | 向きやすい表現 |
|---|---|---|
| 在庫棚卸 | 月末在庫を集計する | 処理フロー、データベース設計 |
| 稼働状況レポート | 測定値を日次集計する | データフロー、帳票設計 |
| 水道料金計算 | 使用量から料金を求める | 決定表、フローチャート |
| 温室制御 | センサー値で運転状態を切り替える | 状態遷移図 |
「稼働状態を測定する」のように、問題文に状態という言葉があっても、状態間の遷移を設計するとは限りません。
状態を記録・集計する
≠
イベントによって状態が変化する
他の図との切り分け
| 問題文のキーワード | 選びやすい図 |
|---|---|
| 状態・イベント・遷移 | 状態遷移図 |
| メッセージを送る順番 | シーケンス図 |
| オブジェクト同士のつながり | コミュニケーション図 |
| 時間に伴う状態や値の変化 | タイミング図 |
| 処理手順・分岐・繰返し | フローチャート、アクティビティ図 |
| 条件と処理の組合せ | 決定表 |
| データの流れ | データフロー図 |
一方、オブジェクト間のメッセージ交換を表したい場合は、シーケンス図とコミュニケーション図の違いを使います。
試験中の判断手順
1. 複数の状態が書かれているか
2. 状態を変えるイベントがあるか
3. 前の状態によって次の処理が変わるか
4. 単なる集計・計算・帳票出力ではないか
特に覚えたい判断基準は次です。
状態を持つ
+
イベントで切り替わる
→
状態遷移図
状態が数値を表す問題
状態名が Q0、Q1 などの記号でも、各状態が金額、個数、回数などの数値に対応している場合があります。
例えば、10円単位で投入金額を記憶する自動販売機なら、次のように読み替えます。
Q0 → 0円
Q1 → 10円
Q2 → 20円
Q3 → 30円
Q4 → 40円
このタイプは、矢印をすべて追う前に、各状態が何を記憶しているかを確認します。
1. 状態と値の対応を整理する
2. 現在の状態が表す値を確認する
3. イベントによる増減を計算する
4. 次の状態や終了条件を判定する
例えば、現在が40円の状態で、70円以上になると終了状態へ移る場合を考えます。
40円 + 10円 = 50円 → 継続
40円 + 50円 = 90円 → 終了
40円 + 100円 = 140円 → 終了
判断の基本形は次です。
現在の状態が表す値
+
入力による変化
→
次の状態
「又は」を含む選択肢では、挙げられた入力がどちらも条件を満たすかを確認します。
一方だけが正しくても、その選択肢全体は正解になりません。
どんな場面で使う?
状態遷移図は、現在の状態によって振る舞いが変わる対象を整理するときに使います。
代表例は次のとおりです。
- 自動販売機の待機・入金・商品選択・払出し
- ログイン前・ログイン中・ロック中の認証状態
- 注文受付・発送・取消し・完了
- 通信機器の接続中・切断中・再接続中
- 設備の停止・運転・異常・復旧
- 画面やメニューの遷移
- 信号機やエレベーター
- 温度・湿度を使った環境制御
例えば設備制御では、同じスタート操作でも、停止中なら運転を開始し、異常中なら開始できないことがあります。
停止 --起動ボタン--> 運転中
運転中 --異常検知--> 異常停止
異常停止 --リセット--> 停止
このように、同じイベントでも現在の状態によって結果が変わる対象と相性がよい図です。
状態遷移図を作ると、次の点を確認しやすくなります。
- どのイベントで状態が変わるか
- 異常時にどの状態へ移るか
- 戻れない状態がないか
- 遷移条件に漏れがないか
- 禁止すべき遷移がないか
フローチャートとの違い
フローチャート
→ 何をどの順番で処理するか
状態遷移図
→ どの状態から、何をきっかけに、どの状態へ移るか
処理手順が中心ならフローチャート、状態変化が中心なら状態遷移図です。
決定表との違い
決定表は、複数の条件と実行する処理の組合せを整理します。
条件Aと条件Bの組合せ
→ 実行する処理
状態遷移図は、現在の状態とイベントから次の状態を決めます。
現在の状態とイベント
→ 次の状態
料金計算や割引条件の整理は決定表、運転モードの切替えは状態遷移図、と切り分けると分かりやすいです。
よくある誤解・混同
処理の順番を表す図である
状態遷移図の中心は処理手順ではなく、状態の変化です。
単純に上から下へ処理が進むだけなら、フローチャートの方が適しています。
「状態」という言葉があれば状態遷移図である
必ずしもそうではありません。
サーバの稼働状態を集計するシステムは、状態を測定していても、イベントによる状態遷移を設計するとは限りません。
センサーを使えば必ず状態遷移図である
センサー値を保存するだけなら、状態遷移図が中心とは限りません。
センサー値を記録するだけ
→ 状態遷移図でなくてもよい
センサー値で運転状態を切り替える
→ 状態遷移図が適する
シーケンス図と同じである
シーケンス図は、複数のオブジェクト間でメッセージが送られる順番を表します。
状態遷移図は、基本的に一つの対象に注目して、その状態の変化を表します。
タイミング図と同じである
どちらも状態を扱いますが、注目点が異なります。
- 状態遷移図:イベントをきっかけとした状態の移り変わり
- タイミング図:時間軸上での状態や値の変化
「ある状態が何秒続くか」「最短時間・最長時間」といった時間的な制約は、タイミング図側の特徴です。
状態とイベントを逆に読む
「待機中」は状態、「ボタンを押す」はイベントです。
待機中 --開始ボタン押下--> 運転中
名詞的な状況が状態、状態を変える出来事や操作がイベント、と考えると見分けやすくなります。
状態名を単なる番号として読む
Q0やQ1のような記号は、単なる順番ではなく、現在の金額や回数を表していることがあります。
状態名
→ その状態が記憶している値を確認する
矢印だけを見るのではなく、問題文の説明から状態と値の対応を整理します。
確認問題(基本情報技術者試験対策)
状態遷移図で表すのに最も適したシステムはどれか。
- ア. 月末に在庫数量と評価額を集計するシステム
- イ. 日次のサーバ稼働実績を帳票として出力するシステム
- ウ. 使用量と料金表から請求額を計算するシステム
- エ. センサー値に応じて加温・冷却・停止を切り替えるシステム
▶ クリックして答えと解説を見る(ここを開く)
正解:エ
センサー値というイベントによって、加温中・冷却中・停止中などの状態が切り替わるため、状態遷移図が適しています。
- アは集計処理が中心です。
- イは測定値の集計と帳票出力が中心です。
- ウは入力値に基づく計算処理が中心です。
まとめ(試験直前用)
- 状態遷移図は、状態がイベントによって別の状態へ移る様子を表す
- 「状態・イベント・遷移」が判断キーワード
- 現在の状態によって次の動作が変わる対象に向く
- 記号の状態は、金額・個数・回数などの値を表す場合がある
- 数値を持つ状態は「現在値+入力」で次の状態を判断する
- センサー制御、自動販売機、信号機、設備制御は代表例
- 「状態を測定する」だけでは状態遷移図とは限らない
- メッセージの順番はシーケンス図、時間軸上の変化はタイミング図
- フローチャートは処理手順、状態遷移図は状態変化を見る