データベーススペシャリスト 2024年 午前2 問06
問題文
階層構造をもつ組織と、従業員の組織への所属を表すUMLのクラス図のうち、“従業員は組織階層中のどの組織にも所属できるが、兼務はしない”とするものはどれか。

選択肢
ア:従業員は組織階層中のどの組織にも所属できるが、兼務はしないことを表すクラス図。
イ:従業員は0..1の上位組織に所属し、兼務しないことを表すクラス図。
ウ:従業員は複数の組織に所属可能で兼務を許すクラス図。
エ:従業員は1つの組織に所属し兼務しないことを表すクラス図。(正解)
🔒 解説は解答すると表示されます
組織階層の所属表現【午前2解説】
正解の理由
図版の表現で「従業員が組織階層中の任意の組織インスタンスに所属できる(=所属先は組織クラス全体)」「兼務はしない(=従業員側の多重度が1である)」の両条件を満たしているのは、付加ノードで組織間の親子関係を明示しつつ、従業員と組織の関連の多重度が組織側「*」、従業員側「1」となっている エ です。
付加ノード(小さな四角)上の多重度は組織間の上下関係(親子の多重度)を示すだけであり、従業員の所属可能性は「所属する」関連に記された多重度で判定します。エでは組織が親を持たない場合があり(上位は 0..1)、子を複数持てる(下位は *)階層になっていることが明示され、かつ従業員は必ず一つの組織に所属すること(兼務しない)をはっきり表しています。
付加ノード(小さな四角)上の多重度は組織間の上下関係(親子の多重度)を示すだけであり、従業員の所属可能性は「所属する」関連に記された多重度で判定します。エでは組織が親を持たない場合があり(上位は 0..1)、子を複数持てる(下位は *)階層になっていることが明示され、かつ従業員は必ず一つの組織に所属すること(兼務しない)をはっきり表しています。
解法ステップ
- 「組織階層をもつ」とはインスタンス間の親子関係(ある組織が別の組織の上位/下位となる関係)が図示されていることを確認する。これには自己関連や付加ノード/関連を使った表現が該当する。
- 「従業員は兼務しない」は、従業員側の関連多重度が
1であることを探す(従業員側が1のとき各従業員は必ず一つの組織にのみ属する)。組織側は*で良い(1つの組織に複数従業員)。 - 上記2点を同時に満たす図を選ぶ。付加ノードや自己関連の多重度は(組織間の)階層構造の説明であり、従業員の所属制約は所属関連の多重度で判断する。
選択肢別の誤答解説
-
ア
- 解説:図中に自己関連(組織–組織の親子関係)と総称化(上位組織/末端組織のサブクラス)が混在している。自己関連自体は組織インスタンスの階層を表現でき、従業員の「所属する」関連が組織クラスを指しているため、従業員は階層中の任意の組織インスタンスに所属可能で、従業員側の多重度
1は兼務しないことを示します。しかし、総称化(クラスの種類分け=型の階層)と自己関連(インスタンス間の親子)を同時に置くと図の意図が冗長または解釈に差が出やすく、試験設問で求める「階層構造をもつ組織」を示す標準的で明瞭な表現としては適切性が劣るため不正解と判断されます。 - 補足:誤りではない読み方(=従業員は任意の組織に所属できる)は成立する点に注意(つまり「多重度の混同」による誤説明は避ける)。
- 解説:図中に自己関連(組織–組織の親子関係)と総称化(上位組織/末端組織のサブクラス)が混在している。自己関連自体は組織インスタンスの階層を表現でき、従業員の「所属する」関連が組織クラスを指しているため、従業員は階層中の任意の組織インスタンスに所属可能で、従業員側の多重度
-
イ
- 解説:付加ノード上の
0..1や*は組織間の上位・下位の多重度を示します。付加ノードの値を「従業員の所属先を直接制約するもの」と誤解してはいけません。イの図ではその意味での組織間関係は示されていますが、図の描き方(ノードの接続や位置)や記法の解釈によっては「階層の表現が不十分に見える」場合や、試験で期待されるもっと直接的な表現(付加ノードで明確に親子を示し、かつ従業員側の多重度が1であることが明示される形)と整合しないため、設問文の意図に合わないと判断されます。 - 重要訂正点:付加ノードの多重度は組織間の関係を示すもので、従業員側の多重度
1は図中の「所属する」関連線で判断する、という点が正確な読み方です。
- 解説:付加ノード上の
-
ウ
- 解説:ウは総称化(スーパークラスとサブクラス)だけで示されており、クラスの型の区分はあるが「インスタンス間の親子(階層)関係」を表す自己関連・付加ノード等が示されていません。総称化はクラスの分類(型の継承)であり、組織インスタンスが相互に親子関係を持つ“階層構造”を直接表すものではないため、設問の「階層構造をもつ組織」を満たしません。したがって不適切です。
-
エ(正答相当)
- 解説:組織に対して付加ノードで「上位:0..1、下位:」と明示されており、これは組織インスタンス間の親(0または1)・子(0以上可/)の関係を表します。さらに従業員との関連が組織側
*、従業員側1なので、各従業員は必ず一つの組織にのみ所属し(兼務しない)、かつその所属先は組織階層の任意のノード(組織クラス全体)になりうる、という要件を簡潔かつ明確に満たしています。ゆえに エ が設問の意図に最も合致します。
- 解説:組織に対して付加ノードで「上位:0..1、下位:」と明示されており、これは組織インスタンス間の親(0または1)・子(0以上可/)の関係を表します。さらに従業員との関連が組織側
よくある誤解
- 1)付加ノードや自己関連の多重度を従業員側の所属制約に読み替える
- 付加ノードの多重度は「組織⇔組織」の関係を示す。従業員が何個の組織に所属できるかは「従業員–組織」関連の多重度で判断する。
- 2)総称化(継承)=組織の階層(インスタンスの親子)と混同する
- 総称化はクラスの型関係(AはBの一種)を表す。インスタンス同士の親子構造(ある店舗が別の組織の子である等)は自己関連や関連で表す。
- 3)図中の位置(上辺・下辺・左側等)だけで多重度の意味を決めつける
- 多重度は関連の各端に対応する;図の描き方が異なっても、端に記された役割名と多重度を正しく読み取ること。
補足コラム
UMLで「階層構造」をどう表すかの代表例と読み方:
- 自己関連(同クラス間の関連)
- クラス X が自分自身と関連を持ち、片方の役割を "parent(上位): 0..1", もう片方を "child(下位):*" とすれば、各インスタンスは最大1つの親を持ち得て、多数の子を持てる木構造を表現できる。
- 付加ノード(関連ノード)による表現
- クラスに付加ノードを付けて親・子の役割と多重度を書き、クラスに接続することでインスタンス間の階層を明示する書き方。図として読みやすく、階層の多重度が明確に示せる。
- 総称化(継承)は「型の階層」:組織の種類(上位組織型、末端組織型)を表すが、個々の組織インスタンスの親子リンクは示さない。
簡単な読み取りルール:まず「どの関連線が従業員と組織を直接結んでいるか」を見て、その両端の多重度で兼務の有無を判定 → 次に組織同士の関連(自己関連/付加ノード)が階層を示すか確認。
FAQ
Q. 付加ノードと自己関連はどちらを使えばよいですか?
A. 表現の好みや可読性次第ですが、付加ノードは図がシンプルになりやすく、試験問題でも階層を明示するために使われることが多いです。自己関連も意味的には同等に階層を表せますが、総称化(継承)と混在させると解釈が難しくなることがあります。
A. 表現の好みや可読性次第ですが、付加ノードは図がシンプルになりやすく、試験問題でも階層を明示するために使われることが多いです。自己関連も意味的には同等に階層を表せますが、総称化(継承)と混在させると解釈が難しくなることがあります。
Q. 総称化(上位組織/末端組織)は階層の表現にならないのですか?
A. 総称化はクラスの「型(カテゴリー)」を示すもので、インスタンス間の親子関係(組織Aが組織Bの子である)を直接示すものではありません。設問で「階層構造をもつ組織」を求める場合、インスタンス間の親子を表す自己関連や付加ノードが適切です。
A. 総称化はクラスの「型(カテゴリー)」を示すもので、インスタンス間の親子関係(組織Aが組織Bの子である)を直接示すものではありません。設問で「階層構造をもつ組織」を求める場合、インスタンス間の親子を表す自己関連や付加ノードが適切です。
関連キーワード: UML、多重度、自己関連、付加ノード、総称化、所属、階層表現

\ せっかくなら /
データベーススペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

