(Translated by https://www.hiragana.jp/)
Meta-Object Facility - Wikipedia コンテンツにスキップ

Meta-Object Facility

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
Meta-Object Facility の階層かいそう概念がいねん

Meta-Object FacilityMOF)とは、OMGさだめたモデル駆動くどう工学こうがくのための標準ひょうじゅん規格きかくである。公式こうしきページは OMG's MetaObject Facility[※ 1]

概要がいよう

[編集へんしゅう]

MOFは統一とういつモデリング言語げんご (UML) を起源きげんとしている。OMGがUMLの標準ひょうじゅんおこなったさいに、モデルの厳密げんみつ定義ていぎおこな手段しゅだんとして、MOFを導入どうにゅうした。MOFは4階層かいそうのアーキテクチャとして設計せっけいされている。理解りかい容易よういにするために、M1そうより説明せつめいしよう。M1そう定義ていぎされるモデルは、通常つうじょうのUMLモデルなど、普通ふつうにソフトウェアの設計せっけいとうもちいられるモデルである。UMLのクラスなどがここにふくまれる。その下位かいたるM0 そうは、M1そうのインスタンスである。M1そうのUMLクラスから実行じっこう生成せいせいされる個々ここのインスタンスとうがこれに該当がいとうする。上位じょういのM2そうは、「UML 自身じしん構造こうぞう定義ていぎ」がふくまれる(このM2そうしてメタモデルぶことがおおい)。たとえば、UMLのクラスには複数ふくすうのフィールドやメソッドがあり、クラスあいだには様々さまざま種類しゅるいのリレーション(アソシエーションやアグリゲーションとう)が存在そんざいしている。これらは「UML自身じしん構造こうぞう」の一部いちぶである。M2そうもちいることで、このようなUMLモデルの構造こうぞう厳密げんみつ定義ていぎおこなうことが可能かのうになる。さらに、MOFの導入どうにゅうにより、OMGはUML以外いがいの(CWMSysMLひとし)のモデルを定義ていぎする手段しゅだんれることにもなった。さい上位じょういのM3そうは、メタ-メタモデルとばれ、(UMLではなく)MOF自身じしん構造こうぞう定義ていぎする。

MOFとUMLはているため、MOFメタモデルは通常つうじょうUMLのクラスとしてモデルされる。MOFをサポートする標準ひょうじゅんとしてXMIがある。XMIをもちいて、M3/M2/M1そうのモデルをXMLベースの形式けいしき交換こうかんすることが可能かのうとなる。さらにMOFでは、モデルやメタモデルを生成せいせい操作そうさする手段しゅだんとしてJava言語げんごインタフェースJMI定義ていぎしている(MOF1.4までは、CORBA IDL インターフェイスも定義ていぎされていたが、MOF2.0からは削除さくじょされた)。

MOFは「じた」メタモデリング・アーキテクチャである。なぜならば、M3モデルはM3モデル自身じしん定義ていぎされており、M3そう定義ていぎするために外部がいぶ定義ていぎ必要ひつようとしないからである。また、MOFは「厳密げんみつな」メタモデリング・アーキテクチャでもある。各層かくそうかくモデル要素ようそ上位じょういそうのモデル定義ていぎ厳密げんみつ対応たいおうしている。MOFは、言語げんごやデータの構造こうぞう抽象ちゅうしょう構文こうぶん定義ていぎする手段しゅだん提供ていきょうする。メタモデル定義ていぎにおいてMOFがたす役割やくわりは、プログラミング言語げんご構文こうぶん定義ていぎにおいてEBNFたす役割やくわりまったおなじである。MOFはメタモデル定義ていぎのためのドメイン固有こゆう言語げんご (DSL) ととらえることができ、これはちょうどEBNFが構文こうぶん定義ていぎのためのDSLであるのとおなじである。EBNFと同様どうよう、MOFはMOF自身じしん定義ていぎできる(これがM3そう定義ていぎとなる)。

MOFはオブジェクト指向しこうでなじみのあるクラスをもちいて構造こうぞう定義ていぎする(ただし、ここでもちいるクラス MOF::Classes であり、UML でもちいるUML::Classes とは厳密げんみつにはことなる)。これによりメタレベルにおける概念がいねん(モデル要素ようそ)とその構造こうぞう定義ていぎする。しかし、MOFで定義ていぎされるモデルがUMLのようなオブジェクト指向しこうがたのメタモデルに限定げんていされるわけではない。オブジェクト指向しこうがたでないメタモデルも定義ていぎ可能かのうである(たとえば、関係かんけいモデルペトリネットWebサービスのメタモデルなど)。

2008ねん2がつ現在げんざい、OMG は2種類しゅるいの MOF を定義ていぎしている:

  • EMOF: Essential MOF(基本きほんMOF)
  • CMOF: Complete MOF(完全かんぜんMOF)

ECoreという派生はせい仕様しようEclipse Modeling Framework定義ていぎされているが、これはほぼOMGのEMOFに相当そうとうする。

関連かんれん仕様しようとしてOCLがある。これは述語じゅつご論理ろんり使用しようしてモデルの制限せいげん問合といあわせを定義ていぎする形式けいしき言語げんご仕様しようである。

また、重要じゅうようあらたな標準ひょうじゅんとしてQVTがある。これはOCLの拡張かくちょうであり、MOFベースのモデルの変換へんかん方法ほうほう記述きじゅつする手段しゅだん提供ていきょうするものである。(モデル変換へんかん言語げんご参照さんしょう)。

MOFは国際こくさい標準ひょうじゅん規格きかくとなっている:

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

注釈ちゅうしゃく

[編集へんしゅう]

参考さんこう文献ぶんけん

[編集へんしゅう]

関連かんれん項目こうもく

[編集へんしゅう]

外部がいぶリンク

[編集へんしゅう]