応用情報技術者 2015年 秋期 午前2 問27
問題文
社員と年の対応関係を UML のクラス図で記述する。二つのクラス間の関連が次の条件を満たす場合、a,Bに入る多重度の適切な組合せはどれか。ここで、年クラスのインスタンスは毎年存在する。
〔条件〕
(1) 全ての社員は入社年を特定できる。
(2)年によっては社員が入社しないこともある。


選択肢
ア:
イ:(正解)
ウ:
エ:
社員と年の対応関係を UML のクラス図で記述する問題【午前2 解説】
要点まとめ
- 結論:社員側の多重度は「0..*」、年側は「1..1」が正解です。
- 根拠:全社員は必ず入社年(年クラスのインスタンス)を特定できるため、年側は必ず1つ存在し、社員は0人以上存在し得ます。
- 差がつくポイント:年に社員が入社しない場合もあるため、年側の多重度は「0..1」ではなく「1..1」とする点が重要です。
正解の理由
選択肢イの「a=0..」「b=1..1」が正解です。
(1)「全ての社員は入社年を特定できる」ため、社員から年への多重度は必ず1つ以上(1..1)でなければなりません。
(2)「年によっては社員が入社しないこともある」ため、年から社員への多重度は0人以上(0..)となります。
設問のaは社員側、bは年側の多重度なので、社員側は0..*、年側は1..1が適切です。
(1)「全ての社員は入社年を特定できる」ため、社員から年への多重度は必ず1つ以上(1..1)でなければなりません。
(2)「年によっては社員が入社しないこともある」ため、年から社員への多重度は0人以上(0..)となります。
設問のaは社員側、bは年側の多重度なので、社員側は0..*、年側は1..1が適切です。
よくある誤解
「年に社員が入社しないこともある」ため、年側の多重度を0..1と誤解しがちですが、年クラスのインスタンスは毎年存在するため1..1が正しいです。
解法ステップ
- 問題文の条件を整理する。
- 「全ての社員は入社年を特定できる」→社員から年への多重度は必ず1つ。
- 「年によっては社員が入社しないこともある」→年から社員への多重度は0人以上。
- 年クラスのインスタンスは毎年存在するため、年側の多重度は1..1。
- 選択肢の多重度と照合し、最も条件に合うものを選ぶ。
選択肢別の誤答解説
- ア(a=0..*、b=0..1):年側が0..1は誤り。年は毎年存在するため1..1が正しい。
- イ(a=0..*、b=1..1):正解。社員は0人以上、年は必ず1つ存在。
- ウ(a=1..*、b=0..1):社員側が1..*は誤り。社員が存在しない年もあるため0..*が適切。
- エ(a=1..*、b=1..1):社員側が1..*は誤り。社員が存在しない年もあるため0..*が適切。
補足コラム
UMLの多重度は「関連するインスタンスの数の範囲」を示します。
「0..*」は0人以上、「1..1」は必ず1つ存在を意味し、設計時に正確な多重度設定はシステムの整合性を保つ上で重要です。
「0..*」は0人以上、「1..1」は必ず1つ存在を意味し、設計時に正確な多重度設定はシステムの整合性を保つ上で重要です。
FAQ
Q: 年側の多重度が「1..1」である理由は?
A: 年クラスのインスタンスは毎年必ず存在するため、必ず1つ存在することを示します。
A: 年クラスのインスタンスは毎年必ず存在するため、必ず1つ存在することを示します。
Q: 社員側の多重度が「0..*」で良いのはなぜ?
A: 年によっては社員が入社しないこともあるため、社員数は0人以上となります。
A: 年によっては社員が入社しないこともあるため、社員数は0人以上となります。
関連キーワード: UML, クラス図、多重度、関連、入社年、モデリング

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

