データベーススペシャリスト試験 2011年 午前201


社員と年の関連が次の条件を満たす場合を UML のクラス図で記述するとき, a, b に入る多重度の適切な組合せはどれか。ここで, 年クラスのインスタンスは毎年存在する。 [条件]  (1) すべての社員は入社年を特定できる。  (2)年によっては社員が入社しないこともある。
問題画像選択肢画像
(正解)

解説

社員と年の関連の多重度選択問題【午前2 解説】

要点まとめ

  • 結論:社員側の多重度は「0..*」、年側は「1..1」が適切です。
  • 根拠:すべての社員は必ず入社年(年のインスタンス)を特定できるため、年側は必ず1つ存在します。
  • 差がつくポイント:年によっては社員が入社しないため、社員側は0以上の多重度で表現し、年側は必ず1つであることを見抜くことが重要です。

正解の理由

選択肢イの「a=0..、b=1..1」が正解です。
(1)「すべての社員は入社年を特定できる」ため、社員から見た年の多重度は必ず1つ(1..1)でなければなりません。
(2)「年によっては社員が入社しない」ため、年から見た社員の多重度は0以上(0..
)で表現されます。
この条件を満たすのは、社員側が0..*、年側が1..1の組み合わせです。

よくある誤解

社員側の多重度を1以上と誤解しがちですが、社員は複数存在するため0..*が正しいです。
また、年側の多重度を0..1とすると、社員が必ず入社年を持つ条件に反します。

解法ステップ

  1. 条件(1)から「すべての社員は入社年を特定できる」→社員から年への多重度は必ず1つ。
  2. 条件(2)から「年によっては社員が入社しない」→年から社員への多重度は0以上。
  3. UMLの多重度の意味を確認し、社員側は0..*、年側は1..1と判断。
  4. 選択肢の中から該当する組み合わせを選ぶ。

選択肢別の誤答解説

  • ア(0..*、0..1):年側が0..1は社員が必ず入社年を持つ条件に合わない。
  • イ(0..*、1..1):正解。社員は複数、年は必ず1つの入社年を持つ。
  • ウ(1..*、0..1):社員側が1..*は社員が必ず存在することを示すが、問題文では社員の存在は前提。年側が0..1は誤り。
  • エ(1..*、1..1):社員側が1..*は問題ないが、年側が1..1は社員が必ず入社する年を示すため、年によっては社員が入社しない条件に反する。

補足コラム

UMLの多重度は「関連するインスタンスの数の範囲」を示します。
「0..*」は0個以上、「1..1」は必ず1つを意味し、要件に応じて正確に設定することが重要です。
多重度の誤設定はシステム設計の誤解を招くため、要件の読み取り力が問われます。

FAQ

Q: 多重度「0..」と「1..」の違いは何ですか?
A: 「0..」は0個以上の関連を許容し、「1..」は最低1個以上の関連が必須です。
Q: なぜ年側の多重度は「1..1」なのですか?
A: すべての社員が入社年を特定できるため、社員から見た年は必ず1つ存在する必要があるからです。

関連キーワード: UML, 多重度, クラス図, 関連, 入社年, システム設計, オブジェクト指向
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ