まず結論

UML(Unified Modeling Language)はソフトウェアの設計を図で表現するための統一記法です。試験ではクラス図・シーケンス図・ユースケース図・アクティビティ図の4種類の読み方が問われます。

UML図の種類と用途

図の種類表現するものいつ使う
クラス図クラスの構造と関係(継承・集約等)設計フェーズ(静的構造)
シーケンス図オブジェクト間のメッセージのやりとり(時系列)動的な処理フローの把握
ユースケース図システムとアクターの相互作用要件定義フェーズ
アクティビティ図処理の流れ(フローチャートに近い)業務フロー・アルゴリズム
状態遷移図オブジェクトの状態変化状態機械の設計

クラス図の読み方

Animal
- name: String
- age: int
+ speak(): void
+ eat(): void
▲(継承)
スーパークラス↑
サブクラス↓
Dog
+ speak(): void
Cat
+ speak(): void
DogとCatはAnimalを継承(is-a関係)。- は非公開、+ は公開

クラス間の関係

継承(Inheritance)

is-a関係。「Dog is a Animal」。矢印の先がスーパークラス(親)。

集約(Aggregation)

has-a関係(部品と全体)。ひし形。部品は独立して存在できる。
例:車は4つのタイヤを持つ。

コンポジション

強い集約。全体が削除されると部品も削除される。
例:家が削除されると部屋も削除される。

依存(Dependency)

一時的な使用関係。点線矢印。あるクラスのメソッドが別クラスを引数等で使う。

🎯 試験での出方

⚠️ よくある間違い

✍️ 確認クイズ

Q1. オブジェクト間のメッセージのやりとりを時系列で表すUML図はどれか。
✅ 正解は②。シーケンス図はオブジェクト(またはクラス)間のメッセージ(メソッド呼び出し等)を時系列(上→下)で表現します。動的な処理フローの把握に使います。
Q2. クラス図において「Dog is a Animal」(犬は動物の一種)という関係を表す記法はどれか。
✅ 正解は②。クラス図の三角矢印(▲)は継承(Inheritance/汎化)を表します。矢印の先がスーパークラス(親)。is-a関係(〜は〜の一種)を表現します。
Q3. 要件定義フェーズでシステムとユーザーの相互作用を表すUML図はどれか。
✅ 正解は③。ユースケース図はシステムが提供する機能(ユースケース)と、それを利用するアクター(ユーザーや外部システム)の関係を表します。要件定義で「何ができるシステムか」を明確にするために使います。
Q4. アクティビティ図とフローチャートの関係として正しいものはどれか。
✅ 正解は②。アクティビティ図はUMLのフローチャートに相当し、業務フローやアルゴリズムの流れ(処理・条件分岐・並行処理)を表現します。「動的な処理の流れ」を表す点でシーケンス図と似ていますが、アクティビティ図は処理の流れ重視、シーケンス図はオブジェクト間のメッセージ重視です。
Q5. クラス図で「集約(Aggregation)」と「コンポジション」の違いとして正しいものはどれか。
✅ 正解は③。集約(白いひし形)は部品が全体から独立して存在できます(例:タイヤは車がなくても存在)。コンポジション(黒いひし形)は全体が削除されると部品も消える強い関係です(例:家が削除されると部屋も削除)。どちらもhas-a関係ですが所有の強さが違います。

Sponsor Link