|
QVT(Queries/Views/Transformations)とは、Object Management Groupが定義したモデル駆動型アーキテクチャにおけるモデル変換の標準である。Meta-Object Facility(MOF)に関連する標準であることから、MOF QVT とも呼ばれる。 == 解説 == モデル変換とは、メタモデル MMa に準拠したモデル Ma をメタモデル MMb に準拠したモデル Mb に変換するプロセスである。MMa=MMb であれば、その変換を内発的(endogeneous)といい、そうでなければ外発的(exogeneous)という。モデル変換はモデル駆動型アーキテクチャ(MDA)において重要な役割を担う。このため、OMG は MOF Query/Views/Transformations の RFP(Request for proposal)を発行し、MDA 関連の推奨規格(UML、MOF、OCLなど)に互換性のある標準を求めた。いくつかの企業や研究機関がこれに応じ、3年をかけて共同提案が策定され、標準として承認された。 現在では、QVT標準に準拠したオープンソースも含めたいくつかの製品がある。QVT はソースモデルからターゲットモデルへの変換の標準的手法を定義している。標準の中にはいくつかのアイデアが含まれている。その1つとして、ソースおよびターゲットモデルが MOF のメタモデルに準拠することを推奨している。また、変換プログラム自身も MOF のメタモデルに準拠したモデルであるとしている。これはつまり、QVT の抽象構文は MOF 2.0 のメタモデルに従うべきだということを意味する。 実際の標準は、やや複雑な構成となっている。まず、QVT 言語は OCL 2.0 標準を統合し、命令型 OCL への拡張を行っている。さらに、QVT は ''QVT/Relations''、''QVT/Core''、''QVT/OperationalMapping'' という3つのドメイン固有言語を定義し、これらの言語が階層型アーキテクチャを構成している。Relations と Core は宣言型言語であり、それぞれ抽象化レベルが異なる。また、それらの間には規範的な対応関係が定義されている。Relations 言語はテキスト表現に加え、グラフィカルに定義された厳密な文法を持つ。QVT/OperationalMapping 言語は命令型言語であり、QVT/Relations と QVT/Core の拡張となっている。QVT/OperationalMapping 言語の文法は一般的な命令型言語の構文によく似ている(ループ、条件など)。 また、''QVT/BlackBox'' という機構で他の言語(XSLT、XQuery)で表現された変換機能を呼び出すようになっており、これも仕様の重要な部分を占める。これは特に既存の QVT 以外のライブラリを統合する際に重要となる。 今のところ、QVT ではモデルからモデルへの変換しか扱っておらず、そのモデルも MOF 2.0 のメタモデルに対応したものだけである。各種文書(XML、SQLなど)とモデルの間の変換は、QVT の範囲にはないが、いずれ標準化される可能性はある。それらは他のドメイン固有言語を MDA の枠内で扱えるようにするものと見ることができる。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「QVT」の詳細全文を読む スポンサード リンク
|