令和7年度 秋期 午前Ⅱ 問21
システム開発技術
UMLに関する問題
データモデルを解釈してオブジェクト図を作成した。解釈の誤りを適切に指摘した記述はどれか。ここで,モデルの表記にはUMLを用い,オブジェクト図の一部の属性の表示は省略した。
データモデル(原典は図。UMLのクラス図。クラス名・属性と関連の多重度を書き写した):
[顧客] [注文] [商品] 顧客番号 注文番号 商品番号 顧客名 注文日 商品名 住所 注文数 価格 顧客 1 ――――― * 注文 * ――――― 1 商品
オブジェクト図(オブジェクト名は原典では下線付き):
オブジェクト A商店:顧客 B産業:顧客 123456:注文(注文日=2025-03-18,注文数=2) 123457:注文(注文日=2025-03-18,注文数=1) 123459:注文(注文日=2025-03-20,注文数=3) 47型テレビ:商品 2ドア冷蔵庫:商品 ドラム式洗濯機:商品 リンク A商店:顧客 ――― 123456:注文 A商店:顧客 ――― 123457:注文 B産業:顧客 ――― 123459:注文 123456:注文 ――― 47型テレビ:商品 123456:注文 ――― 2ドア冷蔵庫:商品 123457:注文 ――― 2ドア冷蔵庫:商品 123459:注文 ――― 2ドア冷蔵庫:商品 ドラム式洗濯機:商品 にはリンクなし
- ア“123456:注文”が複数の商品にリンクしているのは,誤りである。
- イ“2ドア冷蔵庫:商品”が複数の注文にリンクしているのは,誤りである。
- ウ“A商店:顧客”が複数の注文にリンクしているのは,誤りである。
- エ“ドラム式洗濯機:商品”がどの注文にもリンクしていないのは,誤りである。
答えと解説を見る
✓ これが正解ア“123456:注文”が複数の商品にリンクしているのは,誤りである。
解説
注文1件が結べる商品は1個なので、複数商品へのリンクは誤りです。
UMLのクラス図では、関連の両端に書く多重度が、相手側のオブジェクトにいくつ結び付くかを表します。見分ける軸は、どちらの端の数を読むかです。このデータモデルでは、注文と商品の関連のうち商品の側の端に1が書かれているので、注文1件が結び付く商品はちょうど1個です。ところがオブジェクト図では、123456の注文が47型テレビと2ドア冷蔵庫の二つの商品にリンクしており、この多重度に反します。一方、顧客と注文の関連でも注文と商品の関連でも、注文の側の端は*なので、一つの顧客が複数の注文を持つことも、一つの商品が複数の注文や0件の注文と結ばれることも許されます。相手の端に書かれた数を読む、と覚えると多重度の向きを取り違えません。
ほかの選択肢はなぜ違うのか
- イ“2ドア冷蔵庫:商品”が複数の注文にリン…:注文と商品の関連では、注文の側の端が*なので、一つの商品は何件の注文とも結ばれてかまいません。2ドア冷蔵庫が三つの注文とリンクしていても多重度に合っており、誤りではありません。
- ウ“A商店:顧客”が複数の注文にリンクして…:顧客と注文の関連では、注文の側の端が*なので、一つの顧客がいくつ注文を持ってもかまいません。A商店が二つの注文とリンクしているのはモデルどおりで、誤りではありません。
- エ“ドラム式洗濯機:商品”がどの注文にもリ…:商品から見た注文の端の*は0個以上を表すので、まだ一度も注文されていない商品があってもかまいません。ドラム式洗濯機がどの注文ともリンクしていないのは、モデルに反していません。
出典:令和7年度 秋期 システム監査技術者試験 午前Ⅱ 問21
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)