平成25年度 春期 応用情報技術者試験 午前 問45
図は“顧客が商品を注文する”を表現した UML のクラス図である。“顧客が複数の商品をまとめて注文する”を表現したクラス図はどれか。ここで,“注文明細”は一つの注文に含まれる1種類の商品に対応し,“注文”は複数の“注文明細”を束ねた一つの注文に対応する。

キーボード:1〜4 で解答 → 次の問題 ← 前の問題
正解と解説を見る
解答する前に解説を開いたので、この問題は「見て解いた」として記録します(正解数には入りません)。
正解:ア
“注文”は複数の“注文明細”を束ねたものなので,注文と注文明細は「全体(注文)-部分(注文明細)」の関係になり,注文側にひし形 を付けたコンポジションで表します。多重度は「注文 1 に対して注文明細 1..*」です。
また,各注文明細は1種類の商品に対応するので「注文明細 0.. ― 1 商品」,顧客は注文と関連付けて「顧客 1 ― 0.. 注文」となります。
-
ア: 顧客 1 ― 0.. 注文,注文(◆)1 ― 1.. 注文明細,注文明細 0..* ― 1 商品
正しい。1人の顧客は0件以上の注文を行い,1件の注文は1件以上の注文明細から構成され(注文側にひし形のコンポジション),各注文明細は1つの商品に対応します。問題の条件どおりです。 -
イ: 注文 1..* ― ◆1 注文明細(ひし形が注文明細側)
誤り。ひし形が注文明細側にあるため,注文明細が複数の注文を束ねる関係になっており,“注文”が複数の“注文明細”を束ねるという条件と逆です。 -
ウ: 注文と商品を直接関連付け,顧客を注文明細に関連付けたもの
誤り。1件の注文が1つの商品にしか対応しないため,複数の商品をまとめて注文することを表現できていません。また,顧客は注文明細ではなく注文と関連付けるべきです。 -
エ: 注文と商品を直接関連付け,ひし形が注文明細側にあるもの
誤り。注文と商品が直接関連しており,さらにコンポジションの向きも逆なので,条件を表現できていません。
答え
ア: 顧客 1 ― 0.. 注文,注文(◆)1 ― 1.. 注文明細,注文明細 0..* ― 1 商品
出典:平成25年度 春期 応用情報技術者試験 午前 問45