UTI UML教育研究所
読み物
OCUPブログ
OCRESブログ
UMLコラムから学ぶ
スキル・キャリアコラム
プロジェクト導入事例
エキスパートインタビュー
資格取得までのステップ
FAQ
教育コンテンツ
キャンペーン
ブックプラス
パートナープログラム
認定ユーザープログラム
お問合わせ
OCUPブログ 第7回

本日は、メタモデルとモデル図の関係、そしてメタクラスについて議論していきましょう。

メタモデル、メタクラス
UMLは構造と振る舞いを持つ対象をモデル化する言語です。そして、UML自身も構造と振る舞いを持ちます。すなわち、UMLは自分自身をモデル化することができ、その自分自身のモデルのことをメタモデルと呼びます。個々のオブジェクトの集まりをクラスとしてまとめたように、個々のクラスをさらにまとめたものをメタクラスと呼びます。
「ミケ」や「タマ」などの個々の「猫」オブジェクトをすべて集めたものを「猫」クラスと呼ぶように、「猫」クラス、「犬」クラスなどモデル作成で使用するクラスをすべて集めたもの、つまりクラスのクラスをメタクラスと呼びます。

図2-1 メタモデリング
図2-1 メタモデリング


図2-1の例で示される様に、「人」クラスや「車」クラスは「Class」というメタクラスのインスタンスの関係になります。また注意を要する点として、モデル作成で使用される要素は、メタモデル化されるとすべてメタクラスとなります。
つまり、モデル作成で用いられる関連「所有する」は、メタモデルでは「Association(関連)」メタクラスとなります。そして、通常のモデル図の世界とメタモデル図の世界は別のレイヤー(層)として区別され、モデル作成を行うレイヤーのことをモデルレイヤー、メタモデルのレイヤーをメタモデルレイヤーと呼び、レイヤー間の個々の要素の関係はインスタンスの関係となります。(図2-1中の<<InstanceOf>>というステレオタイプで示された従属関係)