応用情報技術者試験 平成30年秋 午前問26 解説付き過去問
問題
社員と年の対応関係をUMLのクラス図で記述する。
二つのクラス間の関連が次の条件を満たす場合、a、bに入れる多重度の適切な組合せはどれか。
ここで、"年"クラスのインスタンスは毎年存在する。
〔条件〕

〔条件〕
- 全ての社員は入社年を特定できる。
- 年によっては社員が入社しないこともある。

正解
解説
この問題は、UMLのクラス図における「社員」と「年」の関係を、指定された条件に基づいて正しい多重度で表現できるかを問うものです。
- UMLの多重度とは
UMLクラス図における「多重度」とは、あるクラスの1つのインスタンスが、関連先のクラスのインスタンスとどの程度の数で関係を持つかを表す指標です。
例えば「1」は常に1つだけを示し、「0..*」は0個以上任意の数のインスタンスと関連することを示します。 - aとbの意味
図中の a は「年(入社年)から見た社員の数」、b は「社員から見た年(入社年)の数」を表しています。
つまり、a は1つの「年」に対して対応する社員の数、b は1人の「社員」が対応する年の数を示すものです。 - 条件(1)の意味
「全ての社員は入社年を特定できる」という条件は、社員が必ず1つの「年」に対応することを意味します。したがって、社員から見た年の多重度(b)は「1」です。 - 条件(2)の意味
「年によっては社員が入社しないこともある」という条件は、ある年には1人も社員が入社しない可能性があるということです。これは、年から見た社員の多重度(a)が「0..*」であることを意味します。 - 適切な多重度の組合せ
以上を踏まえると、「年」から「社員」への多重度(a)は「0..*」、「社員」から「年」への多重度(b)は「1」となります。
この組合せを示す選択肢が正解です。画像による選択肢を確認したところ、該当するものは選択肢の中の「1」に対応します。
したがって、UMLクラス図において「社員」と「年」の関係を表す適切な多重度の組合せは、「年」→「社員」が「0..*」、「社員」→「年」が「1」であることが分かります。