応用情報技術者試験 令和3年春 午前問29 解説付き過去問
問題
商品の注文を記録するクラス(顧客、商品、注文、注文明細)の構造を概念データモデルで表現する。
a~dに入れるべきクラス名の組合せはどれか。
ここで、顧客は何度も注文を行い、一度に一つ以上の商品を注文でき、注文明細はそれぞれ1種類の商品に対応している。
また、モデルの表記にはUMLを用いる。


正解
解説
この問題は、ビジネスにおける「顧客」「注文」「商品」「注文明細」という実体の関係を、UMLによる概念データモデルで適切に表現できるかを問うものです。問題文には各エンティティの関係性が明示されており、それらを正しく読み取る力が求められます。
- UMLによる概念データモデルの特徴
概念データモデルでは、業務上重要な実体(エンティティ)をクラスとして表現し、それらの間の関連(リレーション)を線で接続します。クラス間の多重度(1対1、1対多、多対1など)は、UMLの関連ラベルで明示されます。 - 問題文に示された条件の分析
問題文では、以下のような関係が示されています。
・顧客は何度も注文を行う → 顧客:注文=1対多
・1回の注文で1つ以上の商品を注文できる → 注文:注文明細=1対多
・各注文明細は1種類の商品に対応している → 注文明細:商品=多対1
これらの関係を正しくモデル化する必要があります。 - 正しいクラス配置の判断
以上の条件に基づいてモデルを確認すると、
・顧客 → 注文(1対多)
・注文 → 注文明細(1対多)
・注文明細 → 商品(多対1)
という構造が、適切なUMLクラス図として成立します。
したがって、a~dに入るクラス名の組合せとして正しいのは、顧客 → 注文 → 注文明細 → 商品の順で接続されたモデルです。この関係性を表す選択肢が正解となります。