システムアーキテクト試験 2012年 午前221


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

解説

社員と年の対応関係をUMLのクラス図で記述する問題【午前2 解説】

要点まとめ

  • 結論:多重度は「a=0..*」「b=1..1」が正解です。
  • 根拠:社員は必ず入社年を特定できるため年側の多重度は1、年には社員が入社しない年もあるため社員側は0以上。
  • 差がつくポイント:多重度の「0」と「1」の意味を正確に理解し、条件文の「全ての社員」と「年によっては社員が入社しない」を正しく反映すること。

正解の理由

社員クラスから年クラスへの関連で「a」は社員側の多重度、「b」は年側の多重度を示します。
(1)「全ての社員は入社年を特定できる」→社員は必ず1つの年に対応するため、年側の多重度は1..1。
(2)「年によっては社員が入社しない」→年側は社員が0人でもよいので社員側の多重度は0..
よって「a=0..
」「b=1..1」が条件を満たし、選択肢イが正解です。

よくある誤解

「全ての社員は入社年を特定できる」から社員側の多重度を1..と誤解しやすいですが、社員側は「0..」で正しいです。
また「年によっては社員が入社しない」ため年側の多重度を0..1とするのは誤りです。

解法ステップ

  1. 条件文を丁寧に読み、「全ての社員は入社年を特定できる」意味を理解する。
  2. 「年によっては社員が入社しない」ことから年側の社員数は0以上であると判断。
  3. UMLの多重度の意味を確認し、社員側と年側の多重度を割り当てる。
  4. 選択肢の中から条件に合致する多重度の組み合わせを選ぶ。

選択肢別の誤答解説

  • ア(a=0..*、b=0..1):年側の多重度が0..1で社員が必ず1つの年に属する条件を満たさない。
  • イ(a=0..*、b=1..1):社員は必ず1つの年に属し、年は社員が0人でもよい条件を満たすため正解。
  • ウ(a=1..*、b=0..1):社員側の多重度が1..*は誤り。社員は1人だが0以上でよい。
  • エ(a=1..*、b=1..1):社員側の多重度が1..*は誤り。社員は0以上でよい。

補足コラム

UMLの多重度は「0..1」「1..1」「0..」「1..」などで表され、関連の数の範囲を示します。
「0..1」は0か1つ、「1..1」は必ず1つ、「0..」は0以上無制限、「1..」は1以上無制限を意味します。
今回の問題では「社員は必ず1つの年に属する」ため年側は「1..1」、年は社員がいないこともあるため社員側は「0..*」となります。

FAQ

Q: 多重度の「0..」と「1..」の違いは何ですか?
A: 「0..」は0個以上、「1..」は1個以上の関連があることを示します。必ず1つ以上関連がある場合は「1..*」を使います。
Q: なぜ社員側の多重度が「0..」なのですか?
A: 年によっては社員が入社しないため、年側から見た社員の数は0以上となり、社員側の多重度は「0..
」となります。

関連キーワード: UML, クラス図, 多重度, 関連, 入社年, オブジェクト指向, モデリング
← 前の問題へ次の問題へ →

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