【開発技術】変化のルールを可視化!「状態遷移図(ステートマシン図)」|情報処理問題1000本ノック
システムやオブジェクトが「今どんな状態で、何が起きたら次の状態へ移るのか」。その振る舞いのルールを記述する図法を攻略しましょう。
1. 【 問題 】:UMLによる振る舞いの表現
【 問題 】 UML(Unified Modeling Language)において、オブジェクトが作成されてから破棄されるまでの間に、外部からのイベントや時間の経過によって、その状態がどのように変化するかを表現する図はどれでしょうか?
① クラス図
② ユースケース図
③ 状態遷移図(ステートマシン図)
④ シーケンス図
2. 正解:
正解: ③ 状態遷移図(ステートマシン図)
3. 解説:「きっかけ」と「移り変わり」を追う
状態遷移図は、システムの「動的な側面」を表現します。特に組込みシステムや、複雑な画面遷移、注文ステータスの管理などの設計に威力を発揮します。
【構成要素のキーワード】
■ 状態(State)
・オブジェクトが置かれている状況(例:停止中、実行中、待機中)。角丸の長方形で表します。
■ イベント(Event)
・変化を引き起こす「きっかけ」(例:ボタン押下、タイムアウト)。
■ 遷移(Transition)
・ある状態から別の状態へ移ること。矢印で表します。
■ 状態(State)
・オブジェクトが置かれている状況(例:停止中、実行中、待機中)。角丸の長方形で表します。
■ イベント(Event)
・変化を引き起こす「きっかけ」(例:ボタン押下、タイムアウト)。
■ 遷移(Transition)
・ある状態から別の状態へ移ること。矢印で表します。
[ よく出るUMLの分類 ]
★ 構造図:クラス図など(静的な形を表す)。
★ 振る舞い図:状態遷移図、アクティビティ図など(時間の経過や動きを表す)。
★ 構造図:クラス図など(静的な形を表す)。
★ 振る舞い図:状態遷移図、アクティビティ図など(時間の経過や動きを表す)。
1. 理解のコツ: 「全自動洗濯機」を想像してください。「給水」状態のときに「満水」というイベントが起きると「洗い」状態へ移ります。このように、勝手に別の状態へ飛ばないための「交通整理の地図」が状態遷移図です。
2. 試験対策の視点: 「イベント」「時間経過」「状態の変化」という言葉が出たら状態遷移図(ステートマシン図)が正解です。一方、メッセージのやり取りを時系列で表す「シーケンス図」との違いを問われることが多いので注意しましょう。
4. まとめ
「オブジェクトの状態変化のルールを記述した図」。これが状態遷移図です。不具合の少ない堅牢なシステムを設計するために、あらゆる「状態」と「遷移条件」を網羅することは、エンジニアにとって非常に重要なスキルです。
PR