メタモデル
From Wikipedia, the free encyclopedia
メタモデル(Metamodel)とは、ソフトウェア工学およびシステム工学などにおいて、所定の問題領域でのモデリングに適用可能で有益なフレーム・規則・制限・モデル・理論を意味する。メタモデリング(Metamodeling)とは、メタモデルの分析・構築・開発を意味する。この用語はメタとモデルという用語の組み合わせである。

メタモデリングは「メタ」であるが故に、その活動とメタモデルは、メタ科学、メタ哲学、メタ理論、一般システム理論などで研究されている。そういった意味ではTOGA metatheory[リンク切れ]によればメタモデルはゴール指向のメタ知識であり、モデル化する領域(参照領域)に関連している。そのため、理論的に言えばメタモデリングの成果であるモデル階層をメタモデル階層と混同するかもしれない。
計算の観点では、この概念は数学で使われており、計算機科学/計算機工学/ソフトウェア工学で実用のために応用されている。本項目は主に後者の観点で述べている。
概要
計算機科学などでは、メタモデリングとはある領域内でのコンセプトの集合を構築することである。モデルは実世界の現象の抽象化であり、メタモデルはそれをさらに抽象化し、モデル自身の属性を際立たせたものと言える。モデルがメタモデルに従うということは、コンピュータプログラムがプログラミング言語の文法に従うのと相似している。メタモデルの一般的な利用法には以下のものがある:
定義




ソフトウェア工学においては、モデルの利用がますます推奨されるようになっている。モデルの使用は従来のコードをベースとした開発技法とは対照的である。あるモデルは常に1つのメタモデルにしたがっている。モデル駆動工学の中でも特に活発なのがOMGが提案するモデル駆動型アーキテクチャ (MDA) である。MDAでは Meta-Object Facility (MOF) と呼ばれる言語でメタモデルを記述する。OMGが提案している典型的なメタモデルは、UML、SysML、SPEM、CWM である。ISOでも、ISO/IEC 24744で標準メタモデルを公開している[3]。後述する各種言語も全てMOFで書かれたメタモデルとして定義される。
メタデータモデリング
モデル変換
オントロジーとの関連
メタモデルの種類
ソフトウェア工学では、メタモデルの種類(および関連するメタモデリング手法)を以下のように分類できる:
- メタデータモデル
- メタプロセスモデル
- 実行可能メタモデル(上の2つを組み合わせたもの)
- モデル変換言語