モデル駆動型アーキテクチャ
例えば作成ツールによっては変換や評価の機能も持っている。もちろん、作成のみのツール、グラフィカルな表現のためだけのツール、変換だけを行うツールなどもある。
MDAツールの特徴は、モデル(MOFモデルやメタモデル)を入力とし、別のモデルを出力する点である。ただし、文書とモデルとの変換ツールなどではMDAの範囲外のパラメータの入力が必要となることもある。
MDAツールは、いくつかのベンダーやオープンソースプロジェクトで開発されている。Rational Rose はベンダー作成のツールである。マイクロソフトはMDAに準拠しない類似のツールを提案している。Eclipseでは各種オープンソースツールを開発中である。
MDAツールはUMLツールよりも範囲が広い点に注意されたい。これは、ベースとしているメタモデルが可変か固定かの違いである。UMLツールのメタモデルは一般に固定であり、特定のUMLメタモデル(例えば UML 2.1)上でのみ動作する。一方 MDAツールは任意のメタモデルに対応できる仕組みを用意しているか、複数のメタモデルをサポートしている。
MDAツールは基本的なアーキテクチャ仕様を扱うことが多いが、アーキテクチャ(およびプラットフォーム)に依存しないツールもある。ここでいうアーキテクチャ仕様とは次のようなものを意味する:
参照アーキテクチャ: Java EE や.NET
階層ごとのアーキテクチャ(プレゼンテーション層やビジネスロジック層)や階層間の一貫性技術(オブジェクトデータベースと関係データベースのマッピングなど)
モデル駆動型アーキテクチャ (MDA) は、モデルとして表現される構造的仕様のガイドラインを提供するソフトウェア開発手法である。MDAでは、システムの機能はまず適切なドメイン固有言語を使ってプラットフォーム独立モデル (PIM) として定義する。CORBAや .NET といったプラットフォーム定義モデル (PDM) が与えられると、PIM は別のドメイン固有言語や汎用のプログラミング言語(Java、C#、Python など)に対応したプラットフォーム特化モデル(PSM)へと変換される。PIMとPSMとの変換は通常、モデル変換ツールなどの自動化されたツールを使って行われる(例えば OMG が標準化したQVT)。工程全体は文書化され、OMG が MDAガイド(MDA Guide)として保守している。