QVT

QVT(Queries/Views/Transformations)とは



QVT(Queries/Views/Transformations)は、Object Management Group(OMG)によって定義された、モデル駆動型アーキテクチャ(MDA)におけるモデル変換のための標準規格です。これは、Meta-Object Facility(MOF)に関連する標準であり、しばしばMOF QVTとも呼ばれます。モデル変換は、メタモデルに準拠したモデルを別のメタモデルに準拠したモデルに変換するプロセスであり、MDAにおいて非常に重要な役割を果たします。

モデル変換の概要



モデル変換とは、メタモデル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の構造と特徴



QVT標準は、ソースモデルからターゲットモデルへの変換を標準化するための手法を定義しています。この標準は、ソースモデルとターゲットモデルが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/BlackBoxという機構を通じて、他の言語(XSLT、XQuery)で記述された変換機能を呼び出すことができ、既存のライブラリとの統合を容易にしています。現在のQVTは、MOF 2.0のメタモデルに対応したモデル間の変換のみを扱っていますが、将来的にXMLやSQLなどのモデルと他のドキュメント間の変換も標準化される可能性があります。

QVTの実装例



QVT標準に準拠した実装はいくつか存在します。以下はその例です。

M2M (Eclipse): OMG QVT標準のEclipseによる実装で、ATL、Compuwareによる宣言型QVT、Borlandによる命令型QVTが含まれます。
命令型QVT (QVT-OperationalMapping):
Borland Together: Eclipse M2Mに提供されるコンポーネントで、一部QVTに準拠しています。
SmartQVT: フランスのFrance-Telecom Lannionが開発したオープンソースのQVT命令型言語です。
宣言型QVT (QVT-Relations):
ModelMorf: タタ・コンサルタンシー・サービシズの子会社TRDDCによる変換エンジンで、独自仕様ながら部分的にQVTに準拠しています。
medini QVT: ベルリンのikv++社による宣言型QVT実装で、入力補間機能付きのエディタとデバッガをEclipseベースのRCPとして提供しています。
宣言型QVT (QVT-Core):
OptimalJ: Compuware社がOptimalJ version 3.4でQVT-Coreの初期仕様を実装しています。
MTF: IBMによるモデル変換のプロトタイプで、部分的にQVT互換ですが、Eclipse上では動作しません。

QVTに似た言語:
Tefkat: QVTに似たオープンソースの言語です。
ATL: QVT風の変換言語とエンジンで、多くのユーザーが利用しており、豊富なオープンソース変換ライブラリも存在します。

QVTへの批判



QVTはOMGの推奨規格である一方、以下のような批判も存在します。

曖昧な要求仕様: QVTの主要な目的であるPIM(プラットフォーム独立モデル)からPSM(プラットフォーム特化モデル)への変換が、MDAガイドで具体的に定義されていないため、要求仕様が曖昧であるという指摘があります。
適用範囲の制限: QVTはMOFモデル間の変換に限定されているため、MOFモデルの普及度が低い現状では利用場面が限定的です。モデルとテキスト間の変換をサポートする必要性が指摘されています。
時期尚早な標準化: QVTの手法が産業界で広く使われた実績がない段階で、標準化を急いだため、標準仕様が複雑になりすぎたとの批判があります。W3CのXMLベースの標準であるXSLTやXQueryに対抗するために標準化を急いだとの見方もあります。
委員会による定義: QVTが複数の企業からの要素を組み合わせたものであるため、委員会型の仕様策定の弊害が指摘されています。

これらの批判は、QVTの実装が普及すれば解消される可能性があり、XSLTやXQueryと対抗できるようになることが期待されます。

関連事項



モデル駆動工学 (MDE)
モデル駆動型アーキテクチャ (MDA)
ドメイン固有言語 (DSL)
Meta-Object Facility (MOF)
Object Constraint Language (OCL)
モデル変換
モデル変換言語
メタモデル

参考文献



The MDA Journal: Model Driven Architecture Straight From The Masters
Model Driven Architecture: Applying MDA to Enterprise Computing, David S. Frankel

外部リンク



Object Management Group: Model-Driven Architecture
Object Management Group: MDA Guide Version 1.0.1
An Introduction to Model Driven Architecture (IBM developerWorks eZine)
From Object Composition to Model Transformation with the MDA
QVT and multi metamodel transformation in MDA
MDE Case Study: Using Model Transformations for UML and DSLs
Classification of Model Transformation Approaches
ModelBaset.net: MDA Tools
ATL on Eclipsepedia
An Empirical Study of the UML Model Transformation Tool (UMT)
Portal site MDA and Model Transformation

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。