メタモデル
地図情報メタモデルの例。4種類の自己言及のあるメタオブジェクトを持つ。
メタモデル (Metamodel)とは、ソフトウェア工学 およびシステム工学 などにおいて、所定の問題領域でのモデリング に適用可能で有益なフレーム・規則・制限・モデル・理論を意味する。メタモデリング (Metamodeling)とは、メタモデルの分析・構築・開発を意味する。この用語はメタ とモデル という用語の組み合わせである。
メタモデリングは「メタ」であるが故に、その活動とメタモデルは、メタ科学、メタ哲学、メタ理論、一般システム理論 などで研究されている。そういった意味ではTOGA metatheory [ リンク切れ ] によればメタモデル はゴール指向のメタ知識 であり、モデル化する領域(参照領域)に関連している。そのため、理論的に言えばメタモデリングの成果であるモデル階層をメタモデル階層と混同するかもしれない。
計算の観点では、この概念は数学 で使われており、計算機科学 /計算機工学 /ソフトウェア工学 で実用のために応用されている。本項目は主に後者の観点で述べている。
概要
計算機科学 などでは、メタモデリング とはある領域内でのコンセプトの集合を構築することである。モデル は実世界の現象の抽象化であり、メタモデルはそれをさらに抽象化し、モデル自身の属性を際立たせたものと言える。モデルがメタモデルに従うということは、コンピュータプログラム がプログラミング言語 の文法に従うのと相似している。メタモデルの一般的な利用法には以下のものがある:
相互にやりとりしたり保持したりする意味論 的データのスキーマ をメタモデルと称する。
ある特定の手法や処理をサポートする言語をメタモデルと称する。
既存の情報の付加的な意味を表現する言語をメタモデルと称する。
広い範囲のモデルのクラスを扱うツールを生成する機構をメタモデルと称する。
ある言語の文を自動的に調査してモデリングするスキーマをメタモデルと称し、自動テスト合成に応用される。
モデル変換
モデル駆動工学 の重要な活動の1つはモデル変換言語 の体系的利用である。OMGはこのための標準規格QVT (Queries/Views/Transformations)を提案した。QVTはMOFに基づいている。モデル変換言語の中でもQVTに準拠した実装としては AndroMDA、VIATRA 、Tefkat 、ManyDesigns Portofino などがある。MOF/QVTにおいては、モデル変換自身もモデルである。このため、変換言語をメタモデルで定義できる。明確なメタモデルに基づいたモデル変換言語としては、ATL がある。
オントロジーとの関連
メタモデルはオントロジー と密接に関連している。どちらもコンセプト間の関係を記述したり分析したりするのに使われることが多い。
オントロジー は、議論領域 や特定分野について語彙を利用するための文法を使って意味のあるものを表現する。文法は、オントロジー制御下の語彙内で文や表明やクエリが何を言おうとしているかを指定する。
メタモデリング は、領域固有のモデル構築に関する説明/構成物/規則を明記したものと考えられる。特にこれはドメイン固有の表記法の形式化した仕様から構成される。典型的なメタモデルは(常に従うべき)厳密な規則群である。「正当なメタモデルはオントロジーでもあるが、全てのオントロジーが明確なメタモデルとしてモデル化されているわけではない」。
メタモデルの種類
ソフトウェア工学では、メタモデルの種類(および関連するメタモデリング手法)を以下のように分類できる:
脚注
↑ David R. Soller et al. (2001) Progress Report on the National Geologic Map Database, Phase 3: An Online Database of Map Information Digital Mapping Techniques '01 -- Workshop Proceedings U.S. Geological Survey Open-File Report 01-223.
↑ FEA (2005) FEA Records Management Profile, Version 1.0 . December 15, 2005.
↑ International Organization for Standardization / International Electrotechnical Commission, 2007. ISO/IEC 24744 . Software Engineering - Metamodel for Development Methodologies.
↑ E. Söderström, et al. (2001) "Towards a Framework for Comparing Process Modelling Languages", in: Lecture Notes In Computer Science ; Vol. 2348. Proceedings of the 14th International Conference on Advanced Information Systems Engineering. Pages: 600 – 611, 2001
1 2 Pidcock, Woody (2003), What are the differences between a vocabulary, a taxonomy, a thesaurus, an ontology, and a meta-model? , http://infogrid.org/wiki/Reference/PidcockArticle
↑ Ernst, Johannes (2002), What is metamodeling, and what is it good for? , http://infogrid.org/trac/wiki/Reference/WhatIsMetaModeling
参考文献
ウィキメディア・コモンズには、
メタモデル に関連するカテゴリがあります。
J. Bezivin, On the Unification Power of Models [ リンク切れ ] , in: Software and System Modeling (SoSym) 4(2):171—188.
Booch, G., Rumbaugh, J., Jacobson, I. (1999), The Unified Modeling Language User Guide , Redwood City, CA: Addison Wesley Longman Publishing Co., Inc.
J. P. van Gigch, System Design Modeling and Metamodeling , Plenum Press, New York, 1991
Gopi Bulusu, hamara.in, 2004 Model Driven Transformation
P. C. Smolik, Mambo Metamodeling Environment , Doctoral Thesis, Brno University of Technology. 2006
Gonzalez-Perez, C. and B. Henderson-Sellers, 2008. Metamodelling for Software Engineering. Chichester (UK): Wiley. 210 p. ISBN 978-0-470-03036-3
M.A. Jeusfeld, M. Jarke, and J. Mylopoulos, 2009. Metamodeling for Method Engineering. Cambridge (USA): The MIT Press. 424 p. ISBN 978-0-262-10108-0
G. Caplat Modèles & Métamodèles , 2008 - ISBN 978-2-88074-749-7 (フランス語)