前回は、UMLとJavaのマッピングを考えるうえで必要な、オブジェクト指向開発プロセスの中でのUMLとJavaの位置付けを整理しました。今回は設計モデルにおける静的モデルについて説明しましょう。
UMLの持つ9つの図を静的・動的、論理的・物理的という2つの観点から分類すると、図1のようになります。静的モデルは、この図中の静的・論理的に対応しますから、クラス図とオブジェクト図が今回のテーマの対象となります。
クラス図は、クラスとクラス間の関係を示すリレーションシップによって構成される図です。クラスは、同じ性質を持ったオブジェクトの集まりを抽象化したモデル要素、リレーションシップはクラスとクラスの間の関係を抽象化したモデル要素です。クラス図は、クラスとリレーションシップを部品として、オブジェクトの集まりとこれらのオブジェクト間の関係によって構成されるシステム構造を抽象的なモデルとして表現した図です。それに対してオブジェクト図は、クラス図で表現されたモデルの実行時のスナップショットという位置付けになっています。
クラス図とオブジェクト図の関係の例を、図2に示します。この図では上段にクラス図を、またこのクラス図を実体化したものをオブジェクト図として下段に記述しています。
クラス図では、自動車クラス、人クラス、エンジンクラス、座席クラス、タイヤクラスの関係がアソシエーションとして記述されています。1つの自動車クラスに対して、1つのエンジンクラス、5つの座席クラス、4つのタイヤクラス、0以上5以下の人クラスが関連付けられています。
これに対してオブジェクト図では、実際に生成されるオブジェクトが具体的に記述されています。オブジェクトが実際に使用される個数分明記されていることと、クラス図で可変となっていたオブジェクトの個数が明確になっています。この図の場合では、人オブジェクト(人クラスのインスタンスオブジェクト)が2つになっています。
この例からも分かるように、クラス図とJavaプログラムの関係さえ明らかになれば、オブジェクト図とJavaオブジェクトの関係もおのずと明らかになってきます。つまり、Javaプログラムの実行時に現れるオブジェクト構造がそのままオブジェクト図に対応するわけです。前回述べたように、クラス図が静的モデルの基本となる図であり、UMLとJavaのマッピングを調べる場合には、クラス図とJavaの関係さえ押さえておけば十分ということです。
Copyright © ITmedia, Inc. All Rights Reserved.