
出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」
UMLクラス図で示したデータモデル(地域、社員、パーティ、注文、注文明細、商品の各エンティティと多重度)に関する記述のうち最も適切なものを選ぶ問題。
クラス図の関連と多重度から、正しく読み取れる記述を選ぶ問題。
① 多重度の読み方: 相手の端に書かれた数が「1つに対して何個つながるか」。1..*=1個以上、*=0個以上
② 注文は注文明細を1..*持ち、注文明細は商品にちょうど1つつながる → 注文は1つ以上の商品とつながる。①商品側から見ると注文明細は*(0でもよい)、③地域は1つ、④営業区域は1..*
③ ②
「注文」と「注文明細」は、コンポジション(黒ひし形)で結ばれ、注文側が1、注文明細側が1..*である。つまり、1つの注文は、1つ以上の注文明細を持つ。「注文明細」と「商品」の関連は、注文明細側が*、商品側が1で、1つの注文明細は、ちょうど1つの商品と関連付けられる。したがって、注文は、注文明細を介して、1つ以上の商品と関連付けられなければならない。②が最も適切である。
クラス図の多重度は、相手側のクラスに付いた数を、自分側から見た個数として読む。コンポジション(黒ひし形)は全体と部分の強い関係で、部分は全体なしには存在しない。
キーワード: UML、クラス図、多重度、コンポジション、データモデル、エンティティ、情報工学部門