この概念が出た関連問題

この試験の対策ガイド

情報処理安全確保支援士試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は エ

解説

UML の多重度(Multiplicity)と問題の条件を照合します。図は 部門 — 所属履歴 — 社員 の関連を示しています。条件 (1)「部門には1人以上の社員が所属する」→ 部門から見た社員の多重度は 1..* 、(2)「社員はいずれか一つの部門に所属する」→ 社員から見た部門の多重度は 1(丁度1つ)。所属履歴エンティティは部門と社員の間に存在し、部門→所属履歴は 1..* (1部門に複数の履歴)、社員→所属履歴も 1..* (1人の社員が複数部門の所属履歴を持ちうる)。図の a, b は所属履歴エンティティ側の多重度を示しており、両方とも 1..* が正解です。選択肢 d の「a=1..*, b=1..*」が正答です。

なぜ他の選択肢は違うのか

選択肢 ア
a=0..*, b=0..* は「所属履歴が 0 件でも許容される」ことを示しますが、条件 (1)(2) から部門・社員には必ず所属関係があるため、最小値は 0 ではなく 1 以上です。
選択肢 イ
a=0..*, b=1..* は a 側(部門→所属履歴)の最小値が 0 になっており、部門が社員を持たない場合を許容してしまいます。条件 (1)「1人以上」に反します。
選択肢 ウ
a=1..*, b=0..* は b 側(社員→所属履歴)の最小値が 0 になっており、社員が所属履歴を全く持たない場合を許容してしまいます。条件 (2)「いずれか一つの部門に所属」から最低1件の履歴が必要です。

解くときのポイント

UML多重度の問題は「最小値・最大値」を条件文から読み取る。「1人以上」→最小値1(1..*)、「0人以上」→最小値0(0..*)、「ちょうど1つ」→1(または1..1)。条件文の「以上」「以下」「いずれか」に注目して多重度を決定する。