最終更新日:2026年9月27日
fe fe-technology system-development uml
まず結論
UMLのクラス図は、クラスが持つ属性・操作と、クラス同士の関連などを表す静的な構造図です。
基本情報技術者試験では、次の対応をまず押さえます。
属性
操作
クラス間の関連
ロール名
多重度
↓
クラス図
特に、選択肢に「属性」「操作」がそろっていれば、クラス図を強く疑います。
何を持つ? → 属性、何ができる? → 操作。これをクラスごとに整理するのがクラス図。
直感的な説明
クラス図は、システムに登場する「もの」の設計図を並べ、その関係を表した図です。
例えば、商品を表すクラスなら次のように考えます。
┌─────────────┐
│ 商品 │ ← クラス名
├─────────────┤
│ 商品コード │
│ 商品名 │ ← 属性
│ 価格 │
├─────────────┤
│ 在庫確認() │
│ 価格変更() │ ← 操作
└─────────────┘
ここで、
商品コード・価格
→ 商品が「持っている情報」
→ 属性
在庫確認・価格変更
→ 商品が「できる処理」
→ 操作
と読みます。
さらに、複数のクラスを線で結ぶことで、クラス同士の関係も表せます。
顧客 ───────── 注文
関連
定義・仕組み
クラス名
クラス名は、そのクラスが何を表しているかを示します。
例えば、
顧客
商品
注文
社員
部署
などです。
クラスは、同じ性質や振る舞いをもつオブジェクトの共通定義です。
クラスとインスタンスの違いがあいまいな場合は、クラスとインスタンスとは?で整理しています。
属性
属性は、クラスが持つデータや性質です。
例えば「商品」クラスなら、
商品コード
商品名
価格
在庫数
などが属性になります。
FE試験では、
属性 = そのクラスが持っている情報
と考えると分かりやすいです。
操作
操作は、そのクラスが提供する処理や振る舞いです。
例えば「商品」クラスなら、
在庫確認()
価格変更()
販売()
などです。
プログラミングでは、メソッドと近い意味で理解するとつかみやすいです。
属性
→ データ
操作
→ 処理
関連
関連は、クラス同士に意味のあるつながりがあることを表します。
例えば、
顧客 ───── 注文
なら、「顧客」と「注文」に何らかの関係があることを示します。
関連には、多重度やロール名などを付けることがあります。
ロール名
ロール名は、関連の中で相手側のクラスがどのような役割として見えるかを表す名前です。
例えば、
会社 ───────── 社員
所属者
のように、その関連での役割を補足できます。
FEでは細かなUML仕様まで覚えるより、
ロール名
→ クラス間の関連での役割を表す
と理解しておけば十分です。
多重度
多重度は、関連するインスタンスが何個対応するかを表します。
1
0..1
0..*
1..*
などがあります。
例えば、
顧客 1 ───── 0..* 注文
なら、
1人の顧客
→ 注文は0件以上
1件の注文
→ 顧客は1人
と読みます。
詳しい読み方は、UMLの多重度とは?で整理しています。
このテーマは基本情報技術者試験のシステム開発技術やUMLに関係します。最新の出題範囲は、IPA:試験要綱・シラバスについてから確認できます。
科目Aでどう出る?
科目Aでは、UMLの各図に記述する要素を選ぶ問題として出ます。
まず、次のキーワードで切り分けます。
| 問題文のキーワード | 考える図 |
|---|---|
| 属性・操作・関連・ロール名 | クラス図 |
| ライフライン・アクティベーション・時間順 | シーケンス図 |
| オブジェクト・リンク・メッセージ | コミュニケーション図 |
| 初期状態・終了状態・遷移 | 状態遷移図 |
試験では、図の名前を覚えるだけでなく、何を表す図なのかで判断します。
クラス図
クラスの静的な構造
+
属性
+
操作
+
クラス間の関係
→ クラス図
シーケンス図
オブジェクト間のメッセージ
+
時間順
+
ライフライン
→ シーケンス図
シーケンス図とコミュニケーション図の違いは、UML相互作用図の見分け方で整理しています。
コミュニケーション図
オブジェクト同士のつながり
+
リンク
+
メッセージ
→ コミュニケーション図
状態遷移図
初期状態
終了状態
イベント
遷移
→ 状態遷移図
詳しくは、状態遷移図とは?で確認できます。
どんな場面で使う?
クラス図は、オブジェクト指向でシステムの構造を整理するときに使います。
例えば販売管理システムなら、
顧客
商品
注文
注文明細
といったクラスを考え、それぞれに属性や操作を持たせます。
顧客
├ 顧客番号
├ 氏名
└ 注文する()
注文
├ 注文番号
├ 注文日
└ 合計金額を求める()
さらに、クラス間の関連を表すことで、
顧客
↓ 注文する
注文
↓ 含む
注文明細
↓ 対象
商品
のように、システムの静的な構造を整理できます。
処理順を表したい場合
クラス図は静的構造を表す図なので、処理の時間順を表すのには向きません。
構造を見たい
→ クラス図
メッセージの順番を見たい
→ シーケンス図
と切り分けます。
よくある誤解・混同
属性と操作は同じ
違います。
属性
→ 持っているデータ
操作
→ 実行できる処理
例えば、
価格
→ 属性
価格を変更する()
→ 操作
です。
ライフラインはクラス図に書く
ライフラインは主にシーケンス図で使います。
クラス図
→ 静的な構造
シーケンス図
→ 時間に沿った相互作用
初期状態や終了状態はクラス図に書く
それらは状態遷移図で使う要素です。
初期状態・終了状態・遷移
→ 状態遷移図
クラス図は状態変化ではなく、クラスの構造や関係を表します。
オブジェクトとリンクが出たらクラス図
注意が必要です。
クラス図ではクラス同士の関連を表します。
一方、コミュニケーション図では、具体的なオブジェクト同士のリンクとメッセージを重視します。
クラス・属性・操作・関連
→ クラス図
オブジェクト・リンク・メッセージ
→ コミュニケーション図
多重度の数字は、その側の個数をそのまま読む
これはよくある誤解です。
多重度は、反対側の1インスタンスから見た個数として読みます。
顧客 1 ───── 0..* 注文
なら、「顧客1人に注文が0件以上」と読みます。
まとめ(試験直前用)
- UMLクラス図は、クラスの静的な構造を表す
- 属性は「持っているデータ」
- 操作は「できる処理」
- 関連は「クラス同士のつながり」
- ロール名は「関連の中での役割」
- 多重度は「対応するインスタンス数」
- 属性・操作・ロール名 → クラス図
- ライフライン → シーケンス図
- リンク・メッセージ → コミュニケーション図
- 初期状態・終了状態・遷移 → 状態遷移図
何を持つ?=属性、何ができる?=操作。この2つが見えたらクラス図を疑う。