めざせ合格!UMTP-L2レベル認定への道
L1にチャレンジ
まずはL1試験にチャレンジです。L1試験は、L1-T1(基礎知識)とL1-T2(モデリング初級)の2つの試験にわかれています。
L1-T1はオブジェクト指向の基本知識を問う問題です。解答方法は選択式です。図2に示した問題1を解いていましょう。
L1-T2はモデリング初級であり、モデリングを行う最低限の知識を問う問題です。解答方式は選択式です。ここで言うモデリングを行う最低限の知識とは、簡単なUMLモデルを見て、その意味を理解できるかを問う問題と考えください。図2の問題2を解いてみましょう。
解説と解法!
まずL1-T1の例題である問題1について解説しましょう。
多重度の理解を問う問題です。部署から見てコピー機は1台以上存在するためにコピー機側に1..*を、コピー機から見て配置される部署は1つもしくは2つ存在するために部署側に1..2を付与します。
多重度は一見簡単そうですが、よく間違えやすいので注意が必要です。多重度はオブジェクト数の対応関係を示したものですが、単なる「何対何」を示すものではありません。多重度は片方の概念のインスタンスが1つ存在したときに、その1つのインスタンスに対応する相手のインスタンスがいくつ存在する可能性があるかを示すものです。
この場合、ある具体的な1つの部署「人事部」が存在した場合、その人事部に対応する「コピー機」がいくつ存在するかを考え、「コピー機」側に多重度を付与します。この場合は1台以上なので、1..*ですね。今度は反対に、ある具体的な1つのコピー機が存在した場合、そのコピー機に対応する「部署」がいくつ存在するかを考え、「人事部」側に多重度を付与します。この場合はいくつでしょうか。コピー機は必ずどこかの部署に配置されるので1ですが、2つの部署に共有されることもあるので、2もありえます。その可能性を1..2と表現します。
このように多重度を考えるときは片方のインスタンスを1つ固定した場合、相手のインスタンスがいくつ存在しうるかを考えて付与してください。
次はL1試験科目T2(L1-T2)の例題である問題2について解説します。
宿泊客はダブル、キング、デラックスの中から部屋を1つ選択できます。部屋は1名から利用でき、最大2名まで利用可能ですので、部屋から見た宿泊客の多重度は1..2となります。宿泊客1人ごとに朝食が付くため、朝食は宿泊客と関係を持ち、その多重度は宿泊客から見て朝食が1、朝食1から見て宿泊客も1になります。夕食については付けることも付けないこともできるので、宿泊客から見て夕食は0..1、夕食1から見た宿泊客は1となります。
問題文で、度々登場する「種類を表す文章」があればそこで「汎化関係」か「集約関係」なのかを判断させることがほとんどです。集約であれば概念間には「全体-部分」(Part-Of)の関係があり、汎化であれば概念間には「~は・・・である」(Is-A)の関係があります。
それを理解していれば、今回のような「部屋にはダブル、キング、デラックスがある」という状況から判断して、部屋とダブル、キング、デラックスとの関係は汎化が適切であることがわかります。結果(a)が間違いであることがわかります。特に(c)の場合はすべての種類を選択することが可能になるために間違いであるのは明らかですね。
残った(b)と(d)の違いは、宿泊客と朝食の多重度です。問題文では、「宿泊客1人ごとに朝食が付く」と記述されており、宿泊客1人から見た朝食の多重度は厳密に1になります(多重度は1でも1人ごとに1であるため、2人であれば2つ付くということです)。そのため(d)は間違いとなり、正解は(b)となるのです。
このように正しいモデルを選択させる問題の時は消去法で正解を選び出すよう心がけてみてください。