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

- ア a:0..* b:0..1
- イ a:0..* b:1
- ウ a:1..* b:0..1
- エ a:1..* b:1
解答・解説を見る
正解:イ
AI解説
正解はイ。多重度は「相手クラスのインスタンス1個に対して自分側が幾つ対応するか」を相手側の端に書く。条件(1)より社員から見て入社年は必ず1つ特定できるのでb(年側)=1。条件(2)より年から見て社員は0人のこともあれば多数のこともあるのでa(社員側)=0..*となる。 ア: b=0..1は「入社年が特定できない社員がいてもよい」ことになり、条件(1)の「全ての社員は入社年を特定できる」に反する。 イ: 正しい。年→社員は0..*(入社者ゼロの年もある)、社員→年は1(必ず1つの入社年をもつ)で両条件を満たす。 ウ: a=1..*は「どの年にも必ず1人以上入社する」ことになり、条件(2)の「社員が入社しない年もある」に反する。さらにb=0..1も条件(1)に反する。 エ: a=1..*が条件(2)に反する。bが1である点は正しいが、組合せとして不適切である。 💡 多重度は「反対側のクラスの1インスタンスから見た個数」を記入する。「必ず特定できる」=1、「ないこともある」=下限0、と条件文の言い回しを下限・上限に対応付けて読むとよい。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。