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

※選択肢ア〜エは上の図表内に記載されています。
解答・解説を見る
正解:ア
AI解説
正解はア。「1つの注文が複数の注文明細を束ね、各注文明細は1種類の商品に対応する」という構造をクラス図の多重度で表す。注文と注文明細は1対多(注文明細は注文全体の一部なので強い集約=コンポジションが適切)、注文明細と商品は多対1の関連となる。多対多の「顧客-商品」関係を、注文・注文明細という中間クラスで1対多の連鎖に分解している点が判断基準である。 ア: 正しい。顧客-注文が1対多、注文-注文明細が1対多(コンポジション)、注文明細-商品が多対1という多重度で、複数商品の一括注文を正しく表現している。 イ: 誤り。多重度や集約の向きが問題文の「注文が複数の注文明細を束ねる」「明細は1種類の商品に対応」という条件に合致しない。 ウ: 誤り。注文と注文明細、注文明細と商品の間の多重度の設定が条件を満たしていない。 エ: 誤り。クラス間の関連の構造が、注文を介さず直接関連付けるなど、問題文の構造と一致しない。 💡 受注系のデータモデルは「顧客1-多注文、注文1-多注文明細、注文明細多-1商品」がお決まりのパターン。ひし形(集約・コンポジション)は「全体」側に付くことも覚えておく。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。