ステートチャート図(state chart diagram)
1つのものが、どんな出来事でどの状態に移るかを描くUMLの図。状態機械図、状態遷移図とも呼ばれる。
もう少し詳しい説明
ステートチャート図は、1つのものが、どんな出来事でどの状態に移るかを描く図です。UML(統一モデリング言語。設計を図で表すための記法)にある図の1つで、状態機械図とも呼ばれます。UML以外でも使う一般的な呼び名は状態遷移図です。
同じUMLでも、ユースケース図が「システム全体で何ができるか」を見るのに対して、こちらはものを1つ選んで、その一生を追います。
注文1件を例にすると、こうなります。
部品
4つとも上の図の中にあります。
| 部品 | 形 | 上の図では |
|---|---|---|
| 状態 | 角丸の四角 | 「受付済」「出荷待ち」「出荷済」の3つ |
| 遷移 | 状態から状態への矢印 | 「入金された」などが書かれた矢印 |
| 開始 | 黒丸 | いちばん左の、塗りつぶした丸 |
| 終了 | 黒丸を丸で囲んだもの | いちばん右の、二重になった丸 |
矢印には、何が起きたとき移るかを書きます。「入金された」「出荷された」のような出来事です。条件を付けるときは [在庫あり] のように角かっこで書きます。
分かれ道があることも、上の図で確かめてください。 受付済からは2本の矢印が出ています。入金されれば出荷待ちへ進み、取り消されれば出荷待ちを通らずにおしまいへ行きます。どちらへ進むかは、何が起きたかで決まります。
状態遷移図の問題では、ある状態から出ている矢印を全部見つけることが最初の手順になります。1本だと思い込むと、分かれ道のほうの答えを落とします。
状態と、出来事を分ける
取り違えやすいのは、四角に書くのは状態で、動作ではないという点です。
- ○ 状態 …「受付済」「出荷待ち」「出荷済」
- × 動作 …「出荷する」「入金を確認する」
動作は矢印の側に書きます。四角に動詞を書き始めたら、それはアクティビティ図(作業の流れを描く図)のほうに近づいています。
オートマトンで出てくる状態遷移の考え方と同じものです。あちらは理論、こちらは設計の記法、という違いだけになります。
書く場所が3つに分かれている
状態・出来事・条件は、書く場所がそれぞれ決まっています。ここが混ざると、図が読めなくなります。
| 何を | どこに書くか | 例 |
|---|---|---|
| 状態 | 角丸の四角の中 | 受付済 |
| 出来事(きっかけ) | 矢印に添える | 入金された |
| 条件 | 矢印の角かっこの中 | [在庫あり] |
「入金された[在庫あり]」のように、出来事と条件を並べて書くこともあります。出来事が起きて、なおかつ条件を満たしたときだけ移る、という意味です。
試験ではこう出る
科目A(旧・午前)では、与えられた図を読んで、ある出来事のあとどの状態になるかを答える形が出ます。矢印に付いた条件(角かっこ)を見落とさないようにしてください。
UMLの図の名前と、何を表すかの組合せも繰り返し出ます。状態の移り変わりを表すのがこの図で、外から見た機能はユースケース図、ものの構造はクラス図、時間の順はシーケンス図です。
四角に書くのは状態であって動作ではない、という点を突いた選択肢も出ます。四角に動詞が並んでいたら、まず疑ってください。
応用情報では、業務の説明文から足りない遷移を指摘する形が出ます。どの状態からも出ていけない状態(行き止まり)が残っていないか、という見方が使えます。
関連する用語
- ユースケース図
- 同じUMLの図。こちらは「外から見て何ができるか」
- オートマトン
- 状態と、入力による移り変わり。考え方が同じで、あちらは理論の側
- プロセスの状態(実行可能状態・実行状態・待ち状態)
- 状態と移り変わりで説明する例。OSの話だが、読み方は同じ
- オブジェクト指向
- UMLはオブジェクト指向の設計を描くための記法として作られた
ミニクイズ
UMLのステートチャート図で、角丸の四角(状態)の中に書く内容として、適切なものはどれか。
正解は 2番:「受付済」「出荷待ち」のような、そのものが置かれている状態
四角の中に書くのは状態です。「受付済」「出荷待ち」のように、そのものが今どうなっているかを表します。動作を書くのは誤りで、四角に動詞が並び始めたら、作業の流れを描くアクティビティ図に近づいています。きっかけになった出来事は矢印の側に書き、移ってよいかどうかの条件は角かっこで矢印に添えます。状態・出来事・条件の3つは、書く場所がそれぞれ決まっています。
この分野をまとめて解く → システム開発とユーザーインタフェースのミニテスト(全40問)
最終更新:2026-11-08