メタモデル
出典: フリー百科事典『ウィキペディア(Wikipedia)』
メタモデル(Metamodel)とは、所定の問題領域でのモデリングに適用可能で有益なフレーム/規則/制限/モデル/理論を意味する。メタモデリング(Metamodeling)とは、メタモデルの分析/構築/開発を意味する。この用語はメタとモデルという用語の組み合わせである。
目次 |
[編集] 概要
メタモデリングは「メタ」であるが故に、その活動とメタモデルは、メタ科学、メタ哲学、メタ理論、一般システム理論などで研究されている。そういった意味ではTOGA metatheoryによればメタモデルはゴール指向のメタ知識であり、モデル化する領域(参照領域)に関連している。そのため、理論的に言えばメタモデリングの成果であるモデル階層をメタモデル階層と混同するかもしれない。
計算の観点では、この概念は数学で使われており、計算機科学/計算機工学/ソフトウェア工学で実用のために応用されている。本項目は主に後者の観点で述べている。
計算機科学などでは、メタモデリングとはある領域内でのコンセプトの集合を構築することである。モデルは実世界の現象の抽象化であり、メタモデルはそれをさらに抽象化し、モデル自身の属性を際立たせたものと言える。モデルがメタモデルに従うということは、プログラムがプログラミング言語の文法に従うのと相似している。メタモデルの一般的な利用法には以下のものがある:
- 相互にやりとりしたり保持したりする意味論的データのスキーマをメタモデルと称する。
- ある特定の手法や処理をサポートする言語をメタモデルと称する。
- 既存の情報に付加的な意味を表現する言語をメタモデルと称する。
[編集] 定義
以下では、モデル駆動工学に関連するメタモデリング手法の詳細な応用の観点で述べる。データ工学とソフトウェア工学では、モデルの使用が益々推奨されるようになっている。この方針は古典的なコード中心の開発技法とは対照的である。あるモデルは常に1つのメタモデルに従っている。モデル駆動工学で現在最も盛んな分野はOMGが提案するモデル駆動型アーキテクチャである。この手法は Meta-Object Facility (MOF) と呼ばれ、言語を使ってメタモデルを記述することに基づいている。OMG が提案している典型的なメタモデルは、UML、SysML、SPEM、CWM である。後述する各種言語も全て MOF のメタモデルとして定義される。
[編集] メタモデルの種類
ソフトウェア工学では、メタモデルの種類(および関連するメタモデリング手法)を以下のように分類できる:
- メタデータモデル
- メタプロセスモデル
- 実行可能メタモデル
- モデル変換言語
類似するメタモデルを集めたライブラリを「メタモデルの動物園; Zoo of meta-models」と呼んでいる論文もあるpaper。そのような動物園としてAtlanticZooがある。これらの一部は ECore で書かれている。その他はMOF 1.4 - XMI 1.2 で書かれている。
[編集] モデル変換
モデル駆動工学の重要な活動の1つはモデル変換言語の体系的利用である。OMG はこのための標準規格 QVT(Queries/Views/Transformations)を提案した。QVT は MOF に基づいている。モデル変換言語の中でも QVT に準拠した実装としては VIATRA、Tefkatなどがある。MOF/QVT においては、モデル変換自身もモデルである。このため、変換言語をメタモデルで定義できる。明確なメタモデルに基づいたモデル変換言語としては、ATL がある。
[編集] オントロジーとの関連
メタモデルはオントロジーと密接に関連している。どちらもコンセプト間の関係を記述したり分析したりするのに使われることが多い[Söderström2002]。
オントロジーは、対話領域や特定分野について語彙を利用するための文法を使って意味のあるものを表現する。文法は、オントロジー制御下の語彙内で文や表明やクエリが何を言おうとしているかを指定する。[Metamodel-b]
メタモデリングは、領域固有のモデル構築に関する説明/構成物/規則を明記したものと考えられる。特にこれはドメイン固有の表記法の形式化した仕様から構成される。典型的なメタモデルは(常に従うべき)厳密な規則群である。[Metamodel-a]。「正当なメタモデルはオントロジーでもあるが、全てのオントロジーが明確なメタモデルとしてモデル化されているわけではない」[Metamodel-b]。
[編集] 関連項目
- モデル駆動工学 (MDE)
- モデル駆動型アーキテクチャ (MDA)
- ドメイン固有言語 (DSL)
- ドメイン固有モデリング (DSM)
- ATL
- Eclipse (統合開発環境)
- VIATRA (Viatra)
- XML変換言語 (XML TL)
- 要求分析
- MOF Queries/Views/Transformations (MOF QVT)
- 変換言語
[編集] 参考文献
- [Booch1999] Booch, G., Rumbaugh, J., Jacobson, I. (1999). The Unified Modeling Language User Guide. Redwood City, CA: Addison Wesley Longman Publishing Co., Inc.
- [Gigch1991] J. P. van Gigch. System Design Modeling and Metamodeling. Plenum Press, New York, 1991
- [Bezivin2006] J. Bezivin. On the Unification Power of Models. Software and System Modeling (SoSym) 4(2):171--188. http://www.sciences.univ-nantes.fr/lina/atl/www/papers/OnTheUnificationPowerOfModels.pdf
- [Ernst2002] What is meta-modeling? http://www.metamodel.com/staticpages/index.php?page=20021010231056977 . 11.10.2002
- [Ernst2003] Johannes Ernst. What are the differences between a vocabulary, a taxonomy, a thesaurus, an ontology, and a meta-model? http://www.metamodel.com/article.php?story=20030115211223271 . 10.10.2002
- [Söderström2002] E. Söderström, B. Andersson, P. Johannesson, E. Perjons, and B. Wangler. Towards a Framework for Comparing Process Modelling Languages. Lecture Notes In Computer Science; Vol. 2348. Proceedings of the 14th International Conference on Advanced Information Systems Engineering. Pages: 600 – 611, 2002