最終更新日:2026年8月28日
fe fe-technology system-development uml
まず結論
UMLの多重度は、あるクラスの1つのインスタンスに対して、反対側のクラスのインスタンスが何個対応するかを表します。
基本情報技術者試験では、まず次の4つを押さえます。
0..1 → 0個または1個
1 → 必ず1個
0..* → 0個以上
1..* → 1個以上
最も大切なのは、数字が書かれている側だけを見ないことです。
多重度は「反対側の1個から見て、こちら側が何個あるか」と読む。
直感的な説明
「顧客」と「注文」の関係を考えます。
顧客 1 ───── 0..* 注文
この図は、次の意味です。
1人の顧客
→ 注文は0件以上
1件の注文
→ 顧客は必ず1人
0..* が注文側に書いてあるからといって、単純に「注文が0個以上」と読むだけでは不十分です。
顧客1人から見た注文の個数として読む必要があります。
定義・仕組み
多重度(Multiplicity)は、UMLのクラス図などで関連の端に記述し、関連するインスタンス数の範囲を表します。
| 多重度 | 意味 |
|---|---|
0..1 |
0個または1個 |
1 |
必ず1個 |
0..* |
0個以上 |
1..* |
1個以上 |
0..1
0..1
対応するインスタンスがなくてもよく、存在する場合でも最大1個です。
たとえば、社員に「社用車」が割り当てられる関係なら、社員によっては社用車がなく、あっても1台だけ、という設計に使えます。
1
1
必ず1個対応します。
たとえば、1件の注文には必ず1人の顧客が対応する、といった関係です。
0..*
0..*
0個でもよく、個数に上限はありません。
顧客1人
→ 注文0件でもよい
→ 注文が複数件あってもよい
1..*
1..*
少なくとも1個は必要ですが、複数でも構いません。
従業員1人
→ 少なくとも1つの部署に所属
→ 複数部署への所属も可能
UMLそのものや各種UML図の役割を整理したい場合は、先にUMLとは?構造図・振る舞い図と代表的な図の見分け方を確認すると、多重度がクラス図のどこで使われるか理解しやすくなります。
また、クラスとインスタンスの違いがあいまいな場合は、クラスとインスタンスとは?を先に確認すると、この「1つのインスタンスから見る」という考え方がつかみやすくなります。
公式の出題範囲やシラバスは、IPA:基本情報技術者試験から確認できます。
科目Aでどう出る?
科目Aでは、クラス図と多重度が示され、そこから正しい関係を選ぶ問題として出題されます。
例えば、次の関係を考えます。
部署 1..* ───── 0..* 従業員
読み方は次のとおりです。
従業員1人から見た部署
→ 1つ以上
部署1つから見た従業員
→ 0人以上
したがって、次のように判断できます。
- 従業員は少なくとも1つの部署に所属する
- 従業員は複数部署に所属してもよい
- 従業員が0人の部署も存在できる
- 部署数と従業員数が一致する必要はない
試験中の読み方
多重度は、次の順番で読むと間違いにくくなります。
1. どちらのクラスを1個固定するか決める
2. 反対側の多重度を見る
3. 最小値を確認する
4. 最大値を確認する
たとえば、
社員 0..* ───── 1 会社
なら、
社員1人から見た会社
→ 必ず1社
会社1社から見た社員
→ 0人以上
と読みます。
どんな場面で使う?
多重度は、システムのデータ構造やオブジェクト同士の関係を設計するときに使います。
1対1を表す
1 ───── 1
双方が必ず1つずつ対応する関係です。
1対多を表す
1 ───── 0..*
一方の1個に対し、反対側が0個以上対応できます。
多対多を表す
0..* ───── 0..*
双方が複数対応できる関係です。
関係データベースのE-R図でも「1対多」「多対多」という考え方が出てきます。UMLとE-R図は同じものではありませんが、関係の個数を読む感覚は共通しています。データベース側の表現まで理解を広げたい場合は、E-R図とは?を読むとつながりが見えやすくなります。
よくある誤解・混同
数字が書いてあるクラス自身の個数だと思う
ここが最もよくある誤解です。
部署 1..* ───── 0..* 従業員
部署側の 1..* は、単に「部署が1個以上ある」という意味ではありません。
従業員1人から見て、部署が1個以上対応するという意味です。
0..* は必ず複数ある
違います。
0..* は「0個以上」なので、0個でも1個でも複数でも構いません。
0..* → 0, 1, 2, 3, ...
1..* は必ず複数ある
これも違います。
1..* は「1個以上」なので、1個だけでも成立します。
1..* → 1, 2, 3, ...
多重度から全体の総数まで分かる
分かりません。
多重度は、1つのインスタンスに対して何個対応するかを表すものです。
全従業員数と全部署数が一致するかどうか、といった全体の総数までは示していません。
UMLの多重度とE-R図は同じ
同じではありません。
UMLのクラス図はオブジェクト指向設計でクラス間の関係を表し、E-R図は主にデータベース設計でエンティティ間の関係を表します。
ただし、1対多・多対多など「対応する個数」を考える点は似ています。
まとめ(試験直前用)
- UMLの多重度は、関連するインスタンス数の範囲を表す
0..1は0個または1個1は必ず1個0..*は0個以上1..*は1個以上- 数字は「反対側の1インスタンスから見た個数」と読む
0..*は0個でもよい1..*は1個でもよい- 多重度だけからクラス全体の総数までは分からない
試験では、次の一文を思い出してください。
数字のある側を見る前に、反対側を1個固定して読む。