次のクラス図に適合するオブジェクト図として、最も適切なものはどれか。

@

A

B

C

D

B
白抜きの三角形は汎化を意味する。カテゴリ要素と商品の関係は特化-汎化の関係である。
汎化-特化の関係は「子クラス is a 親クラス」の関係であり、例えば、トラック is a 車、乗用車 is a 車のような関係にある。
したがって、商品はカテゴリ要素の一つであり、カテゴリもカテゴリ要素の一つである。
白抜きのひし形は集約を意味する。集約は、全体と部分の関係を示し、UMLクラス図では全体側の方に白のひし形で表す。
集約と分解の関係は、「子クラス is part of 親クラス」の関係であり、例えば、アクセル is part of 自動車、ブレーキ is patr of 車のような関係にある。
したがってカテゴリ要素はカテゴリの一部であり、カテゴリ要素は必ず1つの親カテゴリに属し1つのカテゴリは0件以上のカテゴリ要素を持つ。
以上を踏まえ、例えば
カテゴリ要素 = 猛獣エリア
商品 = トラ
カテゴリ = ○○動物園
とする。
カテゴリ要素 △── カテゴリ
猛獣エリア △── ○○動物園
猛獣エリア △── トラ
○○動物園と トラ は、どちらも猛獣エリアである。
カテゴリ ◇── カテゴリ要素
○○動物園 ◇── 猛獣エリア
猛獣エリアは○○動物園の一部である。(is part of 関係)
つまり、○○動物園の中に猛獣エリアや食事エリアを定義し、猛獣エリアの中に別の一種である○○動物園や恐竜パークやトラやライオンを定義するという構造になる。
現実世界では少し違和感があるのはやむを得ない。
@ カテゴリ要素 0..* − 1 カテゴリだから カテゴリー要素は親を持つ必要がある。
A 親が複数あるように見え、どちらが親かが曖昧である。
B 正しい。○○動物園の中に別の一種である○○動物園とトラが入るイメージ
C カテゴリー要素を実体としている。
D 上段の商品に親がない。また、商品同士に親子関係はない。
| V−24 | 目次 | V−26 |