本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

平成23年度 春期 高度情報技術者試験問題と解説

問15

図は“顧客が商品を注文する”を表現したUMLのクラス図である。“顧客が複数の商品をまとめて注文する”を表現したクラス図はどれか。ここで、“注文明細”は一つの注文に含まれる1種類の商品に対応し、“注文ヘッダ”は複数の“注文明細”を束ねた一つの注文に対応する。

  ┌────┐     ┌────┐     ┌────┐
  │ 顧客 ├─────┤ 注文 ├─────┤ 商品 │
  └────┘1 0..*└────┘0..* 1└────┘

  凡例                  多重度
  クラス   関連  コンポジション 1   必ず1
 ┌────┐             0..* 0以上
 │    │ ──── ◆───   1..* 1以上
 └────┘


 ┌────┐     ┌─────┐
 │ 顧客 ├─────┤注文ヘッダ│
 └────┘1 0..*└─────┘
               ◆1
               │1..*
            ┌──┴──┐     ┌────┐
            │ 注文明細 ├─────┤ 商品 │
            └─────┘0..* 1└────┘


 ┌────┐     ┌─────┐
 │ 顧客 ├─────┤注文ヘッダ│
 └────┘1 0..*└──┬──┘
               │1..*
               ◆1
            ┌─────┐     ┌────┐
            │ 注文明細 ├─────┤ 商品 │
            └─────┘0..* 1└────┘


             ┌─────┐     ┌────┐
             │注文ヘッダ├─────┤ 商品 │
             └─────┘0..* 1└────┘
                ◆1
                │1..*
  ┌────┐     ┌──┴──┐
  │ 顧客 ├─────┤ 注文明細 │
  └────┘1 0..*└─────┘


             ┌─────┐     ┌────┐
             │注文ヘッダ├─────┤ 商品 │
             └──┬──┘0..* 1└────┘
                │1..*
                ◆1
  ┌────┐     ┌─────┐
  │ 顧客 ├─────┤ 注文明細 │
  └────┘1 0..*└─────┘


正解


解説

コンポジションは集約の一種で、なくてはならない集約であり。例えば自動車とタイヤのような関係である。
なお、自動車とカーエアコンのような関係は集約である。

■顧客と注文ヘッダの関係
顧客から見ると注文はしない場合もあるし、複数注文する場合もある。
また、注文からみると、顧客は必ず1人である。
従って、顧客 1  0..* 注文ヘッダ の関連となる。

■注文と注文明細の関係
注文からみると注文明細は、1行以上なければならない。
注文明細からみると注文は必ず1つである。
従って、注文ヘッダ 1  1..* 注文明細 の関連となる。
また、注文明細 is part of 注文 であるから、
注文ヘッダ ◆─── 注文明細 である。

■注文明細と商品の関係
注文明細からみると商品は必ず1つである。
商品からみると、注文明細にない商品も存在するし、1つ以上の注文明細が存在する場合もある。
従って、注文明細 0..*  1 商品 の関連となる。

問14 目次 問16