UMLクラス図における関連の多重度導出

クラス間の関連において、端点に記述される多重度(Multiplicity)は、相手側の1つのインスタンスに対応するインスタンスの存在可能数を表します。 1. 社員側端点  a  の多重度:ある特定の「年」に対して何人の「社員」が入社するかを考えます。条件(2)「年によっては社員が入社しないこともある」より最小値は 0 であり、1年に複数人が入社することもあるため最大値は *(多)となります。よって a は 0..* となります。 2. 年側端点  b  の多重度:ある特定の「社員」に対して「入社年」がいくつ対応するかを考えます。条件(1)「全ての社員は入社年を特定できる」および「“年” クラスのインスタンスは毎年存在する」より、どの社員も入社年が必ず1つ決まり(0年や2つの年はあり得ない)、最小値・最大値ともに 1 となります。よって b は 1 となります。 したがって、 a  = 0..*、 b  = 1 である イ が正解です。 b が 0..1 となっていますが、全ての社員は入社年を必ず1つ特定できるため、0(入社年未定・なし)は許容されず、1 でなければなりません。 a が 1..* となっていますが、年によっては社員が入社しない年(0人)もあるため、最小値は 0 でなければなりません。 a が 1..* となっており、社員が1人も入社しない年を表現できません。

社員と年との対応関係を UML のクラス図で記述する。二つのクラス間の関連が次の条件を満たす場合,  a ,  b  に入れる多重度の適切な組合せはどれか。ここで, “年” クラスのインスタンスは毎年存在する。

〔条件〕

  1. (1)

    全ての社員は入社年を特定できる。

  2. (2)

    年によっては社員が入社しないこともある。

社員と年のUMLクラス図
出典2022r04a_db_am2_問2