平成26年度 秋期 午前 問27
開発技術
bに入る多重度の組合せ
その月に受注した商品を,顧客ごとにまとめて月末に出荷する場合,受注クラスと出荷クラスとの間の関連の a,b に入る多重度の組合せはどれか。ここで,出荷のデータは実績に基づいて登録される。また,モデルの表記には UML を用いる。
〔クラス図〕
顧客〔顧客番号,顧客名,…〕 │1 │ │* 商品〔商品番号,商品名,…〕1 ──── *受注〔受注番号,受注日,…〕 a ── b 出荷〔出荷番号,出荷日,…〕 a … 受注と出荷の関連の,受注クラス側に置かれた多重度 b … 受注と出荷の関連の,出荷クラス側に置かれた多重度 出荷クラスに付いた注記 …「顧客ごとに受注をまとめて月末に出荷する」
〔多重度の組合せ〕
| a | b | |
|---|---|---|
| ア | 1 | 1..* |
| イ | 1 | 0..1 |
| ウ | 1..* | 0..1 |
| エ | 1..* | 1..* |
- ア1 1..*
- イ1 0..1
- ウ1..* 0..1
- エ1..* 1..*
答えと解説を見る
✓ これが正解ウ1..* 0..1
解説
出荷1件に受注は複数、受注1件に出荷は0か1です。
設問は、受注クラスと出荷クラスを結ぶ関連の両端に置く多重度の組合せを選ばせています。UML の多重度は、必ず相手側の1個から見て自分側がいくつあるかを表します。ですから受注クラス側に置く値は、出荷1件から数えた受注の件数です。その月の受注を顧客ごとにまとめて月末に出荷するのですから、1回の出荷には複数の受注が乗り得ます。また、出荷が行われた以上、もとになる受注が0件ということはありません。よってこちら側は下限が1、上限が複数になります。一方、出荷クラス側に置く値は、受注1件から数えた出荷の件数です。出荷のデータは実績に基づいて登録されるので、月末を迎えるまでその受注に対応する出荷はまだ存在せず、0件の時期があります。出荷された後は1回だけです。よってこちら側は下限が0、上限が1になります。この組合せが当てはまります。クラス図の左右の位置ではなく、どちら側から数えるかで決まる点が要になります。
ほかの選択肢はなぜ違うのか
- ア1 1..*:数える向きを取り違えた形です。出荷1件に結びつく受注を1件に固定し、受注1件に出荷が1回以上あるとしているので、顧客ごとにまとめるという条件が反対側に効いてしまっています。
- イ1 0..1:出荷から数えた側だけが誤っています。まとめて出荷するのですから、1回の出荷に結びつく受注を1件に固定してしまうと、月内に受けた複数の注文を1回で送り出せません。
- エ1..* 1..*:出荷から数えた側は合っていますが、受注1件に対して出荷が必ず1回以上あるとしています。実績に基づいて登録されるという断りを使わないと、出荷前の時期が抜け落ちてこの形になります。
出典:平成26年度 秋期 応用情報技術者試験 午前 問27
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)