QVT
出典: フリー百科事典『ウィキペディア(Wikipedia)』
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 は宣言型言語であり、それぞれ抽象化レベルが異なる。OperationalMapping はそれらの間の規範的マッピングである。Relations 言語はグラフィカルな厳密な文法を持つ。QVT/OperationalMapping 言語は命令型言語であり、QVT/Relations と QVT/Core の拡張となっている。QVT/OperationalMapping 言語の文法は一般的な命令型言語の構文によく似ている(ループ、条件など)。
また、QVT/BlackBox という機構で他の言語(XSLT、XQuery)で表現された変換機能を呼び出すようになっており、これも仕様の重要な部分を占める。これは特に既存の QVT 以外のライブラリを統合する際に重要となる。
今のところ、QVT ではモデルからモデルへの変換しか扱っておらず、そのモデルも MOF 2.0 のメタモデルに対応したものだけである。各種文書(XML、SQLなど)とモデルの間の変換は、QVT の範囲にはないが、いずれ標準化されると可能性はある。それらは他のドメイン固有言語を MDA で扱えるよう変換するものと見ることができる。
[編集] 実装
- M2M - OMG QVT 標準の Eclipse による実装。M2M の範囲はQVTよりも広いが、提案されている実装は QVT 互換となっている。
- ATL - QVT 風の変換言語とエンジン。多数のユーザーがおり、オープンソースの変換ライブラリも豊富。
- Borland Together - Eclipse M2M 用コンポーネント。一部 QVTに準拠。
- ModelMorf - タタ・コンサルタンシー・サービシズの子会社 TRDDC による変換エンジン。部分的に QVT 準拠、オープンソースではない。
- Tefkat - QVT に似たオープンソースの言語。高性能。
- SmartQVT - オープンソースのQVT操作言語(France-Telecom Lannion、フランス)。
- MTF - IBM による 部分的に QVT 互換となっているモデル変換のプロトタイプ。オープンソースだが、Eclipse 上では動作しない。
[編集] 批判
QVT は OMG 推奨の規格だが、以下のような欠点を批判されている:
- 未だ完全な実装がなされていない。適当な期間内にQVTを完全に実装することは非常に困難と思われる。仕様があまりにも膨大であるため、QVT 1.0 の完全な実装が登場することはないだろう。
- 曖昧な要求仕様。QVT の主要な要求仕様はプラットフォーム独立モデル(PIM)からプラットフォーム特化モデル(PSM)への変換である。しかし、OMG の MDAガイドにはPIMやPSMの具体的な定義がされておらず、QVT の要求仕様は非常に曖昧なままとなっている。
- ユーザビリティの制限。QVT はXMI から XMI への変換のみである。XMI の表現能力の問題と業界への浸透度の低さから、QVT をそのまま実装しても利用できる場面が制限される。実際に広く利用されるようになるには、モデルからテキストへの変換とテキストからモデルへの変換をサポートする必要がある。
- 時期尚早な標準化。実際、標準化以前にこのような手法が産業界で大規模に使われた例がない。この時点で標準として膨大な推奨仕様を策定するのは無謀であるとの見方もある。策定を急いだのは、W3C の XMLベースの標準である XSLT や XQuery に対抗するためと言われている。
- 委員会による定義。QVT はいくつかのパートナー企業から持ち寄った部分を繋ぎ合わせたものである。このような委員会型仕様策定の弊害は QVT に限らない。
これらの批判のいくつかは、将来、完全なQVT実装が広く使われるようになれば、問題ではなくなる。そうなって初めて XSLT や XQuery と対抗できるようになるだろう。
[編集] 関連項目
- モデル駆動工学 (MDE)
- モデル駆動型アーキテクチャ (MDA): MDE の OMG 版
- ドメイン固有言語 (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, John Wiley & Sons, ISBN 0-471-31920-1
[編集] 外部リンク
- Object Management Group: Model-Driven Architecture - Vision, Standards And Emerging Technologies. Web版 .pdf
- Obect Management Group: MDA Guide Version 1.0.1. Web版 .pdf
- Brown, A: An Introduction to Model Driven Architecture. In: The Rational Edge, Feb. 2004 (IBM developerWorks eZine). Web版 .html (3本のシリーズ記事の1つめ)
- Bézivin, J: From Object Composition to Model Transformation with the MDA. In: TOOLS-USA'01. Web版 .pdf
- Bohlen, M: QVT and multi metamodel transformation in MDA. Web版 .pdf (英), (独)
- Wagelaar, D: MDE Case Study: Using Model Transformations for UML and DSLs. Web版 .pdf
- Czarnecki, K, and Helsen, S : Classification of Model Transformation Approaches. In: Proceedings of the OOPSLA'03 Workshop on the Generative Techniques in the Context Of Model-Driven Architecture. Anaheim (CA, USA). Web版 .pdf
- ModelBaset.net. MDA Tools. Webサイト
- ATL on Eclipsepedia [1]
- Gronmo, R, and Oldevik, J : An Empirical Study of the UML Model Transformation Tool (UMT). In: INTEROP-ESA'05, Feb. 2005. Web版 .pdf
- Portal site MDA and Model Transformation: site access