メタモデル
ソフトウェア工学においては、モデルの利用がますます推奨されるようになっている。モデルの使用は従来のコードをベースとした開発技法とは対照的である。あるモデルは常に1つのメタモデルにしたがっている。モデル駆動工学の中でも特に活発なのがOMGが提案するモデル駆動型アーキテクチャ (MDA) である。MDAでは Meta-Object Facility (MOF) と呼ばれる言語でメタモデルを記述する。OMGが提案している典型的なメタモデルは、UML、SysML、SPEM、CWM である。ISOでも、ISO/IEC 24744で標準メタモデルを公開している。後述する各種言語も全てMOFで書かれたメタモデルとして定義される。
計算機科学などでは、メタモデリングとはある領域内でのコンセプトの集合を構築することである。モデルは実世界の現象の抽象化であり、メタモデルはそれをさらに抽象化し、モデル自身の属性を際立たせたものと言える。モデルがメタモデルに従うということは、コンピュータプログラムがプログラミング言語の文法に従うのと相似している。メタモデルの一般的な利用法には以下のものがある:
相互にやりとりしたり保持したりする意味論的データのスキーマをメタモデルと称する。
ある特定の手法や処理をサポートする言語をメタモデルと称する。
既存の情報の付加的な意味を表現する言語をメタモデルと称する。
広い範囲のモデルのクラスを扱うツールを生成する機構をメタモデルと称する。
ある言語の文を自動的に調査してモデリングするスキーマをメタモデルと称し、自動テスト合成に応用される。