ステートマシン図とは?すてーとましんず
ステートマシン図とは、1つのオブジェクトが取りうる状態と、どの事象が起きるとどの状態へ移るかを表すUMLの図。状態を角丸の四角で描き、遷移の矢印に「事象[条件]/動作」を添える。同じ操作でも今どの状態にいるかで受け付けるか拒否するかが変わる対象を、抜け漏れなく整理するために使う。
最終更新:2026-10-09
この語が出る過去問を解く →背景
「発送済みになってからは取り消せない」といった決まりを文章で列挙すると、状態と操作の組み合わせが増えるにつれて必ず書き漏れが出る。状態を軸に並べ替えると、定義していない組み合わせが図の上で空白として見える。組込み機器や申込みの進行管理のように、状態によって振る舞いが変わる対象に効く。
具体例
宅配便の荷物は「受付」→(集荷)→「輸送中」→(配達店到着)→「配達中」→(受領)→「配達完了」と移る。ヤマト運輸などの追跡画面で見えるのがこの状態で、「配達完了からは配達中へ戻らない」といった制約も図の上で表現できる。
試験での引っ掛け
表すのは処理の順序ではなく対象の状態である。手順の流れを描くのはアクティビティ図で、役割が違う。状態遷移表は同じ内容を表形式にしたもので、定義されていない状態と事象の組み合わせを機械的に見つけやすいという利点がある。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成28年度 秋期 基本情報技術者試験 午前 問3(IPA)
300円の商品を販売する自動販売機の状態遷移図はどれか。ここで,入力と出力の関係を“入力/出力”で表し,入力の“a”は“100円硬貨”を,“b”は“100円硬貨…
正解:S0(初期状態,二重丸)→a/0→S1→a/0→S2、S2からa/1でS0へ戻る。各状態でb/0の自己ループあり。
要点:状態遷移図は入力回数と出力タイミングの対応で判定する
100円硬貨(a)を3枚受け取った時点で初めて商品を販売する必要がある。したがってS0→S1→S2の2枚目までは出力0で、3枚目のaで出力1を出し初期状態へ戻る図が正しい。また100円硬貨以外(b)はすぐ返却するだけで状態は変わらないので、各状態でb/0の自己ループになる。
出典:平成28年度 春期 基本情報技術者試験 午前 問2(IPA)
出典:平成28年度 春期 基本情報技術者試験 午前 問48(IPA)解説で登場
システム結合テストにおける状態遷移テストに関する記述として,適切なものはどれか。
正解:設計されたイベントと内部状態の組合せどおりにシステムが動作することを確認する手法
要点:状態遷移テストはイベントと内部状態の組合せを検証する
状態遷移テストは、システムが内部にもつ状態と、そこへ入力されるイベントの組合せに着目する手法である。状態遷移図や状態遷移表をもとに、設計どおりの遷移が起きるか、想定外の遷移が起きないかを確認する。内部状態をもつシステムに適した手法であることが要点になる。
出典:平成30年度 春期 基本情報技術者試験 午前 問4(IPA)
入力記号、出力記号の集合が{0, 1}であり、状態遷移図で示されるオートマトンがある。0011001110を入力記号とした場合の出力記号はどれか。ここで、S1は…
正解:0001000110
要点:オートマトンは入力を1文字ずつ追い、辺の出力側を順に並べる
状態遷移図に従って入力を1文字ずつ処理し、遷移のラベルの出力側を並べればよい。初期状態S1から 0,0 は自己ループで出力0が2個。次の1でS1→S2(出力0)、続く1でS2→S3(出力1)。次の0でS3→S1(出力0)、0で自己ループ(出力0)、1でS1→S2(出力0)、1でS2→S3(出力1)、1はS3の自己ループ(出力1)、最後の0でS3→S1(出力0)。並べると 0001000110 となる。
出典:令和4年度 公開問題 基本情報技術者試験 科目A 問4(IPA)
入力記号、出力記号の集合が{0, 1}であり、状態遷移図で示されるオートマトンがある。0011001110を入力記号とした場合の出力記号はどれか。ここで、入力記…
正解:0001000110
要点:オートマトンは初期状態から遷移を順にたどり出力を並べる
初期状態から入力を1文字ずつ読み、遷移のラベルに従って出力を並べる。出力が1になるのは、1が2つ以上続いて第3の状態へ入った後だけで、それ以外の遷移はすべて0を出力する。入力を順にたどると、2組目の1の位置と、その後に1が3つ続く箇所の2文字目以降で1が現れ、出力は0001000110となる。
出典・参考
公式シラバスの1 基礎理論 > 5. その他の言語 > (2) その他の言語に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。