モデル駆動型アーキテクチャ
MDAツールは、モデルやメタモデルの開発・翻訳・比較・調整・計測・検証・変換などに使われる。以下では、モデルもメタモデルも総称して「モデル」と表記する。MDAには基本的に2種類のモデルがある。「初期モデル; initial model」は主に人間が手動で作成するものであり、「導出モデル; derived model」はプログラムによって自動的に生成されるものである。例えば、アナリストがビジネスの現状を観察してUMLの初期モデルを作成し、そのUMLモデルにモデル変換を施して自動的に Java モデルを生成する。
MDAツールは以下の種類に分類される。
作成ツール: 初期モデルの作成や導出モデルの編集のためのツール。
解析ツール: モデルの完全性・無矛盾性・エラー/警告条件などを検証するツール。モデルの統計情報の計算にも使われる。
変換ツール: モデルを別のモデルやコードや文書に変換するツール。
合成ツール: 通常同じメタモデルに従った複数のモデルを合成するツール。
評価ツール: モデルベーステストのようにモデルを評価するツール。
シミュレーションツール: あるモデルで表されるシステムに実行をシミュレートするツール。
メタデータ管理ツール: 各モデル内のメタデータ(作者名、作成日、更新日、使用したツールなど)やモデル間の相互関係(モデル変換の変換元と変換結果の関係やメタモデルのバージョンの関係など)を扱うツール。
リバースエンジニアリングツール: 古い情報システムをMDAで扱えるようモデルに変換するツール。
ツールによってはこれらの機能を複数備えている。