PMプロジェクトマネージャ試験 午前Ⅰ

平成23年度特別 プロジェクトマネージャ 午前Ⅰ 問15

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

図は“顧客が商品を注文する”を表現したUMLのクラス図である。“顧客が複数の商品をまとめて注文する”を表現したクラス図はどれか。ここで、“注文明細”は一つの注文に含まれる1種類の商品に対応し、“注文ヘッダ”は複数の“注文明細”を束ねた一つの注文に対応する。
顧客、注文及び商品のUMLクラス図と凡例。
顧客、注文及び商品のUMLクラス図と凡例。
選択肢アのUMLクラス図。
選択肢アのUMLクラス図。
選択肢イのUMLクラス図。
選択肢イのUMLクラス図。
選択肢ウのUMLクラス図。
選択肢ウのUMLクラス図。
選択肢エのUMLクラス図。
選択肢エのUMLクラス図。

選択肢

  1. ア
    図中のア
  2. イ
    図中のイ
  3. ウ
    図中のウ
  4. エ
    図中のエ
解き方のヒントを見る

関連線の読む向きを一つずつ確かめる

クラス間の関連を検討するときは、線の両端に付く情報がどちらのクラスから見た内容なのかを、自分で文章にして確かめることが大切です。向きを取り違えると、同じ関連でも意味が逆に読めてしまうので注意しましょう。

この問題で問われていること

この問題で意識したいのは、関連の端ごとに示された数や記号を『あるクラスの一つのインスタンスから見て、相手がいくつ対応するか』という形の文に置き換え、両方向から読み直して矛盾がないかを確かめる観点です。

視点

関連は二つのクラスを結ぶ一本の線ですが、意味は『AからBを見た場合』と『BからAを見た場合』の二方向で成り立ちます。端に書かれた情報がどちら向きの読み方に対応するのかを、学習した定義に照らして自分で確認してから、問われている内容と照合する姿勢が役立ちます。記号の見た目だけで判断せず、必ず日本語の文に言い換えてから比べると、読み違いに気付きやすくなります。

確認ポイント

  • 関連の端に付いた情報が、どちらのクラスを起点にした読み方なのかを定義に基づいて説明できるか
  • 一方向から読んだ文と、逆方向から読んだ文の両方を書き出し、互いに矛盾していないか
  • 問われている業務上の条件を文に直したとき、どちらの向きの読み方と対応させるべきかを取り違えていないか
正解と解説を見る

正解

ア

解説

正解はアです。顧客1人に対して注文ヘッダが0個以上あり、注文ヘッダ1個が1個以上の注文明細をコンポジションで束ねています。さらに、各注文明細が1種類の商品に対応しており、問題文の定義と一致します。

理由

元の図では、顧客1人に対して注文が0以上、商品1種類に対して注文が0以上です。つまり、一つの注文には1種類の商品しか対応しません。複数の商品をまとめて注文できるようにするには、注文を注文ヘッダと注文明細に分けます。注文ヘッダ1個が注文明細1..*をコンポジションで束ね、各注文明細を商品1種類と0..*対1で関連付けます。顧客は注文単位である注文ヘッダと1対0..*で関連させます。アはこの構造になっています。

比較

イとエは、ひし形が注文明細の側に付いています。そのため、注文明細が全体で注文ヘッダが部分という関係になり、束ねる向きが逆です。ウとエは、商品が注文ヘッダと0..*対1で関連しているため、一つの注文に1種類の商品しか対応しません。また、顧客が注文明細と直接関連しています。ひし形の向きと商品との関連の両方が定義と合うのはアだけです。

選択肢ア(正解)

これは正解だよ。顧客1対注文ヘッダ0..*なので、顧客は複数の注文を出せる。ひし形は注文ヘッダ側にあり、注文ヘッダ1に対して注文明細1..*がコンポジションで含まれる。つまり、一つの注文が1件以上の明細を束ねる。さらに注文明細0..*対商品1なので、各明細は1種類の商品に対応する。問題文の定義どおりの構造だ。

選択肢イ

これは不正解だよ。顧客と注文ヘッダ、注文明細と商品の関連はアと同じだ。しかし、ひし形が注文明細側に付き、注文明細の端が1、注文ヘッダの端が1..*になっている。これでは、1個の注文明細が全体として1個以上の注文ヘッダを部分に含むことになる。注文ヘッダが複数の注文明細を束ねるという定義と、全体・部分の向きが逆だ。

選択肢ウ

これは不正解だよ。ひし形は注文ヘッダ側にあり、注文ヘッダ1対注文明細1..*という全体・部分の向きは正しい。しかし、商品が注文ヘッダと0..*対1で関連しているため、一つの注文に1種類の商品しか対応しない。これは、注文明細が1種類の商品に対応するという定義に反する。また、顧客が注文単位の注文ヘッダではなく、注文明細と関連している。

選択肢エ

これは不正解だよ。ウと同じく、商品が注文ヘッダと0..*対1で関連し、顧客が注文明細と関連している。さらに、ひし形が注文明細側に付き、注文明細1が注文ヘッダ1..*を含む形なので、全体・部分の向きも逆だ。商品との対応と、明細を束ねる向きの両方が問題文の定義と合わない。

学習のポイント

コンポジションのひし形の位置で全体と部分を判断し、商品と関連付けるクラスを問題文の定義から特定することが要点です。

出典:独立行政法人 情報処理推進機構(IPA)平成23年度特別 プロジェクトマネージャ試験 午前Ⅰ 問15(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針