平成27年度 秋期 午前 問27
開発技術
bに入る多重度の適切な組合せ
社員と年の対応関係を UML のクラス図で記述する。二つのクラス間の関連が次の条件を満たす場合,a,b に入る多重度の適切な組合せはどれか。ここで,年クラスのインスタンスは毎年存在する。
〔条件〕
(1) 全ての社員は入社年を特定できる。
(2) 年によっては社員が入社しないこともある。
〔クラス図〕
[社員]──────── 入社年 ────────[年]
↑ ↑
多重度 a 多重度 b
| a | b | |
|---|---|---|
| ア | 0..* | 0..1 |
| イ | 0..* | 1..1 |
| ウ | 1..* | 0..1 |
| エ | 1..* | 1..1 |
- ア0..* 0..1
- イ0..* 1..1
- ウ1..* 0..1
- エ1..* 1..1
答えと解説を見る
✓ これが正解イ0..* 1..1
解説
社員側は 0 以上、年側はちょうど一つです。
設問は、社員と年を入社年という関連で結んだ UML のクラス図について、二か所の多重度の組合せを選ばせています。多重度は、線の反対側にある一つの対象に対して、こちら側がいくつ対応するかを表す数です。手前のクラスがいくつあるか、と読まないところが要点になります。まず社員の側に付く方を決めます。反対側にあるのは年ですから、ある一つの年に対して社員が何人いるか、という問いになります。条件では、年によっては社員が入社しないこともあるとされているので、0 人のこともあれば複数のこともあります。次に年の側に付く方です。こちらは社員一人に対して入社年がいくつあるか、という問いで、全ての社員は入社年を特定できるという条件から、例外なくちょうど一つに定まります。年クラスのインスタンスは毎年存在するという但し書きは、対応する年が必ずあることを保証するための断りです。したがって社員の側は下限が 0 で上限を定めない形、年の側は下限も上限も 1 の形になります。
ほかの選択肢はなぜ違うのか
- ア0..* 0..1:年の側の下限を 0 まで緩めた組合せです。入社年の分からない社員がいてもよいという意味になり、全ての社員は入社年を特定できるという条件と食い違います。
- ウ1..* 0..1:社員の側の下限を 1 に上げ、さらに年の側の下限を 0 に緩めた組合せです。二か所とも条件と逆向きで、毎年必ず誰かが入社し、入社年の無い社員もいるという読み方になります。
- エ1..* 1..1:年の側は合っていますが、社員の側の下限を 1 に上げています。どの年にも必ず一人以上が入社したことになり、入社者のいない年もあるという条件を満たせません。
出典:平成27年度 秋期 応用情報技術者試験 午前 問27
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)