以下のUMLクラス図で表現されているクラスA、B、C、Dのオブジェクト間の関係に関する次の記述のうち、最も適切なものはどれか。
┏━━━━━┓
3┃ A ┃
┏━━━━━━━━━━━→┠─────┨
┃ ┠─────┨
┃ ┃ ┃
┃ ┗━━━━━┛
┃ △
┃ ┃
┃ ┏━━━━━━━╋━━━━━━━┓
┃ ┃ ┃ ┃
┃ ┏━━┻━━┓ ┏━━┻━━┓ ┏━━┻━━┓
┃0..2┃ B ┃ ┃ C ┃ ┃ D ┃
┗━━━━┠─────┨ ┠─────┨ ┠─────┨
┠─────┨ ┠─────┨ ┠─────┨
┃ ┃ ┃ ┃ ┃ ┃
┗━━━━━┛ ┗━━━━━┛ ┗━━━━━┛
@ クラスAのオブジェクトは、必ずクラスBのオブジェクト2つから参照されている。
A クラスBのオブジェクトは、必ずクラスCかクラスDのオブジェクトを3つ持つ。
B クラスBのオブジェクトを根とし、クラスA、B、C、Dのいずれかのクラスのオブジェクトからなる木構造を構成することができる。
C 高さ2の木構造を構成できる場合の、最小のオブジェクト数は5である。
D どのオブジェクトからも参照されないオブジェクトとして存在できるオブジェクトは、クラスCとクラスDのオブジェクトのみである。
B
@ A 3 − 0..2 B は、クラスAからみると、クラスBのオブジェクトを0〜2個持つ。
従って、クラスAのオブジェクトは、クラスBのオブジェクト1つから参照されていることもある。
ちなみに、クラスBからみると、必ずクラスAのオブジェクトを3つ持つ。
A クラスBからみると、必ずクラスAのオブジェクトを3つ持ち、クラスC、クラスDは、クラスAから特化されている。
「クラスBのオブジェクトは、必ずクラスCかクラスDのオブジェクトを3つ持つ」とは言い切れない。
B 正しい。
C クラスB、C、DはクラスAから特化されたクラスである。
クラスA:社員
クラスB:管理職、クラスC:営業職、クラスC:技術職
とするとクラスBの管理職を根とし、クラスAのオブジェクトを持つ場合、クラスBからみると、必ず3人の社員を持つ。
さらにその社員3人のうち1人は管理職でなければ、高さ2の木構造を構成できない。
管理職は、必ず3人の社員を持つから、以下のように、最小のオブジェクト数は7である。
管理職
管理職、社員、社員
社員、社員、社員
D クラスAからみると、クラスBのオブジェクトを0〜2個持つので、Bのオブジェクトはどのオブジェクトからも参照されないオブジェクトとして存在できる。
V−18 | 目次 | V−20 |