
QVT(クエリ/ビュー/変換)は、オブジェクト管理グループによって定義されたモデル変換のための標準言語セットです。[ 1 ]
概要
モデル変換は、モデル駆動型アーキテクチャで使用される重要な技術です。QVTという名称が示すように、OMG標準は変換、ビュー、クエリをまとめてカバーしています。モデル変換を適切に広義に定義すれば、モデルクエリとモデルビューはモデル変換の特別な種類と見なすことができます。つまり、モデル変換とは、モデルを操作するプログラムです。
QVT標準では、3つのモデル変換言語が定義されています。いずれもMeta-Object Facility (MOF) 2.0メタモデルに準拠するモデル上で動作し、変換処理ではどのメタモデルが使用されるかを指定します。3つのQVT言語のいずれかによる変換は、それ自体がモデルとみなされ、標準で規定されているメタモデルのいずれかに準拠します。QVT標準はOCL 2.0標準を統合し、命令型機能によって拡張されています。
- QVT-Operational は、一方向の変換を記述するために設計された命令型言語です。
- QVT-Relationsは、単方向および双方向のモデル変換を記述できるように設計された宣言型言語です。変換は、モデルセット間の一貫性関係を具体化します。一貫性は、変換をチェックオンリーモードで実行することで確認できます。変換は、モデルセットが変換に従って一貫性を持つ場合はTrueを、そうでない場合はFalseを返します。同じ変換を強制モードで使用して、モデルセット全体の一貫性を保つように、モデルの1つを変更することもできます。QVT-Relations言語には、テキスト形式の具体的な構文とグラフィカルな具体的な構文の両方があります。
- QVT-Coreは、QVT-Relationsからの変換先としてシンプルに設計された宣言型言語です。しかし、QVT-Coreは完全な実装が存在せず、実際、QVT-Relationsほど表現力に富んでいません。[ 2 ]そのため、上に示したQVTアーキテクチャは誤解を招く可能性があります。QVT標準で規定されているQVT-RelationsからQVT-Coreへの変換は、意味を保持しません。
最後に、QVT-BlackBox は、他の言語 (たとえば、XSLTまたはXQuery ) で表現された変換機能を呼び出すメカニズムです。
QVTは幅広い適用範囲を持ちますが、モデル変換、ビュー、クエリとして考えられてきたすべての機能を網羅しているわけではありません。例えば、QVT言語ではテキストモデルへの変換やテキストモデルからの変換は許可されていません。これは、各モデルがMOF 2.0メタモデルに準拠する必要があるためです。モデルからテキストへの変換は、OMGによって別途標準化されています(MOFM2Tを参照)。
歴史
2002 年に、OMG は、モデル駆動型アーキテクチャ(MDA) 推奨スイート (UML、MOF、OCL など)と互換性のある標準を求めるために、MOFクエリ/ビュー/変換に関する提案依頼書 (RFP) を発行しました。
複数の企業や研究機関から複数の回答が提出され、3年間かけて英国の研究者ローレンス・トラット博士の草案に基づく共通提案が作成されました。最初のバージョンは2005年に提出され、承認されました。[ 3 ] QVTバージョン1.1は2011年1月にリリースされました。[ 1 ]
実装
QVT-運用:
- Borland TogetherにはQVT Operationalの実装が含まれており、これはEclipse Foundationに寄贈[ 4 ]され、現在はEclipse M2M Operational QVTプロジェクトとして開発されています。
- Eclipse M2M Operational QVT: QVT Operationalの公式Eclipseオープンソース実装。[ 5 ]
- MagicDraw には、 Eclipse M2Mプロジェクトによって提供される Operational QVT 実装を使用する QVT プラグインがあります。
- SmartQVT : QVT オペレーション言語の Eclipse オープン ソース実装 (Orange Labs)。
QVTコア:
- OptimalJ : QVT-Core言語の早期アクセス実装は、CompuwareのOptimalJバージョン3.4でした。しかし、OptimalJは廃止されました。
QVT関係:
- ModelMorf: Tata Consultancy Services Ltd.の独自ツール。QVT-Relations言語に完全準拠。試用版[ 6 ]では、XMI形式のモデルを読み込み・生成するコマンドラインユーティリティが提供される。リポジトリ統合型の完全版は、同社独自のモデリングフレームワークの一部として利用可能である。[ 7 ]
- MediniQVT: [ 8 ] EMFベースの変換エンジン。エンジンはEPLライセンス、エディタ/デバッガは非商用ライセンス。QVT-Relations構文を採用しているが、OMG標準のセマンティクスからは意図的に逸脱している。[ 9 ]
- Eclipse M2Mプロジェクトは、QVT CoreとRelationの実装を作成することを目指しています。[ 5 ]
- Echoは[ 10 ] 、 Alloyモデルファインダー上に構築されたモデル修復および変換用のオープンソースEMFベースのツールであり、QVT-Relations構文の実装を提供しますが、OMG仕様から意図的に逸脱したセマンティクスを使用しています。
QVTのような:
- jQVT: [ 11 ] OCLの代わりにXbaseを使用した、Java用のコンパイル済みQVTエンジン。QVTリレーショナル変換はまずJavaソースコードにコンパイルされ、実行時にソースモデルからターゲットモデルを直接生成します。変換規則を再度解釈する必要はありません。EMFモデルだけでなく、プレーンなJavaオブジェクトもサポートしています。
- Tefkat : QVT に似た Tefkat 言語のオープンソース実装。オープンソース。
- ATL : M2M Eclipse プロジェクト のコンポーネント。ATL は QVT に似た変換言語およびエンジンであり、大規模なユーザーコミュニティとオープンソースの変換ライブラリを備えています。
- モデル変換フレームワーク(MTF ):[ 12 ] IBM alphaWorksプロジェクト、2007年に最終更新。
参照
- 利用可能な変換言語のリスト
- MOF モデルからテキストへの変換言語- M2T 変換を表現するための OMG の変換言語仕様
- モデル駆動型エンジニアリング(MDE)
- モデル駆動型アーキテクチャ(MDA):OMGのMDEビジョン
- ドメイン固有言語(DSL)
- Meta-Object Facility (MOF): メタモデルを記述するための言語
- オブジェクト制約言語(OCL): モデル制約 (およびクエリ) 言語
- モデル変換
- モデル変換言語
- メタモデル
参考文献
- ^ a b Bast, Wim; Murphree, Michael; Lawley, Michael; Duddy, Keith; Belaunde, Mariano; Griffin, Catherine; Sendall, Shane; Vojtisek, Didier; Steel, Jim; Helsen, Simon; Tratt, Laurence; Reddy, Sreedhar; Venkatesh, R.; Blanc, Xavier; Dvorak, Radek; Willink, Ed (2011年1月). 「Meta Object Facility (MOF) 2.0 Query/View/Transformation (QVT)」(pdf) . Object Management Group . 2011年5月9日閲覧。
- ^ Stevens, Perdita (2011). 「チェックオンリーQVT関係へのシンプルなゲーム理論的アプローチ」.ソフトウェアとシステムモデリング. 12.ベルリン/ハイデルベルク: Springer : 175–199 . doi : 10.1007/s10270-011-0198-8 . hdl : 20.500.11820/58a19b4d-3782-4081-ad75-175c4626a62e .
- ^ Bast, Wim; Murphree, Michael; Lawley, Michael; Duddy, Keith; Belaunde, Mariano; Griffin, Catherine; Sendall, Shane; Vojtisek, Didier; Steel, Jim; Helsen, Simon; Tratt, Laurence; Reddy, Sreedhar; Venkatesh, R.; Blanc, Xavier; Dvorak, Radek; Willink, Ed. 「Meta Object Facility (MOF) 2.0 Query/View/Transformation (QVT)」(pdf) . Object Management Group . 2013年11月1日閲覧。
- ^ [m2m-dev] Borland QVTの貢献Archived February 25, 2012, at the Wayback Machine
- ^ a b Eclipse M2Mプロジェクト。「Model to Model (M2M)」。2012年12月3日時点のオリジナルよりアーカイブ。2011年5月9日閲覧。. 2011年5月9日閲覧。
- ^ ModelMorfベータ版。「ModelMorf登録フォーム」 。 2012年3月23日時点のオリジナルよりアーカイブ。2011年5月9日閲覧。. 2011年5月9日閲覧。
- ^ TCSコードジェネレータフレームワーク(旧称MasterCraft)「TCSコードジェネレータフレームワーク:TCSテクノロジー製品:提供サービス:TCS」 。 2011年8月9日時点のオリジナルよりアーカイブ。 2011年5月9日閲覧。. 2011年5月9日閲覧。
- ^ Medini QVT.「Medini QVT」 . 2016年7月29日時点のオリジナルよりアーカイブ。2009年8月13日閲覧。. 2011年5月9日閲覧。
- ^ Kiegeland, J.; Eichler, H. (2008年2月)、「medini QVT workshop」、medini QVT workshop、Enschede、Telematica Instituut: ikv++ technologies ag、2016年3月3日のオリジナル(ppt)からアーカイブ、 2015年9月24日取得
- ^ Echo. [1] 2013年11月2日閲覧。
- ^ jQVT.「JQVT ダウンロード | SourceForge.net」 2016年3月7日時点のオリジナルよりアーカイブ。2012年11月10日閲覧。
- ^モデル変換フレームワーク。http ://www.alphaworks.ibm.com/tech/mtf 2007年2月2日アーカイブ(Wayback Machine)。2011年5月9日閲覧。