UMLを用いて表した図のデータモデルのa、bに入れる多重度はどれか。
〔条件〕
(1) 部門には1人以上の社員が所属する。
(2) 社員はいずれか一つの部門に所属する。
(3) 社員が部門に所属した履歴を所属履歴として記録する。
a | b | |
ア | 0..* | 0..* |
イ | 0..* | 1..* |
ウ | 1..* | 0..* |
エ | 1..* | 1..* |
解説を読む
正解:エ
解説:
UML(Unified Modeling Language:統一モデリング言語)はオブジェクト指向の設計などに利用するための統一書式です。過去にはこのうちクラス図、ユースケース図、アクティビティ図(フローチャート)などが出題されています。本問はクラス図に関する問題となります。
クラス図はクラス間の属性や関連を表すUMLのひとつです。それぞれの関連付けを行い、その際に参照されるオブジェクトの数を多重度と呼びます。
0..1 | 0または1つ |
1 | 1つ |
0..* | 0以上 |
1..* | 1以上 |
部門と所属履歴の関係では「(1)部門には1人以上の社員が所属する」から部門が存在すれば必ず社員が1人以上いることが分かります。(無人の部門はない)すなわち部門があるということは所属社員がいて、さらに社員は所属履歴を持ちますので必ず1個以上の所属履歴が記載されることになります。したがってaには1以上を示す「1..*」が入ります。
社員と所属履歴の関係では「(2) 社員はいずれか一つの部門に所属する。」から社員は必ず部門に所属していることが分かります。(部門に属さない社員はいない)さらに社員は所属履歴を持ちます。すなわち必ず1個以上の所属履歴が記載されることになります。したがってbには1以上を示す「1..*」が入ります。
上記よりaに「1..*」、bに「1..*」が該当するエが正解です。
解説を閉じる
コメント