基本情報技術者 2014年 春期 午前(科目A) 問48
問題文
問48 要求の分析・設計時に使用する状態遷移図の説明として、適切なものはどれか。
選択肢
ア:階層構造の形でプログラムの全体構造を記述する。
イ:時間の経過や制御信号の変化などの、状態を変化させるきっかけと、変化に伴って実行する動作を記述する。(正解)
ウ:システムの機能を概要から詳細へと段階的に記述する。
エ:処理間のデータの流れをデータフロー、処理、データストア及び外部の四つの記号で記述する。
🔒 解説は解答すると表示されます
状態遷移図【午前解説】
正解の理由
正解は イ です。状態遷移図は「ある状態から別の状態へ変化する条件(イベントや時間経過、制御信号など)と、その変化時に発生する動作(アクション)」を描く図です。選択肢イの説明はこの定義に当てはまり、状態・遷移・イベント・アクションの関係を明確に述べています。設計段階でオブジェクトやモジュールのライフサイクルや応答を表現するために用いられます。
解法ステップ
- 各選択肢のキーワードを抽出する(例:「状態を変化させるきっかけ」「データの流れ」「階層構造」)。
- 状態遷移図の定義を頭の中で確認する(イベント→遷移→アクション、状態の集合を表す図)。
- キーワードが定義と一致する選択肢を選ぶ(「時間の経過や制御信号」「実行する動作」が含まれるイが一致)。
- 他選択肢が別の図表(DFD、構造図、機能分解)を説明していないか確認して除外する。
選択肢別の誤答解説
- ア: 階層構造の形でプログラムの全体構造を記述する。
- 説明内容はモジュール構成図や構造チャート(階層図)に該当し、状態遷移図の説明ではありません。
- イ: 時間の経過や制御信号の変化などの、状態を変化させるきっかけと、変化に伴って実行する動作を記述する。
- 正解。状態遷移図の本質的な説明です。
- ウ: システムの機能を概要から詳細へと段階的に記述する。
- これはトップダウンの機能分解や機能階層図(機能分割)の説明で、振る舞い図ではありません。
- エ: 処理間のデータの流れをデータフロー、処理、データストア及び外部の四つの記号で記述する。
- これはデータフロー図(DFD)の説明であり、状態遷移図とは用途が異なります。
よくある誤解
- 状態遷移図は「処理の手順(フロー)」を示すものと誤解し、アクティビティ図やフローチャートと混同すること。
- 入力データの流れを示す図(データフロー図)と同一視してしまうこと。状態遷移図はデータの流れではなく状態変化を扱います。
- 「階層構造」と勘違いしてモジュール構成図や構造チャートの説明を当てはめるミス。状態遷移図は構造ではなく振る舞いを示します。
補足コラム
状態遷移図の典型的な用途は、ドアや電源スイッチなど明確な状態を持つ装置や、セッション管理や接続状態を扱う通信プロトコルなどの設計です。UMLでは「状態機械図(State Machine Diagram)」として表現され、遷移は「イベント [ガード] / アクション」の形式でラベル付けされます。簡単な例を挙げると:
- ドア:Closed --(openボタン)--> Open / 開くアクション
- Open --(closeボタン)--> Closed / 閉めるアクション
これにより「どのイベントで状態がどのように変わり、何を実行するか」が一目で分かります。
FAQ
Q1: 状態遷移図とアクティビティ図の違いは?
A1: 状態遷移図はオブジェクトやシステムの状態変化を中心に描く図で、イベントと状態の関係を表現します。アクティビティ図は処理の流れ(ワークフロー)や並行処理を表すのが主目的です。
A1: 状態遷移図はオブジェクトやシステムの状態変化を中心に描く図で、イベントと状態の関係を表現します。アクティビティ図は処理の流れ(ワークフロー)や並行処理を表すのが主目的です。
Q2: いつ状態遷移図を使うべきですか?
A2: システムや要素が明確な状態を持ち、イベントに応じて動作や応答が変わる場合に有効です(例:デバイス制御、プロトコル、UIのライフサイクル)。
A2: システムや要素が明確な状態を持ち、イベントに応じて動作や応答が変わる場合に有効です(例:デバイス制御、プロトコル、UIのライフサイクル)。
Q3: データフロー図と状態遷移図、どちらを先に作るべきですか?
A3: 目的によります。データの処理フローを設計するならDFD、オブジェクトの振る舞いを設計するなら状態遷移図を優先します。両方を組み合わせて整合性を取ることが重要です。
A3: 目的によります。データの処理フローを設計するならDFD、オブジェクトの振る舞いを設計するなら状態遷移図を優先します。両方を組み合わせて整合性を取ることが重要です。
関連キーワード: 状態遷移図、状態機械、UML、データフロー図、階層構造、イベント遷移、仕様書設計、分析設計

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

