過去問解きまくり研究所 ホーム

平成30年度 秋期 午前 問26

開発技術

bに入れる多重度の適切な組合せ

社員と年の対応関係を UML のクラス図で記述する。二つのクラス間の関連が次の条件を満たす場合,a,b に入れる多重度の適切な組合せはどれか。ここで,"年" クラスのインスタンスは毎年存在する。

〔条件〕
(1) 全ての社員は入社年を特定できる。
(2) 年によっては社員が入社しないこともある。

〔図〕クラス図

   ┌────┐   a                      b   ┌───┐
   │ 社員 │──────────────────────│ 年 │
   └────┘            入社年            └───┘

   多重度 a は 社員 の側の線の端、多重度 b は 年 の側の線の端に置かれている。
   関連名は「入社年」。
答えと解説を見る

✓ これが正解イa = 0..* / b = 1

解説

社員側は0以上、年側はちょうど1です。

社員と年という二つのクラスの間に引かれた関連について、両端に書く多重度の組合せを選ぶ問いです。この問いの山は、記法の読み方を先に固定できるかどうかの一点にあります。クラス図では、線の端に書いた多重度は、反対側のクラスのインスタンス一個に対して、こちら側がいくつ対応するかを表します。つまり年の端に置いた値は、社員一人につき年がいくつかを意味し、社員の端に置いた値は、年一つにつき社員が何人かを意味します。ここを取り違えると、答えがそっくり裏返ります。読み方が決まったら、条件を一つずつ当てます。全ての社員は入社年を特定できる、という条件は、どの社員にも入社した年が必ず一つ定まり、二つあることもない、と言っています。ですから年の側はちょうど一つです。もう一方の、年によっては社員が入社しないこともある、という条件は、ある年に結び付く社員が一人もいない場合を認めています。ですから社員の側は下限が零で、上限は定めません。この二つを組み合わせたものが正しい選択肢です。見分けの軸は、下限が零かどうかという点と、上限があるかどうかという点の二つです。設問の但し書きも整合します。年のインスタンスは毎年存在すると書かれているので、入社者が一人もいない年もクラスの実体としては残ります。だからこそ社員側の下限を零にしておく必要があるわけです。

ほかの選択肢はなぜ違うのか

出典:平成30年度 秋期 応用情報技術者試験 午前 問26(改変:原典の図表をテキストに書き起こした)

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)