応用情報技術者試験 科目A 無料問題 5 / 10 ・ 分野4: 開発技術
人事システムのクラス図に、次の関連と多重度が描かれている。 ・部署と社員の関連: 部署の側に 0..1、社員の側に 0.. ・社員とプロジェクトの関連: 社員の側に 1..、プロジェクトの側に 0.. ・プロジェクトと顧客の関連: プロジェクトの側に 0..、顧客の側に 1 このクラス図に反するデータの状態はどれか。
- 所属する社員が0人の部署が登録されている
- 所属する部署が空欄のままの社員が登録されている
- 1社の顧客が、同じ月に3件のプロジェクトを発注している
- 1人の社員が、営業部と企画部に兼務で所属している
正解と解説を見る
正解: D
正解の理由
多重度は、関連の相手の側に書き、「こちらの1つに、相手がいくつ結び付くか」を表す。部署の側の 0..1 は、1人の社員に結び付く部署が0か1、つまり所属は多くても1つであることを表す。営業部と企画部の兼務は、業務ではよくある状態だが、1人の社員に部署が2つ結び付くので、このクラス図に反する。兼務を表したいなら、部署の側の多重度を 0.. にするか、所属を別のクラスに分けて期間や主従を持たせる。
違う選択肢
「所属する部署が空欄のままの社員が登録されている」… 業務では変に見えるが、部署の側の 0..1 は下限が0なので、どこにも所属していない社員を許す。入社直後の研修中の社員などを表せるようにした設計で、クラス図には反しない。
「所属する社員が0人の部署が登録されている」… 社員の側の 0.. は、1つの部署に結び付く社員が0人以上であることを表す。新設したばかりで配属のまだ無い部署も許されるので、クラス図には反しない。
「1社の顧客が、同じ月に3件のプロジェクトを発注している」… 顧客の側の 1 は、1件のプロジェクトに結び付く顧客がちょうど1社であることを表す。1社の顧客に結び付くプロジェクトの数はプロジェクトの側の 0.. で決まり、3件でも許される。向きを逆に読むと「顧客1社にプロジェクト1件」と取り違える。
業務の感覚と多重度を分けて読む
多重度の問題では、業務として自然かどうかではなく、書かれた下限と上限だけで判定する。0..1 は「任意で、多くても1つ」、1 は「ちょうど1つ」、1.. は「1つ以上」、0.. は「任意で上限なし」である。業務でありふれた状態(兼務・複数の発注)ほど、モデルが許しているかを確かめ、許していなければ要件の漏れとしてクラス図を直す。