クラス図以外の UML 図も AP では頻出。シーケンス図・ユースケース図・状態遷移図の用途を整理します。
シーケンス図 はオブジェクト間のメッセージを時系列で表す図。
ユースケース図 はアクタとシステムが提供する機能の関係を表す図。
状態遷移図 はオブジェクトの状態変化を表す図。
それぞれ、どんな場面で使うの?
ユースケース図は要件定義段階、シーケンス図は設計段階で具体的な処理フローを整理、状態遷移図は GUI のボタン状態や注文の状態 (受付・決済・出荷・配送) などイベント駆動型の振る舞いを表現するときに使うわ。
アクティビティ図 もありますよね…?
業務フローやアルゴリズムの流れを表す図ですね。
条件分岐や並列処理も表現できて、BPMN に近い表記なので業務分析にも使えます。
AP では『次の図はどの UML 図か』『ユースケース図の include と extend の違い』あたりが頻出ね。
知りたいことからUML図を逆引きする
図を選ぶときは、対象が「静的な構造」「利用者から見た機能」「時系列のやり取り」「状態の変化」「処理の流れ」のどれかを判定します。オンライン注文を例にすると、顧客と「商品を注文する」の関係はユースケース図、画面・注文サービス・決済サービスが送るメッセージの順序はシーケンス図、注文が受付済みから決済済み、出荷済みへ移る条件は状態遷移図、返品手続の分岐や並列作業はアクティビティ図で表します。
| 設問の焦点 | 選ぶ図 | 読む手掛かり |
|---|---|---|
| 誰がどの機能を利用するか | ユースケース図 | アクタ、システム境界 |
| 誰から誰へ何を送るか | シーケンス図 | ライフライン、上から下の時間 |
| イベントで状態がどう変わるか | 状態遷移図 | 状態、イベント、ガード条件 |
| 作業の分岐・合流・並列 | アクティビティ図 | 開始点、判断、フォーク |
include・extendと状態遷移を解く手順
<<include>> は、元のユースケースを実行すると必ず共通処理を呼ぶ関係です。「商品を購入する」が常に「本人確認を行う」を含むなら include です。<<extend>> は特定条件だけで追加される任意の振る舞いで、「クーポンを適用する」のような処理が該当します。必須か条件付きかを一文に言い換えてから矢印を選びます。
状態遷移問題では、現在状態、発生イベント、ガード条件、遷移後状態、実行アクションの順に表へ書き出します。たとえば未決済の注文に「入金確認」が起き、金額一致という条件を満たすと決済済みに遷移し、領収メールを送信します。シーケンス図を選ぶ誤答は、どちらも時間変化を扱うために生じます。複数オブジェクト間のメッセージ順序ならシーケンス図、一つの対象が取り得る状態なら状態遷移図です。
確認クイズ
オブジェクトが取りうる状態と、状態間の遷移をモデリングするのに最も適した UML 図はどれか。
- クラス図
- シーケンス図
- 状態遷移図
- ユースケース図
こたえを見る
正解: 3. 状態遷移図
状態遷移図は『オブジェクトの状態と状態間遷移』を表す図。例: 注文の『受付済み → 決済済み → 出荷済み → 配達完了』など。GUI のボタン状態や TCP の接続状態 (3-way handshake) などイベント駆動型システムで頻用されます。