システム監査技術者 2025年 午前2 問21
問題文
データモデルを解釈してオブジェクト図を作成した。解釈の誤りを適切に指摘した記述はどれか。ここで、モデルの表記にはUMLを用い、オブジェクト図の一部の属性の表示は省略した。

選択肢
ア:“123456:注文”が複数の商品にリンクしているのは、誤りである。(正解)
イ:“2ドア冷蔵庫:商品”が複数の注文にリンクしているのは、誤りである。
ウ:“A商店:顧客”が複数の注文にリンクしているのは、誤りである。
エ:“ドラム式洗濯機:商品”がどの注文にもリンクしていないのは、誤りである。
🔒 解説は解答すると表示されます
UML多重度とオブジェクト図【午前2解説】
正解の理由
データモデルの「注文」と「商品」の間では、注文側に「*」、商品側に「1」が示されています。これは、1つの商品は複数の注文に関連付けられる一方、1つの注文に関連付けられる商品は1つという意味です。
ところが、オブジェクト図では「123456:注文」が「47型テレビ:商品」と「2ドア冷蔵庫:商品」の2つの商品にリンクしています。これはデータモデルの多重度に反するため、誤りです。したがって、適切な指摘はアです。
解法ステップ
-
関連の両端に記された多重度を確認します。
多重度は、反対側のオブジェクト1つに対して、何個のオブジェクトが関連付くかを表します。 -
「顧客」と「注文」の関係を読み取ります。
顧客側が「1」、注文側が「*」なので、1人の顧客は複数の注文を持てます。一方、各注文は1人の顧客に関連付けられます。 -
「注文」と「商品」の関係を読み取ります。
注文側が「*」、商品側が「1」なので、1つの商品は複数の注文から参照されることがあります。一方、各注文に関連付けられる商品は1つです。 -
オブジェクト図のリンクを照合します。
「123456:注文」だけが複数の商品にリンクしており、多重度に反しています。
選択肢別の誤答解説
- ア:正しい指摘です。「123456:注文」が2つの商品にリンクしているため、誤りです。
- イ:「2ドア冷蔵庫:商品」が複数の注文にリンクしていますが、1つの商品が複数の注文から参照されるのは許されています。
- ウ:「A商店:顧客」が複数の注文にリンクしていますが、1人の顧客が複数の注文を持つことは許されています。
- エ:「ドラム式洗濯機:商品」にリンクがありませんが、商品がどの注文からも参照されない場合があっても、多重度に反しません。
よくある誤解
- 多重度の数字を、その端のオブジェクトの個数だと考えること
端にある「1」や「*」は、反対側のオブジェクト1つに対して関連付く個数を示します。 - 「*」を必ず1個以上と解釈すること
UMLの「*」は通常「0個以上」を表すため、リンクがないオブジェクトがあっても直ちに誤りとはなりません。 - 商品が複数の注文に登場することも誤りだと考えること
このモデルでは、1つの商品が複数の注文に関連付くことができます。制約されているのは、各注文に関連付く商品が1つである点です。
補足コラム
UMLの関連端に示された多重度は、オブジェクト図では実際のオブジェクト間のリンク数として確認できます。「注文」と「商品」のように、どちらの端に「1」や「*」があるかを見誤ると、リンクの正誤を逆に判断しやすくなります。まず関連の両端を確認し、反対側のオブジェクト1つあたりの個数として読み取るのがポイントです。
FAQ
Q. 商品にリンクが1本もなくてもよいのですか?
A. はい。このモデルでは、1つの商品に対して注文が0個以上関連付くことができます。そのため、注文に使われていない商品があっても問題ありません。
A. はい。このモデルでは、1つの商品に対して注文が0個以上関連付くことができます。そのため、注文に使われていない商品があっても問題ありません。
Q. 「123456:注文」が2つの商品にリンクしていることが問題なのはなぜですか?
A. 注文側の多重度が「*」であることは、1つの商品が複数の注文に関連付くことを示します。一方、商品側の多重度が「1」なので、1つの注文に関連付けられる商品は1つです。
A. 注文側の多重度が「*」であることは、1つの商品が複数の注文に関連付くことを示します。一方、商品側の多重度が「1」なので、1つの注文に関連付けられる商品は1つです。
関連キーワード: UML、多重度、オブジェクト図、関連、リンク

\ せっかくなら /
システム監査技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

