令和5年度 春期 応用情報技術者試験 午前 問29

テクノロジシステム開発技術

この問題は2023(R5)春 応用情報技術者 午前に出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

UMLを用いて表した図のデータモデルのabに入れる多重度はどれか。

〔条件〕

  1. 部門には1人以上の社員が所属する。
  2. 社員はいずれか一つの部門に所属する。
  3. 社員が部門に所属した履歴を所属履歴として記録する。
UMLを用いたデータモデルのクラス図
図の説明テキスト

UMLを用いたデータモデルのクラス図。
左に「部門」クラス(属性:部門コード、部門名、...)。
中央に「所属履歴」クラス(属性:開始日、終了日、...)。
右に「社員」クラス(属性:社員コード、氏名、...)。
「部門」と「所属履歴」が実線で結ばれており、部門側の多重度に「1」、所属履歴側に空欄aがある。
「所属履歴」と「社員」が実線で結ばれており、所属履歴側に空欄b、社員側の多重度に「1」がある。

問29の選択肢を表した表
図の説明テキスト

問29の選択肢を表した表。

a b
0..* 0..*
0..* 1..*
1..* 0..*
1..* 1..*

解答・解説を読む

正解: 選択肢

UMLのクラス図において、多重度は関連するクラス間のインスタンス数の対応関係を示します。
問題文の条件から、それぞれの多重度を導き出します。

  • 多重度 a について
    〔条件〕1に「部門には1人以上の社員が所属する。」とあります。
    これは、1つの部門インスタンスに対して、社員インスタンスが「1人以上(下限1、上限多)」関連づけられることを意味します。したがって、多重度 a は 1..* となります。

  • 多重度 b について
    〔条件〕2に「社員はいずれか一つの部門に所属する。」、〔条件〕3に「社員が部門に所属した履歴を所属履歴として記録する。」とあります。
    社員は現在いずれか一つの部門に所属しているため、少なくとも1つの所属履歴(現在の所属)が記録されます。さらに異動があれば過去の履歴も保持されるため、1人の社員に対して所属履歴のインスタンスは「1つ以上」存在することになります。したがって、多重度 b も 1..* となります。

以上より、a と b の両方が 1..* となっている組み合わせが正解です。

各選択肢の解説

  • (a: 0.., b: 0..): aが 0..* だと「社員が0人(誰も所属していない)の部門」が存在できることになり、〔条件〕1に反します。また、bが 0..* だと「所属履歴がない社員」を許容してしまい、〔条件〕2および3に反するため誤りです。
  • (a: 0.., b: 1..): aが 0..* となっており、〔条件〕1に反するため誤りです。
  • (a: 1.., b: 0..): bが 0..* となっており、所属履歴が1つもない社員の存在を許容してしまうため誤りです。
  • (a: 1.., b: 1..): a、bともに条件から導き出される多重度と一致しており、正解です。