SlideShare a Scribd company logo
1 of 66
Download to read offline
EclipseのM2M変換	

  QVTo	
  を中心として	
  
           	
  
          田中	
  
    ビューファイブ	
  LLC
アジェンダ	
•  MDA	
  における	
  M2M	
  変換の位置づけ	
  
•  OMG	
  M2M	
  標準	
  
•  Eclipse	
  Modeling	
  Project	
  における M2M	
  実装	
  
   –  QVT	
  
   –  ATL	
  
   –  Xtend	
  2.0
MDA	
  における	
  M2M	
  変換の位置づけ	
•  CIM	
  -­‐>	
  PIM	
  -­‐>	
  PSM	
  !?	
  
     –  ComputaHon	
  Independent	
  Model	
  (CIM)	
  
     –  PlaKorm	
  Independent	
  Model	
  (PIM)	
  
     –  PlaKorm	
  Specific	
  Model	
  (PSM)	
            refine	
                                         refine	
                refine	
                                                   M2M	

                      M2M	
                                               M2T	
          CIM	
                       PIM	
                  PSM	

                                                 becomes	


                                                       refine/refactor	
  もM2M適用対象
OMG	
  M2M	
  標準	
•  Meta	
  Object	
  Facility	
  (MOF)	
  2.0	
  Query/View/
   TransformaHon	
  SpecificaHon	
  
   –  1.1	
  版:	
  January	
  2011	
  
   –  略称:	
  QVT	
  
   –  URL:	
  hYp://www.omg.org/spec/QVT/1.1	
  
•  M2Mのための3種類の言語を規定	
  
   –  OperaHons	
  <手続き的>	
  
   –  RelaHons	
  +	
  Core	
  <パターンマッチング>
Eclipse	
  Modeling	
  Project	
  における	
  
              M2M	
  実装	
  




                                  主要プロジェクト	




   hYp://www.eclipse.org/projects/project.php?id=modeling.mmt
Eclipse	
  Modeling	
  Project	
  における	
  
                    M2M	
  実装	
•  ATL	
  
      –  大島さんに説明をお願いしました	
  

•  QVTr	
  or	
  QVTd	
  (+	
  QVTc)	
  
      –  Xtext	
  ベースの	
  Editor	
  の実装がほぼ出来ています(今後の計画につ
         いては後ほど)	
  
      –  これ以外に独ikv++	
  technologies社公開のmedini	
  QVTが知られていま
         す(メンテナンス状況が不明ですが問題なく動作します)	
  
•  QVTo	
  
      –  現状で充分使えるレベルにあると思います	
  

•    その他	
  
      –  Epsilon	
  
      –  VIATRA2	
  
      –  Xtend2
M2M	
•  ここからは 「QVTo	
  をメインに」 三つの	
  QVT	
  +α	
  
   についてお話します	
  
  –  QVT	
  OperaHons	
  
      •  Eclipse	
  Modeling	
  QVTo	
  
  –  QVT	
  RelaHons	
  
      •  Eclipse	
  Modeling	
  QVTd	
  
      •  ikv++	
  technologies	
  medini	
  QVT	
  
  –  QVT	
  Core	
  
      •  Eclipse	
  Modeling	
  QVTd	
  
QVT	
  :三つの言語	
•  RelaHons	
  
    –  ハイレベルでのパターンマッチング(MOFモデル
       間:Eclipseではecoreファイル間)	
  
•  Core	
  
    –  ローレベルでのパターンマッチング	
  
•  OperaHonal	
  Mappings	
  
    –  手続き型言語のように記述	
  

補足) Black	
  Box	
  実装も含めることが出来ます
QVT	
  :三つの言語	
•  現状について	
  
  –  言語が三つある理由:標準化時に各種提案が
     マージされたため	
  
  –  トレースモデル(実装)を利用するため	
  
     OperaHonal	
  Mappings	
  が	
  RelaHon	
  に依存	
  
  –  Eclipse	
  Project	
  で実績があるのは	
  OperaHonal	
  
     Mappings	
  
  –  Eclipse	
  外の	
  Project	
  では medini	
  QVT	
  (RelaHon)	
  
     が実績有	
  
QVT	
  OperaHons	
•  QVTo	
  の特徴	
  
   –  変換のための命令を並べる	
  
   –  OCL	
  を利用(QVTrも同様)	
  
QVT	
  OperaHons	
•  Eclipse	
  QVTo	
  のインストール	
  
  –  Eclipse	
  Modeling	
  Package	
  をインストール	
  
  –  Help	
  の	
  Install	
  Modeling	
  Components	
  (次ページ)
     より	
  OperaHonal	
  QVT	
  を選択して	
  Finish	
  
  –  指示に従いインストールを済ませ	
  Eclipse	
  をリス
     タート
QVT	
  OperaHons	
•  Eclipse	
  QVTo	
  の設定について	
  
  –  作成した QVTo	
  プロジェクトの属性	
  
     •  QVT	
  Sedngs	
  -­‐>	
  Metamodel	
  Mappings	
  
     •  ここに変換で使うメタモデルを登録	
  
  –  Run	
  ConfiguraHons	
  
     •  OperaHonal	
  QVT	
  Interpreter	
  の配下にプロジェクトごと
        に構成情報を登録	
  
         –  変換モジュールへのパス情報	
  
         –  トレースファイルのパス情報	
  
         –  変換前後ファイル(xmi形式)のパス情報
QVT	
  OperaHons	
•  簡単な例題(標準仕様A.2.1)	
  <眺めるだけ>	
  
  –  Book	
  To	
  PublicaHon	
  
      •  Book(タイトル、章[*])	
  そして 章(章タイトル、章ページ
         数)	
  
      •  PUB(タイトル、総ページ数)
星と空	
           星と空	
    第1章 星	
  
    ページ数 10	
                         ジ	
                全300ペー
QVT	
  OperaHons	
•  モデルデータの準備	
  
 –  メタモデル(Book,	
  PUB)作成	
  
   •  Ecore	
  Tools	
  を利用(前のスライド)	
  
 –  モデル作成(bookModel.xmi:テスト用)	
  
   •  EMF	
  の	
  Dynamic	
  Instance	
  作成機能を利用(簡単なモ
      デルの場合など)	
  
   •  本格的に作成するには	
  
      –  EMF,	
  GMF,	
  GMF/EuGENia	
  などを利用
QVT	
  OperaHons	
•  モデル変換記述	
                                                       モデルタイプ定義で	
  
                                                                   メタモデルを指定	
    modeltype	
  inModel	
  uses	
  BOOKS('hYp:///BOOKS.ecore');	
  
①	
                                                                    モデル変換命令と	
  
    modeltype	
  outModel	
  uses	
  PUB('hYp:///PUB.ecore');	
  
    	
                                                                 そのシグニチャ	
②	
 transformaHon	
  Book2PublicaHonOperaHonal(in	
  bm:inModel,out	
  pm:outModel);	
  	
  
    	
  
    main()	
  {	
                                                      エントリポイント	
  
③	
            	
  bm.objects()[Book]-­‐>map	
  book2pub(); 	
  	
     Bookオブジェクトを集め	
  
    }	
                                                                book2pubを適用	
    	
  
    mapping	
  inModel::Book::book2pub()	
  :	
  outModel::PublicaHon	
  {	
  
④	
 	
  	
  Htle	
  :=	
  self.Htle;	
                                 タイトルをコピーし	
  
    	
  	
  nbPages	
  :=	
  self.chapter-­‐>nbPages-­‐>sum();	
  	
   ページ数の総和を	
  
    }	
                                                                算出
QVT	
  OperaHons	
•  Eclipse	
  環境での操作(Families2Persons)	
  
  –  File	
  -­‐>	
  New	
  -­‐>	
  Project	
  
  –  Model	
  to	
  Model	
  TransformaHon	
  -­‐>	
  OperaHonal	
  
     QVT	
  Project	
  を選択し	
  Next	
  
  –  プロジェクト名(Families2Persons)を入力し	
  Next	
  
  –  デフォルトのまま	
  Next	
  
  –  “Create	
  arHfacts	
  …”	
  をチェックし	
  OperaHonal	
  QVT	
  
     TransformaHon	
  を選択し	
  Next	
  
  –  モジュール名(Family2PersonQVTo)を入力し	
  
     Finish	
  
QVT	
  OperaHons	
•  プロジェクト構造の例(自由です)
QVT	
  OperaHons	
•  Families2Persons:	
  Families	
                                     metamodels	
  フォルダへ
QVT	
  OperaHons	
•  Families2Persons:	
  Persons	
                                metamodels	
  フォルダへ
QVT	
  OperaHons	
•  Families2Persons:	
  FamilyModel.xmi	




                               source_model	
  フォルダに	
  
                               作成します
<?xml	
  version="1.0"	
  encoding="ASCII"?>	
  
<families:FamilyModel	
  
	
  	
  	
  	
  xmi:version="2.0"	
  
	
  	
  	
  	
  xmlns:xmi="hYp://www.omg.org/XMI"	
  
	
  	
  	
  	
  xmlns:xsi="hYp://www.w3.org/2001/XMLSchema-­‐instance"	
  
	
  	
  	
  	
  xmlns:families="hYp://families2"	
  
	
  	
  	
  	
  xsi:schemaLocaHon="hYp://families2	
  ../metamodels/Families.ecore">	
  
	
  	
  <families	
  lastName="March">	
  
	
  	
  	
  	
  <father	
  firstName="Jim"/>	
  
	
  	
  	
  	
  <mother	
  firstName="Cindy"/>	
               Ecoreファイルの場所が	
  
	
  	
  	
  	
  <sons	
  firstName="Brandon"/>	
               記録される箇所がある	
  
	
  	
  	
  	
  <daughters	
  firstName="Brenda"/>	
           ため注意して下さい	
	
  	
  </families>	
  
	
  	
  <families	
  lastName="Sailor">	
  
	
  	
  	
  	
  <father	
  firstName="Peter"/>	
  
	
  	
  	
  	
  <mother	
  firstName="Jackie"/>	
  
	
  	
  	
  	
  <sons	
  firstName="David"/>	
  
	
  	
  	
  	
  <sons	
  firstName="Dylan"/>	
  
	
  	
  	
  	
  <daughters	
  firstName="Kelly"/>	
  
	
  	
  </families>	
  
</families:FamilyModel>	
  
QVT	
  OperaHons	




       1/3
QVT	
  OperaHons	




       2/3
QVT	
  OperaHons	




       3/3
QVT	
  OperaHons	
•  プロジェクトの属性
Run	
  ConfiguraHon	
  の例	
QVT	
  OperaHons
QVT	
  OperaHons	




         お待たせしました
QVT	
  OperaHons	
•  ここから少し補足説明をします	
  

 –  “Model	
  TransformaHons	
  using	
  QVT	
  OperaHonal	
  
    Mappings”	
  
     •  読者として	
  Beginner	
  を想定して書かれています	
  
     •  hYp://redpanda.nl/BEP_P.J.Barendrecht.pdf	
  
 –  “Model	
  TransformaHon	
  with	
  OperaHonal	
  QVT”	
  
     •  2008年の	
  EclipseCon	
  でのチュートリアル資料	
  
     •  hYp://www.eclipsecon.org/2008/sub/aYachments/
          Model_transformaHon_with_OperaHonal_QVT.pdf	
  
     	
  
QVT	
  OperaHons	
•  modeltype	
  
   –  メタモデルデータの指定方法	
  
      •  workspace内のリソースを直接指定	
  
          – PlaKorm:/resource/プロジェクト名/…/xxx.ecore	
  
      •  一旦	
  eclipse	
  にリソースを登録しそれを参照	
  
          – Persons(‘hYp://persons’)	
  
   –  where	
  の利用	
  
      •  where	
  {self.objects()[Package]-­‐>size()>=1}
QVT	
  OperaHons	
•  main()	
  
   –  引数無しの	
  main()	
  がエントリーポイントとなる	
  
   –  通常はモデルデータの入力があり、そこからルー
      ト要素ないし特定の型の要素を取り出し変換対
      象とする	
  
       •  rootObjects()[model	
  element	
  type]	
  
       •  objects()[model	
  element	
  type]	
  
QVT	
  OperaHons	
•  本格的な例題: Uml	
  to	
  Rdbms	
  
  –  QVT	
  標準の付録にあるモデル変換例	
  
  –  分量があるため大筋の説明にとどめます	
  
QVT	
  OperaHons	
SimpleUML	
  metamodel	
  
の中身をグラフィカルに	
  
表示
QVT	
  OperaHons	


RDB	
  metamodel	
  の中身	
  
をグラフィカルに表示	
  
QVT	
  OperaHons	



変換対象の SimpleUML	
  
モデルデータ
QVT	
  OperaHons	
•  Eclipse	
  環境での操作	
  
  –  File	
  -­‐>	
  New	
  -­‐>	
  Example	
  -­‐>	
  
  –  OperaHonal	
  QVT	
  TransformaHon	
  -­‐>	
  SimpleUML	
  to	
  
     RDB	
  TransformaHon	
  Project	
  を選択	
  
  –  これで	
  UML	
  から	
  RDB	
  へのサンプル変換プロジェ
     クトが読み込まれます	
  
  –  プロジェクトに含まれるファイルから
     “Simpleuml_To_Rdb.qvto”	
  をダブルクリック等で
     開いて下さい (QVTo	
  ファイル)
QVT	
  OperaHons	
•  おおまかな変換ロジック(1)	
  
 –  modeltype	
  の宣言	
  
 –  transformaHon	
  の宣言(入出力指定)	
  
 –  uml(変換対象のUMLモデルデータ)からModelを
    抜き出しRDBのModelに対応付け	
  
 –  Model	
  に含まれる	
  Package(ネストしたものも含
    む)を取り出す	
  
QVT	
  OperaHons	
•  おおまかな変換ロジック(2)	
  
 –  Package	
  に含まれる	
  persistent	
  な	
  Class	
  を	
  Table	
  
    に対応付け	
 –  Table	
  に	
  PK	
  を設定	
  
 –  Table	
  に	
  FK	
  を設定	
  
 –  Table	
  に	
  Column	
  を設定	
  
 –  Column	
  の項目属性を設定	
  
 –  …	
  
QVT	
  OperaHons	
•  SimpleUML	
  to	
  RDB	
  Project	
  で使う Metamodel	
  
   ファイルについて(参考)	
  
   –  Window	
  -­‐>	
  Show	
  View	
  -­‐>	
  Other	
  から	
  OperaHonal	
  QVT	
  
      -­‐>	
  Metamodel	
  Explorer	
  を選択するとシステムに登録
      されている metamodel	
  の一覧と中身を参照出来ま
      す(Read	
  only)	
  
   –  QVTo	
  をインストールした	
  Eclipse	
  の	
  plugin	
  フォルダー
      の中に	
  org.eclipse.m2m.qvt.oml.samples	
  で始まる	
  jar	
  
      ファイルがあり、.zip	
  に変更し解凍すれば、このプロ
      ジェクトで使う ecore	
  ファイル本体が現れます
QVT	
  OperaHons	
•  参考情報	
  
  –  QVTo	
  関連の各種	
  URLは後ほど勉強会のサイト
     に掲載します	
  
  –  ビルド関連で役に立つかもしれない情報	
  
    •  QVT:	
  command	
  line	
  execuHon	
  
         –  hYp://www.eclipse.org/forums/index.php/m/106647/	
  
    •  QVTOML/Examples/InvokeInJava	
  
         –  hYp://wiki.eclipse.org/QVTOML/Examples/InvokeInJava	
  
QVTr/QVTc	
  の現状	

QVT	
  DECLARATIVE
多方向・ declaraHve	
  変換言語	

言語要素	


         一方向・ declaraHve	
  変換言語	




                         一方向・
                         declaraHve	
  
                         変換言語	
                         	



         一方向・	
  imperaHve	
  変換言語	




           hYp://wiki.eclipse.org/M2M/
           QVT_DeclaraHve_Languages
QVT	
  DeclaraHve	
•  現状	
  
   –  エディタ完成直前+ QVTi	
  実行エンジン作業中	
  
•  今後の計画	
  
   –  ベーシックな QVTc	
  実行 for	
  Kepler	
  (2013年6月)	
  
   –  ベーシックな QVTr	
  実行	
  for	
  Kepler+1	
  
   –  最適化実行エンジン for	
  Kepler+2	
  

   –  補足)	
  
      •  git://github.com/arcanefoam/qvtMustus	
  
      •  近いうちに	
  eclipse	
  に移すとのこと
QVT	
  DeclaraHve	
•  Eclipse	
  QVTd	
  のインストール	
  
   –  Juno	
  版	
  Eclipse	
  Modeling	
  Package	
  をインストール	
  
   –  Xtext	
  の	
  milestone	
  版(2.4.0	
  Mx)をインストール	
  
   –  OCL	
  をインストール	
  
      •  h/p://www.eclipse.org/modeling/download.php?file=/
         modeling/mdt/ocl/downloads/drops/4.1.0/
         I201302021655/mdt-­‐ocl-­‐Update-­‐tools-­‐I201302021655.zip	
  
   –  QVTd	
  をインストール	
  
      •  h/p://www.eclipse.org/downloads/download.php?file=/
         mmt/qvtd/downloads/drops/0.10.0/N201302021656/
         mmt-­‐qvtd-­‐incubaSon-­‐Update-­‐N201302021656.zip
QVT	
  DeclaraHve	
•  参考情報	
  
  –  “Current	
  status	
  of	
  QVTd?”	
  
       •  Juno	
  Modeling	
  Package	
  ベースで QVTd,	
  QVTc	
  のエディ
          タを動作させる件について	
  Forum	
  でのやり取り	
  
       •  hYp://www.eclipse.org/forums/index.php/t/452424/	
  
QVT	
  DeclaraHve	
•  グラフィカル記法	
  
  –  標準に規定があり	
  Eclipse	
  Modeling	
  Project	
  に	
  UMLX	
  とい
     うプロジェクトもあったが現在活動なし	




        OMG	
  QVT1.1	
  よりの引用	
  Figure	
  A.4	
  Class	
  To	
  Table	
  relaHon
QVT	
  DeclaraHve	
•  medini	
  QVT	
  
   –  URL	
  hYp://projects.ikv.de/qvt	
  
   –  ikv++	
  technologies	
  社の公開する QVT	
  RelaHons	
  
      ツールで	
  EPL	
  ライセンス	
  
   –  グラフィカルデバッガやエディタを備える	
  
   –  非商用であれば自由に利用可能	
  
   –  商用については別途問い合わせ要(国内に取り
      扱っている会社が2社有)	
  
QVT	
  DeclaraHve	
•  medini	
  QVT	
  のインストール	
  
  –  Downloads	
  ページの指示に従う	
  
     •  hYp://projects.ikv.de/qvt/downloads	
  
     •  確実にインストール出来るのは	
  Indigo	
  版までの模様	
  
     •  Mac	
  の場合は	
  Indigo	
  版	
  Modeling	
  Tools	
  のインストー
        ル後にアップデートサイトを利用
QVT	
  DeclaraHve	
•  設定について	
  
  –  メタモデルは	
  Eclipse	
  IDE	
  の	
  Preference	
  に	
  QVT	
  
     Metamodels	
  という項目があり、そこに設定	
  
  –  その他は	
  Run	
  ConfiguraHon	
  に設定
QVT	
  DeclaraHve	
•  Preference	
  例
QVT	
  DeclaraHve	
•  Run	
  ConfiguraHon	
  例
QVT	
  DeclaraHve	
•  メタモデル(基本的に同じもの)	
   Families	




   Persons
QVT	
  DeclaraHve	




                  fn	
  が式の右側にくる	
  
                  のが特徴
QVT	
  DeclaraHve	




         やはり同じような	
  Query	
  機能が必要
QVT	
  DeclaraHve	
•  QVT	
  DeclaraHve	
  のまとめ	
  
   –  Eclipse	
  Modeling	
  Project	
  から利用出来るのはエ
      ディタのみ	
  
   –  モデル変換(実行)を行うには medini	
  QVT	
  他を用
      いる必要がある	
  
QVT	
  Core	
•  コア言語は、モデル群に対し評価可能なフラットな
   変数の集合に対するパターンマッチングをサポート	
  
  –  “The	
  Core	
  language	
  supports	
  paYern	
  matching	
  over	
  a	
  flat	
  
     set	
  of	
  variables	
  by	
  evaluaHng	
  condiHons	
  over	
  those	
  
     variables	
  against	
  a	
  set	
  of	
  models.	
  ”	
  (OMG	
  11-­‐01-­‐01)	
  


•  OperaHons	
  より	
  RelaHons	
  に近く、より詳細レベルで
   使える(その分記述量が多くなる)	
  
•  OMG文書からのサンプルコード(一部)を示す	
  
QVT	
  Core	




OMG	
  QVT	
  A.3.1	
  UML	
  to	
  RDBMS	
  Mapping	
  より一部引用(1/2)
QVT	
  Core	




OMG	
  QVT	
  A.3.1	
  UML	
  to	
  RDBMS	
  Mapping	
  より一部引用(2/2)
QVT	
  Core	
•  (前の方のスライドで述べた通り)次期	
  Eclipse	
  
   (Kepler)	
  と同期して QVTc	
  の実行可能版が出てくる
   予定	
  
  –  現時点では評価困難であり、Kepler	
  リリースを待ち実装
     内容を再度確認してはどうでしょう	
  
Xtext	
•  Xpand/Xtend1.0	
  
   –  この時代は Xtend(1.0)	
  が	
  M2M	
  に対応する機能
      とされていた	
  

   –  参考	
  
      •  Xpand	
  を用いた簡易	
  M2M	
  の実績有	
  
      •  内容的には次項のXtend2.0を用いた記述に近い
Xtext	
•  Xtend2.0	
  
   –  現在の Xtext	
  では Xtend	
  (2.0)	
  を利用	
  
   –  記述にあたり多少抽象レベルは上がるものの、モデ
      ル変換を	
  Java	
  で記述するのに近い	
  
   –  作成するコード類	
  
       •  モデル変換のロジック(Xtend)	
  
       •  ワークフローコンポーネント(java)	
  
       •  ワークフロー(mwe2)	
  


   –  試行しましたが(残念ながら)まだ動作に至らず
Eclipse	
  Modeling	
  外で最近進展のみられる興味深い活動事例	

OUTSIDE	
  ECLIPSE	
  MODELING
モデルベースの興味深い活動	




    hYp://www.genmymodel.com
モデルベースの興味深い活動	




    hYp://mbeddr.wordpress.com
最後に	
•  次回:2ヶ月後くらい?	
  
  –  どなたか EclipseCon	
  に参加される方おられますか	
  
•  次回の話題	
  
  –  Eclipse	
  	
  Modeling	
  Projectのどれか	
  
  –  エンタプライズ系	
  
  –  組込み系	
  
•  会場:10名程度が入る会議室で充分でしょうか?	
  
  –  無料でIT勉強会に使える場所もあるようですが、利用
     経験のある方ご感想を聞かせください

More Related Content

Viewers also liked

Intent Design Rapid Prototyping R2 Info Sheet
Intent Design   Rapid Prototyping R2   Info SheetIntent Design   Rapid Prototyping R2   Info Sheet
Intent Design Rapid Prototyping R2 Info Sheetdoddy990
 
Oral Language program for St Pats Kitchen Garden
Oral Language program for St Pats Kitchen GardenOral Language program for St Pats Kitchen Garden
Oral Language program for St Pats Kitchen Gardenlnash
 
ИС_Омега. Управление проектами ГЧП_2
ИС_Омега. Управление проектами ГЧП_2ИС_Омега. Управление проектами ГЧП_2
ИС_Омега. Управление проектами ГЧП_2Anna Grinenko
 
2011 06 15 hpm tweetchat transcript
2011 06 15 hpm tweetchat transcript2011 06 15 hpm tweetchat transcript
2011 06 15 hpm tweetchat transcriptChristian Sinclair
 
Cash.io in DC - Disruption in B2C payments
Cash.io in DC - Disruption in B2C paymentsCash.io in DC - Disruption in B2C payments
Cash.io in DC - Disruption in B2C paymentsgroupcard
 
2011 03 30 hpm tweetchat transcript
2011 03 30 hpm tweetchat transcript2011 03 30 hpm tweetchat transcript
2011 03 30 hpm tweetchat transcriptChristian Sinclair
 
2011 05 18 hpm tweetchat transcript
2011 05 18 hpm tweetchat transcript2011 05 18 hpm tweetchat transcript
2011 05 18 hpm tweetchat transcriptChristian Sinclair
 
Advice presentation dr house
Advice presentation dr houseAdvice presentation dr house
Advice presentation dr houseEvelin Peña
 
Ccr Registration Status
Ccr Registration StatusCcr Registration Status
Ccr Registration Statusjhorneman
 
CBCA NSW presentation
CBCA NSW presentationCBCA NSW presentation
CBCA NSW presentationlnash
 
Protecting Your Online Identity and Getting the Most out of Social Media
Protecting Your Online Identity and Getting the Most out of Social MediaProtecting Your Online Identity and Getting the Most out of Social Media
Protecting Your Online Identity and Getting the Most out of Social MediaChristian Sinclair
 
2011 03 16 hpm tweetchat transcript
2011 03 16 hpm tweetchat transcript2011 03 16 hpm tweetchat transcript
2011 03 16 hpm tweetchat transcriptChristian Sinclair
 
Camsu e.v Presentation
Camsu e.v  PresentationCamsu e.v  Presentation
Camsu e.v Presentationkmichel
 
How To Use Social Media to Advance Palliative Care
How To Use Social Media to Advance Palliative CareHow To Use Social Media to Advance Palliative Care
How To Use Social Media to Advance Palliative CareChristian Sinclair
 
Industry 4.0 trg 2014
Industry 4.0 trg 2014Industry 4.0 trg 2014
Industry 4.0 trg 2014Jayesh Pai
 
Управление знаниями при разработке проектов ГЧП
Управление знаниями при разработке проектов ГЧПУправление знаниями при разработке проектов ГЧП
Управление знаниями при разработке проектов ГЧПAnna Grinenko
 
Hospice and palliative tweetchat transcript 2010 08 25
Hospice and palliative tweetchat transcript 2010 08 25Hospice and palliative tweetchat transcript 2010 08 25
Hospice and palliative tweetchat transcript 2010 08 25Christian Sinclair
 
MikumiKids Catechese Kerstactie 2009
MikumiKids Catechese Kerstactie 2009MikumiKids Catechese Kerstactie 2009
MikumiKids Catechese Kerstactie 2009MikumiKids
 
The Five Senses And You!
The Five Senses And You!The Five Senses And You!
The Five Senses And You!jhyoung
 

Viewers also liked (20)

Intent Design Rapid Prototyping R2 Info Sheet
Intent Design   Rapid Prototyping R2   Info SheetIntent Design   Rapid Prototyping R2   Info Sheet
Intent Design Rapid Prototyping R2 Info Sheet
 
Oral Language program for St Pats Kitchen Garden
Oral Language program for St Pats Kitchen GardenOral Language program for St Pats Kitchen Garden
Oral Language program for St Pats Kitchen Garden
 
ИС_Омега. Управление проектами ГЧП_2
ИС_Омега. Управление проектами ГЧП_2ИС_Омега. Управление проектами ГЧП_2
ИС_Омега. Управление проектами ГЧП_2
 
2011 06 15 hpm tweetchat transcript
2011 06 15 hpm tweetchat transcript2011 06 15 hpm tweetchat transcript
2011 06 15 hpm tweetchat transcript
 
Cash.io in DC - Disruption in B2C payments
Cash.io in DC - Disruption in B2C paymentsCash.io in DC - Disruption in B2C payments
Cash.io in DC - Disruption in B2C payments
 
2011 03 30 hpm tweetchat transcript
2011 03 30 hpm tweetchat transcript2011 03 30 hpm tweetchat transcript
2011 03 30 hpm tweetchat transcript
 
2011 05 18 hpm tweetchat transcript
2011 05 18 hpm tweetchat transcript2011 05 18 hpm tweetchat transcript
2011 05 18 hpm tweetchat transcript
 
Advice presentation dr house
Advice presentation dr houseAdvice presentation dr house
Advice presentation dr house
 
Ccr Registration Status
Ccr Registration StatusCcr Registration Status
Ccr Registration Status
 
CBCA NSW presentation
CBCA NSW presentationCBCA NSW presentation
CBCA NSW presentation
 
Protecting Your Online Identity and Getting the Most out of Social Media
Protecting Your Online Identity and Getting the Most out of Social MediaProtecting Your Online Identity and Getting the Most out of Social Media
Protecting Your Online Identity and Getting the Most out of Social Media
 
2011 03 16 hpm tweetchat transcript
2011 03 16 hpm tweetchat transcript2011 03 16 hpm tweetchat transcript
2011 03 16 hpm tweetchat transcript
 
Camsu e.v Presentation
Camsu e.v  PresentationCamsu e.v  Presentation
Camsu e.v Presentation
 
How To Use Social Media to Advance Palliative Care
How To Use Social Media to Advance Palliative CareHow To Use Social Media to Advance Palliative Care
How To Use Social Media to Advance Palliative Care
 
Industry 4.0 trg 2014
Industry 4.0 trg 2014Industry 4.0 trg 2014
Industry 4.0 trg 2014
 
LW SOQ
LW SOQLW SOQ
LW SOQ
 
Управление знаниями при разработке проектов ГЧП
Управление знаниями при разработке проектов ГЧПУправление знаниями при разработке проектов ГЧП
Управление знаниями при разработке проектов ГЧП
 
Hospice and palliative tweetchat transcript 2010 08 25
Hospice and palliative tweetchat transcript 2010 08 25Hospice and palliative tweetchat transcript 2010 08 25
Hospice and palliative tweetchat transcript 2010 08 25
 
MikumiKids Catechese Kerstactie 2009
MikumiKids Catechese Kerstactie 2009MikumiKids Catechese Kerstactie 2009
MikumiKids Catechese Kerstactie 2009
 
The Five Senses And You!
The Five Senses And You!The Five Senses And You!
The Five Senses And You!
 

Similar to Eclipse Modeling QVT

OCL in Papyrus Introduction
OCL in Papyrus IntroductionOCL in Papyrus Introduction
OCL in Papyrus IntroductionAkira Tanaka
 
130329 04
130329 04130329 04
130329 04openrtm
 
20130329 rtm4
20130329 rtm420130329 rtm4
20130329 rtm4openrtm
 
EclipseCon NA 2015 report
EclipseCon NA 2015 reportEclipseCon NA 2015 report
EclipseCon NA 2015 reportAkira Tanaka
 
Eclipse modeling projectの概要
Eclipse modeling projectの概要Eclipse modeling projectの概要
Eclipse modeling projectの概要Shintaro Hosoai
 
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8Satoshi Ohkubo
 
Eclipse xtext 紹介
Eclipse xtext 紹介Eclipse xtext 紹介
Eclipse xtext 紹介Akira Tanaka
 
Jjug springセッション
Jjug springセッションJjug springセッション
Jjug springセッションYuichi Hasegawa
 
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】Tomoharu ASAMI
 
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)洋史 東平
 
Web本文抽出 using crf
Web本文抽出 using crfWeb本文抽出 using crf
Web本文抽出 using crfShuyo Nakatani
 
【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat
【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat
【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMatYasuhiro Yoshimura
 
Web技術勉強会23回目
Web技術勉強会23回目Web技術勉強会23回目
Web技術勉強会23回目龍一 田中
 
「入門Kubernetes」輪読会資料 6章
「入門Kubernetes」輪読会資料 6章「入門Kubernetes」輪読会資料 6章
「入門Kubernetes」輪読会資料 6章Ken SASAKI
 
オープンソースを利用したモデル駆動トライアル
オープンソースを利用したモデル駆動トライアルオープンソースを利用したモデル駆動トライアル
オープンソースを利用したモデル駆動トライアルAkira Tanaka
 
Data management of cosmos db using apache gremlin
Data management of cosmos db using apache gremlinData management of cosmos db using apache gremlin
Data management of cosmos db using apache gremlinTakao Tetsuro
 

Similar to Eclipse Modeling QVT (20)

OCL in Papyrus Introduction
OCL in Papyrus IntroductionOCL in Papyrus Introduction
OCL in Papyrus Introduction
 
130329 04
130329 04130329 04
130329 04
 
20130329 rtm4
20130329 rtm420130329 rtm4
20130329 rtm4
 
EclipseCon NA 2015 report
EclipseCon NA 2015 reportEclipseCon NA 2015 report
EclipseCon NA 2015 report
 
MoteMote Compiler Plugin
MoteMote Compiler PluginMoteMote Compiler Plugin
MoteMote Compiler Plugin
 
Eclipse modeling projectの概要
Eclipse modeling projectの概要Eclipse modeling projectの概要
Eclipse modeling projectの概要
 
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
 
Eclipse xtext 紹介
Eclipse xtext 紹介Eclipse xtext 紹介
Eclipse xtext 紹介
 
Jjug springセッション
Jjug springセッションJjug springセッション
Jjug springセッション
 
Spring3.1概要x di
Spring3.1概要x diSpring3.1概要x di
Spring3.1概要x di
 
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
 
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
 
Web本文抽出 using crf
Web本文抽出 using crfWeb本文抽出 using crf
Web本文抽出 using crf
 
【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat
【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat
【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat
 
Web技術勉強会23回目
Web技術勉強会23回目Web技術勉強会23回目
Web技術勉強会23回目
 
「入門Kubernetes」輪読会資料 6章
「入門Kubernetes」輪読会資料 6章「入門Kubernetes」輪読会資料 6章
「入門Kubernetes」輪読会資料 6章
 
オープンソースを利用したモデル駆動トライアル
オープンソースを利用したモデル駆動トライアルオープンソースを利用したモデル駆動トライアル
オープンソースを利用したモデル駆動トライアル
 
Data management of cosmos db using apache gremlin
Data management of cosmos db using apache gremlinData management of cosmos db using apache gremlin
Data management of cosmos db using apache gremlin
 
Spring AMQP × RabbitMQ
Spring AMQP × RabbitMQSpring AMQP × RabbitMQ
Spring AMQP × RabbitMQ
 
qmake入門
qmake入門qmake入門
qmake入門
 

More from Akira Tanaka

Developing Modeling Tool for RM-ODP with Eclipse Sirius
Developing Modeling Tool for RM-ODP with Eclipse SiriusDeveloping Modeling Tool for RM-ODP with Eclipse Sirius
Developing Modeling Tool for RM-ODP with Eclipse SiriusAkira Tanaka
 
EclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling reportEclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling reportAkira Tanaka
 
Eclipse Sirius Applied to a RAD Tool in Japan
Eclipse Sirius Applied to a RAD Tool in JapanEclipse Sirius Applied to a RAD Tool in Japan
Eclipse Sirius Applied to a RAD Tool in JapanAkira Tanaka
 
EclipseCon France 2018 report
EclipseCon France 2018 reportEclipseCon France 2018 report
EclipseCon France 2018 reportAkira Tanaka
 
Eclipse Modeling Environment 概要
Eclipse Modeling Environment 概要Eclipse Modeling Environment 概要
Eclipse Modeling Environment 概要Akira Tanaka
 
Eclipse con2017参加報告公開版
Eclipse con2017参加報告公開版Eclipse con2017参加報告公開版
Eclipse con2017参加報告公開版Akira Tanaka
 
Simple Line-Tracer statechart simulation with Yakindu
Simple Line-Tracer statechart simulation with YakinduSimple Line-Tracer statechart simulation with Yakindu
Simple Line-Tracer statechart simulation with YakinduAkira Tanaka
 
EclipseCon NA2016 report
EclipseCon NA2016 reportEclipseCon NA2016 report
EclipseCon NA2016 reportAkira Tanaka
 
Sirius を試してみて
Sirius を試してみてSirius を試してみて
Sirius を試してみてAkira Tanaka
 
MBSD ツールチェーンと今後の活動
MBSD ツールチェーンと今後の活動MBSD ツールチェーンと今後の活動
MBSD ツールチェーンと今後の活動Akira Tanaka
 
EMF Forms Introduction
EMF Forms IntroductionEMF Forms Introduction
EMF Forms IntroductionAkira Tanaka
 
モデルベースソフトウェア開発
モデルベースソフトウェア開発モデルベースソフトウェア開発
モデルベースソフトウェア開発Akira Tanaka
 
Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...
Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...
Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...Akira Tanaka
 
Xcore introduction
Xcore introductionXcore introduction
Xcore introductionAkira Tanaka
 

More from Akira Tanaka (20)

Developing Modeling Tool for RM-ODP with Eclipse Sirius
Developing Modeling Tool for RM-ODP with Eclipse SiriusDeveloping Modeling Tool for RM-ODP with Eclipse Sirius
Developing Modeling Tool for RM-ODP with Eclipse Sirius
 
DSL4ODP Diagrams
DSL4ODP DiagramsDSL4ODP Diagrams
DSL4ODP Diagrams
 
Dsl4 odp diagrams
Dsl4 odp diagramsDsl4 odp diagrams
Dsl4 odp diagrams
 
EclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling reportEclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling report
 
Sirius in 30 min.
Sirius in 30 min.Sirius in 30 min.
Sirius in 30 min.
 
Eclipse Sirius Applied to a RAD Tool in Japan
Eclipse Sirius Applied to a RAD Tool in JapanEclipse Sirius Applied to a RAD Tool in Japan
Eclipse Sirius Applied to a RAD Tool in Japan
 
EclipseCon France 2018 report
EclipseCon France 2018 reportEclipseCon France 2018 report
EclipseCon France 2018 report
 
Eclipse Modeling Environment 概要
Eclipse Modeling Environment 概要Eclipse Modeling Environment 概要
Eclipse Modeling Environment 概要
 
Eclipse con2017参加報告公開版
Eclipse con2017参加報告公開版Eclipse con2017参加報告公開版
Eclipse con2017参加報告公開版
 
Simple Line-Tracer statechart simulation with Yakindu
Simple Line-Tracer statechart simulation with YakinduSimple Line-Tracer statechart simulation with Yakindu
Simple Line-Tracer statechart simulation with Yakindu
 
EclipseCon NA2016 report
EclipseCon NA2016 reportEclipseCon NA2016 report
EclipseCon NA2016 report
 
Sirius を試してみて
Sirius を試してみてSirius を試してみて
Sirius を試してみて
 
Xtext 紹介
Xtext 紹介Xtext 紹介
Xtext 紹介
 
MBSD ツールチェーンと今後の活動
MBSD ツールチェーンと今後の活動MBSD ツールチェーンと今後の活動
MBSD ツールチェーンと今後の活動
 
EMF Forms Introduction
EMF Forms IntroductionEMF Forms Introduction
EMF Forms Introduction
 
モデルベースソフトウェア開発
モデルベースソフトウェア開発モデルベースソフトウェア開発
モデルベースソフトウェア開発
 
RM-ODP 概要
RM-ODP 概要RM-ODP 概要
RM-ODP 概要
 
Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...
Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...
Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...
 
Xcore introduction
Xcore introductionXcore introduction
Xcore introduction
 
Xtext 紹介
Xtext 紹介Xtext 紹介
Xtext 紹介
 

Recently uploaded

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Recently uploaded (7)

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

Eclipse Modeling QVT

  • 1. EclipseのM2M変換 QVTo  を中心として     田中   ビューファイブ  LLC
  • 2. アジェンダ •  MDA  における  M2M  変換の位置づけ   •  OMG  M2M  標準   •  Eclipse  Modeling  Project  における M2M  実装   –  QVT   –  ATL   –  Xtend  2.0
  • 3. MDA  における  M2M  変換の位置づけ •  CIM  -­‐>  PIM  -­‐>  PSM  !?   –  ComputaHon  Independent  Model  (CIM)   –  PlaKorm  Independent  Model  (PIM)   –  PlaKorm  Specific  Model  (PSM) refine refine refine M2M M2M M2T CIM PIM PSM becomes refine/refactor  もM2M適用対象
  • 4. OMG  M2M  標準 •  Meta  Object  Facility  (MOF)  2.0  Query/View/ TransformaHon  SpecificaHon   –  1.1  版:  January  2011   –  略称:  QVT   –  URL:  hYp://www.omg.org/spec/QVT/1.1   •  M2Mのための3種類の言語を規定   –  OperaHons  <手続き的>   –  RelaHons  +  Core  <パターンマッチング>
  • 5. Eclipse  Modeling  Project  における   M2M  実装   主要プロジェクト hYp://www.eclipse.org/projects/project.php?id=modeling.mmt
  • 6. Eclipse  Modeling  Project  における   M2M  実装 •  ATL   –  大島さんに説明をお願いしました   •  QVTr  or  QVTd  (+  QVTc)   –  Xtext  ベースの  Editor  の実装がほぼ出来ています(今後の計画につ いては後ほど)   –  これ以外に独ikv++  technologies社公開のmedini  QVTが知られていま す(メンテナンス状況が不明ですが問題なく動作します)   •  QVTo   –  現状で充分使えるレベルにあると思います   •  その他   –  Epsilon   –  VIATRA2   –  Xtend2
  • 7. M2M •  ここからは 「QVTo  をメインに」 三つの  QVT  +α   についてお話します   –  QVT  OperaHons   •  Eclipse  Modeling  QVTo   –  QVT  RelaHons   •  Eclipse  Modeling  QVTd   •  ikv++  technologies  medini  QVT   –  QVT  Core   •  Eclipse  Modeling  QVTd  
  • 8. QVT  :三つの言語 •  RelaHons   –  ハイレベルでのパターンマッチング(MOFモデル 間:Eclipseではecoreファイル間)   •  Core   –  ローレベルでのパターンマッチング   •  OperaHonal  Mappings   –  手続き型言語のように記述   補足) Black  Box  実装も含めることが出来ます
  • 9. QVT  :三つの言語 •  現状について   –  言語が三つある理由:標準化時に各種提案が マージされたため   –  トレースモデル(実装)を利用するため   OperaHonal  Mappings  が  RelaHon  に依存   –  Eclipse  Project  で実績があるのは  OperaHonal   Mappings   –  Eclipse  外の  Project  では medini  QVT  (RelaHon)   が実績有  
  • 10. QVT  OperaHons •  QVTo  の特徴   –  変換のための命令を並べる   –  OCL  を利用(QVTrも同様)  
  • 11. QVT  OperaHons •  Eclipse  QVTo  のインストール   –  Eclipse  Modeling  Package  をインストール   –  Help  の  Install  Modeling  Components  (次ページ) より  OperaHonal  QVT  を選択して  Finish   –  指示に従いインストールを済ませ  Eclipse  をリス タート
  • 12.
  • 13. QVT  OperaHons •  Eclipse  QVTo  の設定について   –  作成した QVTo  プロジェクトの属性   •  QVT  Sedngs  -­‐>  Metamodel  Mappings   •  ここに変換で使うメタモデルを登録   –  Run  ConfiguraHons   •  OperaHonal  QVT  Interpreter  の配下にプロジェクトごと に構成情報を登録   –  変換モジュールへのパス情報   –  トレースファイルのパス情報   –  変換前後ファイル(xmi形式)のパス情報
  • 14. QVT  OperaHons •  簡単な例題(標準仕様A.2.1)  <眺めるだけ>   –  Book  To  PublicaHon   •  Book(タイトル、章[*])  そして 章(章タイトル、章ページ 数)   •  PUB(タイトル、総ページ数)
  • 15. 星と空 星と空 第1章 星   ページ数 10 ジ 全300ペー
  • 16. QVT  OperaHons •  モデルデータの準備   –  メタモデル(Book,  PUB)作成   •  Ecore  Tools  を利用(前のスライド)   –  モデル作成(bookModel.xmi:テスト用)   •  EMF  の  Dynamic  Instance  作成機能を利用(簡単なモ デルの場合など)   •  本格的に作成するには   –  EMF,  GMF,  GMF/EuGENia  などを利用
  • 17. QVT  OperaHons •  モデル変換記述   モデルタイプ定義で   メタモデルを指定 modeltype  inModel  uses  BOOKS('hYp:///BOOKS.ecore');   ① モデル変換命令と   modeltype  outModel  uses  PUB('hYp:///PUB.ecore');     そのシグニチャ ② transformaHon  Book2PublicaHonOperaHonal(in  bm:inModel,out  pm:outModel);       main()  {   エントリポイント   ③  bm.objects()[Book]-­‐>map  book2pub();     Bookオブジェクトを集め   }   book2pubを適用   mapping  inModel::Book::book2pub()  :  outModel::PublicaHon  {   ④    Htle  :=  self.Htle;   タイトルをコピーし      nbPages  :=  self.chapter-­‐>nbPages-­‐>sum();     ページ数の総和を   }   算出
  • 18. QVT  OperaHons •  Eclipse  環境での操作(Families2Persons)   –  File  -­‐>  New  -­‐>  Project   –  Model  to  Model  TransformaHon  -­‐>  OperaHonal   QVT  Project  を選択し  Next   –  プロジェクト名(Families2Persons)を入力し  Next   –  デフォルトのまま  Next   –  “Create  arHfacts  …”  をチェックし  OperaHonal  QVT   TransformaHon  を選択し  Next   –  モジュール名(Family2PersonQVTo)を入力し   Finish  
  • 20. QVT  OperaHons •  Families2Persons:  Families metamodels  フォルダへ
  • 21. QVT  OperaHons •  Families2Persons:  Persons metamodels  フォルダへ
  • 22. QVT  OperaHons •  Families2Persons:  FamilyModel.xmi source_model  フォルダに   作成します
  • 23. <?xml  version="1.0"  encoding="ASCII"?>   <families:FamilyModel          xmi:version="2.0"          xmlns:xmi="hYp://www.omg.org/XMI"          xmlns:xsi="hYp://www.w3.org/2001/XMLSchema-­‐instance"          xmlns:families="hYp://families2"          xsi:schemaLocaHon="hYp://families2  ../metamodels/Families.ecore">      <families  lastName="March">          <father  firstName="Jim"/>          <mother  firstName="Cindy"/>   Ecoreファイルの場所が          <sons  firstName="Brandon"/>   記録される箇所がある          <daughters  firstName="Brenda"/>   ため注意して下さい    </families>      <families  lastName="Sailor">          <father  firstName="Peter"/>          <mother  firstName="Jackie"/>          <sons  firstName="David"/>          <sons  firstName="Dylan"/>          <daughters  firstName="Kelly"/>      </families>   </families:FamilyModel>  
  • 29. QVT  OperaHons お待たせしました
  • 30. QVT  OperaHons •  ここから少し補足説明をします   –  “Model  TransformaHons  using  QVT  OperaHonal   Mappings”   •  読者として  Beginner  を想定して書かれています   •  hYp://redpanda.nl/BEP_P.J.Barendrecht.pdf   –  “Model  TransformaHon  with  OperaHonal  QVT”   •  2008年の  EclipseCon  でのチュートリアル資料   •  hYp://www.eclipsecon.org/2008/sub/aYachments/ Model_transformaHon_with_OperaHonal_QVT.pdf    
  • 31. QVT  OperaHons •  modeltype   –  メタモデルデータの指定方法   •  workspace内のリソースを直接指定   – PlaKorm:/resource/プロジェクト名/…/xxx.ecore   •  一旦  eclipse  にリソースを登録しそれを参照   – Persons(‘hYp://persons’)   –  where  の利用   •  where  {self.objects()[Package]-­‐>size()>=1}
  • 32. QVT  OperaHons •  main()   –  引数無しの  main()  がエントリーポイントとなる   –  通常はモデルデータの入力があり、そこからルー ト要素ないし特定の型の要素を取り出し変換対 象とする   •  rootObjects()[model  element  type]   •  objects()[model  element  type]  
  • 33. QVT  OperaHons •  本格的な例題: Uml  to  Rdbms   –  QVT  標準の付録にあるモデル変換例   –  分量があるため大筋の説明にとどめます  
  • 34. QVT  OperaHons SimpleUML  metamodel   の中身をグラフィカルに   表示
  • 35. QVT  OperaHons RDB  metamodel  の中身   をグラフィカルに表示  
  • 37. QVT  OperaHons •  Eclipse  環境での操作   –  File  -­‐>  New  -­‐>  Example  -­‐>   –  OperaHonal  QVT  TransformaHon  -­‐>  SimpleUML  to   RDB  TransformaHon  Project  を選択   –  これで  UML  から  RDB  へのサンプル変換プロジェ クトが読み込まれます   –  プロジェクトに含まれるファイルから “Simpleuml_To_Rdb.qvto”  をダブルクリック等で 開いて下さい (QVTo  ファイル)
  • 38. QVT  OperaHons •  おおまかな変換ロジック(1)   –  modeltype  の宣言   –  transformaHon  の宣言(入出力指定)   –  uml(変換対象のUMLモデルデータ)からModelを 抜き出しRDBのModelに対応付け   –  Model  に含まれる  Package(ネストしたものも含 む)を取り出す  
  • 39. QVT  OperaHons •  おおまかな変換ロジック(2)   –  Package  に含まれる  persistent  な  Class  を  Table   に対応付け –  Table  に  PK  を設定   –  Table  に  FK  を設定   –  Table  に  Column  を設定   –  Column  の項目属性を設定   –  …  
  • 40. QVT  OperaHons •  SimpleUML  to  RDB  Project  で使う Metamodel   ファイルについて(参考)   –  Window  -­‐>  Show  View  -­‐>  Other  から  OperaHonal  QVT   -­‐>  Metamodel  Explorer  を選択するとシステムに登録 されている metamodel  の一覧と中身を参照出来ま す(Read  only)   –  QVTo  をインストールした  Eclipse  の  plugin  フォルダー の中に  org.eclipse.m2m.qvt.oml.samples  で始まる  jar   ファイルがあり、.zip  に変更し解凍すれば、このプロ ジェクトで使う ecore  ファイル本体が現れます
  • 41. QVT  OperaHons •  参考情報   –  QVTo  関連の各種  URLは後ほど勉強会のサイト に掲載します   –  ビルド関連で役に立つかもしれない情報   •  QVT:  command  line  execuHon   –  hYp://www.eclipse.org/forums/index.php/m/106647/   •  QVTOML/Examples/InvokeInJava   –  hYp://wiki.eclipse.org/QVTOML/Examples/InvokeInJava  
  • 43. 多方向・ declaraHve  変換言語 言語要素 一方向・ declaraHve  変換言語 一方向・ declaraHve   変換言語 一方向・  imperaHve  変換言語 hYp://wiki.eclipse.org/M2M/ QVT_DeclaraHve_Languages
  • 44. QVT  DeclaraHve •  現状   –  エディタ完成直前+ QVTi  実行エンジン作業中   •  今後の計画   –  ベーシックな QVTc  実行 for  Kepler  (2013年6月)   –  ベーシックな QVTr  実行  for  Kepler+1   –  最適化実行エンジン for  Kepler+2   –  補足)   •  git://github.com/arcanefoam/qvtMustus   •  近いうちに  eclipse  に移すとのこと
  • 45. QVT  DeclaraHve •  Eclipse  QVTd  のインストール   –  Juno  版  Eclipse  Modeling  Package  をインストール   –  Xtext  の  milestone  版(2.4.0  Mx)をインストール   –  OCL  をインストール   •  h/p://www.eclipse.org/modeling/download.php?file=/ modeling/mdt/ocl/downloads/drops/4.1.0/ I201302021655/mdt-­‐ocl-­‐Update-­‐tools-­‐I201302021655.zip   –  QVTd  をインストール   •  h/p://www.eclipse.org/downloads/download.php?file=/ mmt/qvtd/downloads/drops/0.10.0/N201302021656/ mmt-­‐qvtd-­‐incubaSon-­‐Update-­‐N201302021656.zip
  • 46. QVT  DeclaraHve •  参考情報   –  “Current  status  of  QVTd?”   •  Juno  Modeling  Package  ベースで QVTd,  QVTc  のエディ タを動作させる件について  Forum  でのやり取り   •  hYp://www.eclipse.org/forums/index.php/t/452424/  
  • 47. QVT  DeclaraHve •  グラフィカル記法   –  標準に規定があり  Eclipse  Modeling  Project  に  UMLX  とい うプロジェクトもあったが現在活動なし OMG  QVT1.1  よりの引用  Figure  A.4  Class  To  Table  relaHon
  • 48. QVT  DeclaraHve •  medini  QVT   –  URL  hYp://projects.ikv.de/qvt   –  ikv++  technologies  社の公開する QVT  RelaHons   ツールで  EPL  ライセンス   –  グラフィカルデバッガやエディタを備える   –  非商用であれば自由に利用可能   –  商用については別途問い合わせ要(国内に取り 扱っている会社が2社有)  
  • 49. QVT  DeclaraHve •  medini  QVT  のインストール   –  Downloads  ページの指示に従う   •  hYp://projects.ikv.de/qvt/downloads   •  確実にインストール出来るのは  Indigo  版までの模様   •  Mac  の場合は  Indigo  版  Modeling  Tools  のインストー ル後にアップデートサイトを利用
  • 50. QVT  DeclaraHve •  設定について   –  メタモデルは  Eclipse  IDE  の  Preference  に  QVT   Metamodels  という項目があり、そこに設定   –  その他は  Run  ConfiguraHon  に設定
  • 52. QVT  DeclaraHve •  Run  ConfiguraHon  例
  • 54. QVT  DeclaraHve fn  が式の右側にくる   のが特徴
  • 55. QVT  DeclaraHve やはり同じような  Query  機能が必要
  • 56. QVT  DeclaraHve •  QVT  DeclaraHve  のまとめ   –  Eclipse  Modeling  Project  から利用出来るのはエ ディタのみ   –  モデル変換(実行)を行うには medini  QVT  他を用 いる必要がある  
  • 57. QVT  Core •  コア言語は、モデル群に対し評価可能なフラットな 変数の集合に対するパターンマッチングをサポート   –  “The  Core  language  supports  paYern  matching  over  a  flat   set  of  variables  by  evaluaHng  condiHons  over  those   variables  against  a  set  of  models.  ”  (OMG  11-­‐01-­‐01)   •  OperaHons  より  RelaHons  に近く、より詳細レベルで 使える(その分記述量が多くなる)   •  OMG文書からのサンプルコード(一部)を示す  
  • 58. QVT  Core OMG  QVT  A.3.1  UML  to  RDBMS  Mapping  より一部引用(1/2)
  • 59. QVT  Core OMG  QVT  A.3.1  UML  to  RDBMS  Mapping  より一部引用(2/2)
  • 60. QVT  Core •  (前の方のスライドで述べた通り)次期  Eclipse   (Kepler)  と同期して QVTc  の実行可能版が出てくる 予定   –  現時点では評価困難であり、Kepler  リリースを待ち実装 内容を再度確認してはどうでしょう  
  • 61. Xtext •  Xpand/Xtend1.0   –  この時代は Xtend(1.0)  が  M2M  に対応する機能 とされていた   –  参考   •  Xpand  を用いた簡易  M2M  の実績有   •  内容的には次項のXtend2.0を用いた記述に近い
  • 62. Xtext •  Xtend2.0   –  現在の Xtext  では Xtend  (2.0)  を利用   –  記述にあたり多少抽象レベルは上がるものの、モデ ル変換を  Java  で記述するのに近い   –  作成するコード類   •  モデル変換のロジック(Xtend)   •  ワークフローコンポーネント(java)   •  ワークフロー(mwe2)   –  試行しましたが(残念ながら)まだ動作に至らず
  • 64. モデルベースの興味深い活動 hYp://www.genmymodel.com
  • 65. モデルベースの興味深い活動 hYp://mbeddr.wordpress.com
  • 66. 最後に •  次回:2ヶ月後くらい?   –  どなたか EclipseCon  に参加される方おられますか   •  次回の話題   –  Eclipse    Modeling  Projectのどれか   –  エンタプライズ系   –  組込み系   •  会場:10名程度が入る会議室で充分でしょうか?   –  無料でIT勉強会に使える場所もあるようですが、利用 経験のある方ご感想を聞かせください