戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2013年 春期 午前(科目A)46


問題文

設計するときに、状態遷移図を用いることが最も適切なシステムはどれか。

選択肢

月末及び決算時の棚卸資産を集計処理する在庫棚卸システム
システム資源の日次の稼働状況を、レポートとして出力するシステム資源稼働状況報告システム
水道の検針データを入力として、料金を計算する水道料金計算システム
設置したセンサの情報から、温室内の環境を最適に保つ温室制御システム(正解)

🔒 解説は解答すると表示されます

状態遷移図による制御設計【午前解説】

正解の理由

温室制御システムはセンサ入力(温度・湿度・光量など)やタイマ、手動指示、異常検知に応じて「運転モード(状態)」を切り替えます。各状態での振る舞いと、どのイベントでどの状態へ遷移するかを明確に整理する必要があります。状態遷移図(ステートマシン図)は
  • 状態の一覧化
  • イベントと遷移条件の明示
  • 遷移時のアクションやガード条件の記述 に適しており、安全性やフェイルセーフ設計を文書化しやすいため、温室制御のような制御系に最適です。

解法ステップ

  1. 問題文から「イベント(入力)」「状態」「遷移」の存在を探す。
  2. イベントでモードが変わるか(例:閾値を越えたら冷却に移る)を確認する。
  3. 定常的・一括処理(バッチ)か、継続監視・制御かを判定する。
  4. 継続監視・制御であれば状態遷移図が適切と判断する。
  5. 各選択肢をこの基準で簡潔に当てはめ、最も状態遷移を必要とするものを選ぶ。

選択肢別の誤答解説

  • ア: 月末・決算の棚卸集計システム
    • 扱うのは定期バッチ処理であり、状態(モード)より処理フローや集計ロジックが重要です。状態遷移図は過剰設計になります。
  • イ: システム資源の日次稼働状況レポート出力システム
    • 日次で定期実行するレポート作成はスケジュール駆動のバッチ処理で、状態遷移図よりワークフローやスケジューリング設計が中心です。
  • ウ: 水道検針データから料金を計算するシステム
    • 入力データに基づく計算と請求ロジックが主で、状態遷移というより算法・バッチ処理/トランザクション設計が重要です。
  • エ: 設置したセンサの情報から、温室内の環境を最適に保つ温室制御システム
    • 正解。センサイベントや閾値で運転モードが頻繁に変わり、状態と遷移を明確化するため状態遷移図がもっとも適切です。

よくある誤解

  • 状態遷移図はすべてのシステムに有効と思い込む誤解:単純なバッチ計算や大量データの集計処理では冗長になりがちです。
  • 状態遷移図=細かなアルゴリズム設計と混同する誤解:遷移図は動作モードと遷移を表現するツールで、計算式や集計ロジックは別途設計すべきです。
  • シーケンス図やフローチャートと混同する誤解:一時的な処理流れはシーケンス図、データ処理はフローチャートやDFDの方が分かりやすい場合があります。

補足コラム

状態遷移図(UMLステートマシン図)は組み込み制御やリアルタイム制御で頻繁に使われます。実装時は以下の点に注意すると良いです。
  • ヒステリシス(オン/オフの閾値差)を遷移条件として明示することでチラつきを防ぐ。
  • 優先度のあるイベント(安全停止や手動優先)をガード条件で管理する。
  • 並列状態(例:温度制御と灌水制御が独立)を「コンポジットステート/並行領域」で表現すると設計が整理される。
簡単な実装例(Python):
class GreenhouseController:
    def __init__(self):
        self.state = 'IDLE'
    def update(self, temp, humidity):
        if self.state == 'IDLE':
            if temp > 28: self.state = 'COOLING'
            elif temp < 18: self.state = 'HEATING'
        elif self.state == 'COOLING':
            if temp <= 26: self.state = 'IDLE'  # ヒステリシス
        elif self.state == 'HEATING':
            if temp >= 20: self.state = 'IDLE'
        # 各状態での出力処理は別関数で実行

FAQ

Q1: 状態遷移図とフローチャートはどちらを使うべきですか?
A1: 状態遷移図は「状態とイベントによる遷移」を表現するのに適し、フローチャートは「逐次処理やデータ処理の流れ」を示すのに適します。用途で使い分けます。
Q2: 温室制御でも単純な閾値チェックしかない場合、状態遷移図は必要ですか?
A2: 単純なら必要性は低いですが、運転履歴、安全停止、手動介入、ヒステリシスなど要素が増えると状態図が有益になります。
Q3: 状態遷移図だけで設計が完結しますか?
A3: いいえ。状態遷移図は振る舞い設計の一部です。センサ仕様、制御アルゴリズム、時系列要件、例外処理も設計する必要があります。

関連キーワード: 状態遷移図、状態機械、UMLステートマシン、温室制御、制御ロジック、リアルタイム制御、ヒステリシス、組み込みシステム、フェイルセーフ、イベント駆動、モード管理
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について