Meta-Object Facility

Meta-Object Facility (MOF) とは



Meta-Object Facility(MOF)は、[Object Management Group]](OMG)によって標準化された、モデル駆動工学(Model-Driven Engineering, MDE)のための重要な規格です。モデルの厳密な定義と操作を可能にするメタモデリングアーキテクチャを提供します。OMGの公式ページは[OMG's MetaObject Facilityです。

MOFの概要



MOFは、統一モデリング言語(UML)を起源としています。OMGがUMLの標準化を進める中で、モデルの正確な定義を行うための手段としてMOFが導入されました。MOFは4層のアーキテクチャで構成されており、それぞれの層が異なる抽象レベルのモデルを扱います。

MOFの階層構造


理解を深めるために、一番下のM1層から説明します。

M1層: ここでは、通常のUMLモデルなど、ソフトウェア設計で一般的に使用されるモデルが定義されます。UMLのクラスやインターフェースなどがこれに該当します。
M0層: M1層で定義されたモデルのインスタンスがM0層に相当します。例えば、UMLクラスから実行時に生成されるオブジェクトなどが含まれます。
M2層: 「UML自身の構造の定義」がここで行われます。これはメタモデルと呼ばれることも多く、UMLのクラスが持つ属性やメソッド、クラス間の関係性(アソシエーションやアグリゲーションなど)の定義を含みます。M2層を使用することで、UMLモデルの構造を厳密に記述できます。
M3層: 最上位のM3層はメタ-メタモデルと呼ばれ、MOF自身の構造を定義します。つまり、MOFを使ってMOF自身を定義するのです。

MOFの役割と特徴


MOFの導入により、OMGはUMLだけでなく、CWMやSysMLといった他のモデルも定義できるようになりました。MOFは「閉じた」メタモデリングアーキテクチャであり、M3モデルがM3モデル自身で定義されるため、外部の定義を必要としません。また、「厳密な」メタモデリングアーキテクチャでもあり、各層のモデル要素は上位層のモデル定義に正確に対応します。

MOFは、言語やデータの構造の抽象構文を定義する手段を提供します。これは、プログラミング言語の構文定義における拡張バッカス・ナウア記法(EBNF)の役割と似ています。MOFはメタモデル定義のためのドメイン固有言語(DSL)として捉えることができ、EBNFが構文定義のためのDSLであるのと同様です。

MOFは、オブジェクト指向のクラスを用いて構造を定義しますが、ここで用いるクラスは`MOF::Classes`であり、UMLの`UML::Classes`とは異なります。これにより、メタレベルでの概念とその構造を定義します。しかし、MOFで定義されるモデルはUMLのようなオブジェクト指向型に限定されず、リレーショナルモデルやペトリネットなどのメタモデルも定義できます。

MOFの関連仕様



2008年2月現在、OMGは2種類のMOFを定義しています。

EMOF (Essential MOF): 基本的なMOF。
CMOF (Complete MOF): より完全なMOF。

また、Eclipse Modeling Framework (EMF) で定義されているECoreという派生仕様は、ほぼOMGのEMOFに相当します。

その他の関連仕様として、モデルの制約やクエリを定義するための形式言語であるOCL(Object Constraint Language)があります。さらに、MOFベースのモデル変換を記述するQVT(Query/View/Transformation)も重要な標準です。

MOFの国際標準規格



MOFは以下の国際標準規格として規定されています。

ISO/IEC 19502:2005:Information technology -- Meta Object Facility (MOF)

技術的詳細



MOFをサポートする標準としてXML Metadata Interchange (XMI) があります。XMIを使用することで、M3/M2/M1層のモデルをXMLベースの形式で交換できます。さらに、MOFでは、モデルやメタモデルの生成・操作手段としてJava言語インターフェースであるJMI(Java Metadata Interface)を定義しています。かつてはCORBA IDLインターフェースも定義されていましたが、MOF2.0以降では削除されています。

参考文献



以下に、MOFに関する参考文献をいくつか示します。

Ralph Sobek, MOF Specifications Documents
Jean Bezivin, "On the Unification Power of Models," Software and System Modeling (SoSym) 4(2):171--188.
Johannes Ernst, "What is meta-modeling?"
Johannes Ernst, "What are the differences between a vocabulary, a taxonomy, a thesaurus, an ontology, and a meta-model?"
Anna Gerber and Kerry Raymond, "MOF to EMF and Back Again."

関連項目



メタモデル
ドメイン固有言語
モデル駆動型アーキテクチャ
モデル駆動工学
統一モデリング言語
CWM
XMI
QVT
プラットフォーム独立モデル (PIM)
プラットフォーム特化モデル (PSM)
メタデータ

外部リンク



Object Management Group
* OMG's MetaObject Facility

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。