令和3年度 春期 応用情報技術者試験 午前 問47
テクノロジシステム開発技術モデリング記法(UML・DFD・状態遷移)
状態遷移表のとおりに動作し,運転状況に応じて装置の温度が上下するシステムがある。システムの状態が“レディ”のとき,①~⑥の順にイベントが発生すると,最後の状態はどれになるか。ここで,状態遷移表の空欄は状態が変化しないことを表す。
〔発生するイベント〕
① メッセージ1を受信する。
② メッセージ1を受信する。
③ 装置の温度が50℃以上になる。
④ メッセージ2を受信する。
⑤ 装置の温度が40℃未満になる。
⑥ メッセージ2を受信する。

図の説明テキスト
〔状態遷移表〕
各セルには状態遷移時の動作と遷移先の状態番号(右下)が記載されている。
| 条件 \ 状態 | 初期・終了 レディ 1 | 高速運転 2 | 低速運転 3 | 一時停止 4 |
|---|---|---|---|---|
| メッセージ1を受信する | 運転開始 2 | 加速 2 | 運転再開 2 | |
| メッセージ2を受信する | 減速 3 | 一時停止 4 | 初期化 1 | |
| 装置の温度が50℃未満から50℃以上になる | 減速 3 | 一時停止 4 | ||
| 装置の温度が40℃以上から40℃未満になる | 加速 2 | 運転再開 3 |
解答・解説
正解: エ. 一時停止
システムの状態遷移表に基づき、初期状態の「レディ」(状態1)から発生するイベントを順番にたどります。
なお、問題文にある「状態遷移表の空欄は状態が変化しないことを表す」という条件に注意します。
- 初期状態: 「レディ」(状態1)
- イベント1: メッセージ1を受信する
- 状態1の列と「メッセージ1を受信する」の行が交差するセルには「運転開始 2」とあります。
- 遷移後の状態: 「高速運転」(状態2)
- イベント2: メッセージ1を受信する
- 状態2の列と「メッセージ1を受信する」の行が交差するセルは空欄です。
- 遷移後の状態: 「高速運転」(状態2) のまま変化しません。
- イベント3: 装置の温度が50℃以上になる
- 状態2の列と「装置の温度が50℃未満から50℃以上になる」の行が交差するセルには「減速 3」とあります。
- 遷移後の状態: 「低速運転」(状態3)
- イベント4: メッセージ2を受信する
- 状態3の列と「メッセージ2を受信する」の行が交差するセルには「一時停止 4」とあります。
- 遷移後の状態: 「一時停止」(状態4)
- イベント5: 装置の温度が40℃未満になる
- 状態4の列と「装置の温度が40℃以上から40℃未満になる」の行が交差するセルには「運転再開 3」とあります。
- 遷移後の状態: 「低速運転」(状態3)
- イベント6: メッセージ2を受信する
- 状態3の列と「メッセージ2を受信する」の行が交差するセルには「一時停止 4」とあります。
- 遷移後の状態: 「一時停止」(状態4)
すべてのイベントが発生したあとの最終的な状態は「一時停止」(状態4)となります。したがって、正解はエです。
各選択肢の解説
- ア: 最終状態とは異なります。状態4でメッセージ2を受信した場合の「初期化 1」など、現在の状態を誤認して遷移先を間違えた場合の誤答です。
- イ: 最終状態とは異なります。イベント1やイベント2が発生した直後の状態です。
- ウ: 最終状態とは異なります。イベント3やイベント5が発生した直後の状態です。
- エ: 正解です。