マナビング基本情報技術者

UMLクラス図の汎化と多重度をどう読むか

基本情報技術者試験 平成29年度秋期 午前 問28 / データベース › データベース設計

過去問にチャレンジ

平成29年度秋期 午前 問28

UMLを用いて表した図のデータモデルの解釈のうち,適切なものはどれか。

平成29年度秋期 午前 問28の図
  1. ア

    事業部以外の部門が,部門を管理できる。

  2. イ

    社員は事業部に所属できる。

  3. ウ

    所属する社員がいない部門が存在する。

  4. エ

    部門は,いずれかの事業部が管理している。

会話形式の解説

講師講師
まず白抜きの三角形が指す先を確認しましょう。そのうえで、関連の端に書かれた人数や個数を読みます。
受験者受験者
三角形は部門を指しています。事業部と部門は、どういう関係ですか。
講師講師
部門が上位クラスで、事業部はその一種です。部門に定義された「所属する」という関連は、事業部にも適用できます。
受験者受験者
それなら、社員が事業部に所属できるという解釈が適切ですね。
講師講師
そのとおりです。ほかの解釈も、線が結ぶ対象と多重度を使って確かめましょう。
受験者受験者
事業部も部門の一種なら、事業部以外の部門も管理できるのでしょうか。
講師講師
図の「管理する」関連で、管理する側にあるのは事業部です。事業部以外の部門が管理する関係は読み取れません。
受験者受験者
所属する社員がいない部門については、社員側の「1..*」を見ればよいですか。
講師講師
はい。一つの部門に結び付く社員は1人以上です。0人の部門は、この図の条件に合いません。
受験者受験者
では、どの部門も事業部に管理されるという解釈はどうですか。
講師講師
事業部側の「0..1」に注目します。一つの部門を管理する事業部は0または1なので、管理されない部門も許されます。
受験者受験者
端の数値は、反対側の一つの対象に対して、数値が書かれた側の対象が幾つ結び付くかを示すのですね。
講師講師
はい。多重度に0が含まれれば結び付かない場合もあります。白抜きの三角形が示す上位・下位の関係と併せて読むのがポイントです。

まとめ

白抜きの三角形は上位クラスの部門を指し、事業部は部門の一種です。部門の「所属する」関連は事業部にも適用できるため、社員は事業部に所属できます。社員側の多重度「1..*」は、部門に所属する社員が1人以上いることを示します。一方、管理する事業部側の「0..1」は、管理する事業部がない部門も許します。

解答・解説

正解はイです

この問題のテーマ

UMLのクラス図に示された汎化と関連の多重度を読み取り、部門・事業部・社員の関係を判断する問題です。

解き方の考え方

白抜きの三角形が指す部門は、事業部の上位クラスです。次に、関連の線の端に書かれた多重度を、反対側の一つの対象に対して何人・幾つ結び付くかとして読みます。事業部が部門の一種であることを踏まえ、各選択肢を図と照合します。

選択肢ごとの解説

  1. ×ア  事業部以外の部門が,部門を管理できる。
    図の「管理する」関連で、管理する側として部門に結ばれているのは事業部です。事業部以外の部門が管理するという関係は、この図からは読み取れません。
  2. ○イ  社員は事業部に所属できる。
    事業部は部門を特化したクラスなので、部門の一種として扱えます。部門と社員の「所属する」関連は事業部にも適用できるため、社員は事業部に所属できます。
  3. ×ウ  所属する社員がいない部門が存在する。
    社員側の多重度は「1..*」です。これは一つの部門に所属する社員が1人以上いることを表すので、所属社員が0人の部門は図の条件に合いません。
  4. ×エ  部門は,いずれかの事業部が管理している。
    「管理する」関連の事業部側には「0..1」とあります。一つの部門を管理する事業部は0または1なので、どの部門も必ず管理されるとはいえません。

POINT

  • 白抜きの三角形は上位クラスを指します。
  • 下位クラスの対象には、上位クラスに定義された関連も適用できます。
  • 多重度は、その数値が書かれた側の対象が幾つ結び付くかを示します。
  • 多重度に0が含まれる場合、その側の対象と結び付かないことも許されます。

※出典:平成29年度秋期 基本情報技術者試験 午前 問28(一部改変)