Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

MBSD ツールチェーンと今後の活動

1,281 views

Published on

2015/09/01 に開催したモデルベースソフトウェア開発コミュニティ勉強会で説明した資料

Published in: Technology
  • Be the first to comment

MBSD ツールチェーンと今後の活動

  1. 1. MBSD  ツールチェーンと今後の活動     2015/09/01   田中  
  2. 2. アジェンダ •  これまでの活動について   •  MBSD  ツールチェーン   •  今後の活動について   2
  3. 3. これまでの活動 2015 02 03 04 05 06 07 08 09 10 ….. ・キックオフ(2/7) ・さくさく要件定義 勉強会(2/18) ・勉強会(4/25) ・DDD  Night(5/27) ・EMF  Forms ハンズオン Night  (6/3) ・UML  ハンズオン vol.1  (6/22) ・UML  ハンズオン vol.2  (7/15) 第0回と第1回は比較的広い話題で参加募集を行い、それ以外は特定の技術領域に限定し少人 数で募集を行いました 3
  4. 4. これまでの活動 4
  5. 5. 今後の活動イメージ 2015 09   10 11 12 01 02 03 04 05 ….. ・第2回勉強会(9/1:本日) 2016 5 X X X X Y Y Y Z Z Z ……. Workshop/Hands-­‐on ? ? ? ・第3回勉強会?
  6. 6. 今後のために •  当コミュニティの今後の活動を考えるため、MBSD を 一歩引いて眺めてみます   –  モデリング、モデル変換・コード生成・実行などで構成され るプロセスがあります   –  これを、利用するツールを中心に整理します   –  MBSD  ツールチェーンです   •  それを利用して次の活動を考えたいということです 6
  7. 7. MBSD ツールチェーンの主な要素 •  主な概念を簡単にあげてみます 7
  8. 8. MBSD ツールチェーンの主な要素 •  もう少し分かり易いアクティビティ的な書き方にします 8 メタモデル   (モデル記述言語) モデル モデル変換 コード生成 コード実行環境 モデル実行環境 メタモデル   記述言語 モデルエディタ モデリング手法 業務要件 モデルリポジトリ チーム開発・再利用
  9. 9. メタモデル記述言語   •  メタモデルを記述するための言語・モデル   – 標準はOMG  MOF  (Meta-­‐Object  Facility)   – Eclipse  では  EMF  の中で  Ecore  として実装されて います   – Xtext では一般的な文法定義用の   EBNF(Extended  Bucks-­‐Naur  Form) をベースにし た文法定義言語を実装しています 9
  10. 10. 10 hYps://eclipse.org/modeling/emf/
  11. 11. メタモデル記述言語   hYps://ja.wikipedia.org/wiki/EBNF hYp://www.eclipse.org/Xtext/documenta]on/301_grammarlanguage.html 11
  12. 12. メタモデル(モデル記述言語)   •  モデル記述言語としての役割を果たします 12
  13. 13. UML メタモデルの例   hYps://raw.githubusercontent.com/creckord/org.eclipse.uml2/master/plugins/org.eclipse.uml2.uml/model/UML.ecore 13 XMI(XML) 形式 木構造エディタで表示 UML.ecore
  14. 14. UML メタモデルの例   14 UML.ecore を単に図形表示(一部)しただけだと大きく・細かくなり、ほとんど読めません
  15. 15. Xtext によるメタモデル記述例 付属のサンプルより 15
  16. 16. モデルエディタ   •  モデル作成・編集等を行うためのエディタ   16
  17. 17. モデル   •  モデルエディタを使い作成した対象の抽象化 hYps://eclipse.org/sirius/gallery.html hYp://www.eclipse.org/Xtext/documenta]on/103_domainmodelnextsteps.html 17
  18. 18. モデル変換   •  ある観点で記述されたモデルを別の観点のモデル に変換すること   –  例1:オブジェクトモデルをリレーショナルモデルに変換   –  例2:ビジネスプロセスをサービスモデルに変換 18
  19. 19. コード生成   •  モデルに含まれる情報に基づき、主に次のようなテ キスト情報を生成すること   –  Java等のプログラムコード   –  HTMLデータ   –  XMLデータ   –  CSSデータ   –  ドキュメンテーション 等   19
  20. 20. MBSD ツールチェーンの主な要素 メタモデル   (モデル記述言語) モデル モデル変換 コード生成 コード実行環境 モデル実行環境 メタモデル   記述言語 モデルエディタ モデリング手法 業務要件 モデルリポジトリ チーム開発・再利用 20
  21. 21. これまでの活動で触れた技術を重ねてみると メタモデル   (モデル記述言語) モデル モデル変換 コード生成 コード実行環境 モデル実行環境 メタモデル   記述言語 モデルエディタ モデリング手法 業務要件 モデルリポジトリ チーム開発・再利用 要求定義   分析設計   UMLモデリング   DDD UML,  EMF,   Sirius,  Xtext BridgePoint/xtUML   “そのまま動作するモデル”   Mendix   EMF  Forms Acceleo,  Xtend Spring CMOF/EMOF/Xtext文法 UMLメタモデル,  DSL 21
  22. 22. MBSD ツールチェーン実現の形 •  Code  Genera]on  型   – UML  ベース   – Eclipse(DSL)ベース   •  EMF  +  GMF   •  Sirius   •  Xtext   •  Model  Interpreta]on/Execu]on  型   – UML  ベース   – Mendix  など 22
  23. 23. Code  Genera]on:  UML ベース メタモデル   (モデル記述言語) モデル モデル変換 コード生成 コード実行環境 メタモデル   記述言語 モデルエディタ モデリング手法 業務要件 モデルリポジトリ MOF UML2  メタモデル UML  ツール メタモデル/UML  Profile QVT,  ATL Acceleo,  Xtend UML  拡張 DDD 23
  24. 24. Code  Genera]on:  Eclipse ベース   -­‐-­‐-­‐  DSL:  EMF  +  GMF  -­‐-­‐-­‐ メタモデル   (モデル記述言語) モデル モデル変換 コード生成 コード実行環境 メタモデル   記述言語 モデルエディタ モデリング手法 業務要件 モデルリポジトリ eMOF Ecore 木構造+属性エディタ   or  GMF  エディタ* QVT,  ATL   *  GMFエディタ開発はかなりの労力が必要 Acceleo,  Xpand/Xtend ? 24
  25. 25. Code  Genera]on:  Eclipse ベース   -­‐-­‐-­‐  DSL:  Sirius  -­‐-­‐-­‐ メタモデル   (モデル記述言語) モデル モデル変換 コード生成 コード実行環境 メタモデル   記述言語 モデルエディタ モデリング手法 業務要件 モデルリポジトリ eMOF Ecore  ファイル Sirius  エディタ* QVT, ATL *  Sirius  エディタ開発は  GMF  エディタ開発よりかなり楽 Acceleo ? 25
  26. 26. Code  Genera]on:  Eclipse ベース   -­‐-­‐-­‐  DSL:  Xtext  -­‐-­‐-­‐ メタモデル   (モデル記述言語) モデル モデル変換 コード生成 コード実行環境 メタモデル   記述言語 モデルエディタ モデリング手法 業務要件 モデルリポジトリ Xtext 基本文法 Xtext  文法定義 Xtext  エディタ* Xtend *  Xtext  エディタ開発は  GMF  エディタ開発よりかなり楽 DSL  ファイル Xtend ? 26
  27. 27. Model  Interpreta]on/Execu]on   -­‐-­‐-­‐  UML  based  -­‐-­‐-­‐ メタモデル   (モデル記述言語) モデル モデル変換 モデル実行環境 メタモデル   記述言語 モデルエディタ モデリング手法 業務要件 モデルリポジトリ MOF UML2  メタモデル UML  ツール メタモデル/UML  Profile QVT,  ATL Executable  UML   (BridgePoint/xtUML),     EMF  Forms  ? UML  拡張 DDD ? 27
  28. 28. Model  Interpreta]on/Execu]on   -­‐-­‐-­‐  DSL:  Mendix  -­‐-­‐-­‐ メタモデル   (モデル記述言語) モデル モデル実行環境 メタモデル   記述言語 モデルエディタ モデリング手法 業務要件 モデルリポジトリ Business  Modeler ユーザストーリー   データモデリング 各種  DSL  モデル 第1回モデルベースソフトウェア開発コミュニティ 勉強会で講演いただいた   渡辺 幸三さんの XEAD の場合もこれに類似した仕組みかもしれません 業務Web  Appsの範囲 ? 28
  29. 29. 今後の活動候補 •  これまで軽く紹介しました幾つかの技術について これから半 年+α程度の期間、Workshop/HandsOn 形式で進めることを 考えています   29
  30. 30. 今後の活動イメージ 2015 09   10 11 12 01 02 03 04 05 ….. ・第2回勉強会(9/1:本日) 2016 30 X X X X Y Y Y Z Z Z ……. Workshop/Hands-­‐on ? ? ? ・第3回勉強会?
  31. 31. 今後の活動候補 •  現在主催者側で考えている候補技術   –  Eclipse  Acceleo   –  Eclipse  Xtext/Xtend   –  Eclipse  Sirius   –  BridgePoint/xtUML   –  Mendix  etc.   –  モデリング手法   –  これら以外でも活動を希望される技術があればご提案ください(きっ かけ作りなどのご協力もお願いします)   31
  32. 32. 今後の活動候補(補足) •  本日ご紹介する Acceleo と  Sirius  はフランスの Obeo  社が推進するもの ですが、この会社はいくつもの多くのオープンソースプロジェクトに関わっ ています   –  Eclipse  Acceleo  [model-­‐to-­‐text  transforma]on]   –  Eclipse  ATL  [model-­‐to-­‐model  transforma]on]   –  Eclipse  Sirius  [graphical  dsl  framework]   –  Eclipse  Ecore  Tools  [graphical  ecore  model  editor]   –  Capella  [systems  engineering  model  editor]   –  Obeo  UML/SysML  Designer  [UML/SysML  editor]   –  Obeo  Designer  (community  version) (商用製品)   –  Obeo  SmartEA (商用製品)   •  UML/SysML  Tool  や  Executable  UML  実装では  Papyrus  もあります   •  Xtext  もエコシステムとなっています   •  これまで名前の挙がっていないツール類・領域もあると思います   32
  33. 33. 今後の活動イメージ 2015 09   10 11 12 01 02 03 04 05 ….. ・第2回勉強会(9/1:本日) ・Acceleo  workshop/hands-­‐on   ・Sirius  workshop/hands-­‐on   ・Xtext  workshop/hands-­‐on   ・BridgePoint/xtUML          workshop/hands-­‐on   ・Mendix  workshop/hands-­‐on   ・  ???   ………. 2016 順不同そして候補です   各々1回で終わらないか もしれません 33
  34. 34. 今後半年+α程度の活動候補 メタモデル   (モデル記述言語) モデル モデル変換 コード生成 コード実行環境 モデル実行環境 メタモデル   記述言語 モデルエディタ モデリング手法 業務要件 モデルリポジトリ チーム開発・再利用 Workshop やハンズオン的活動 Acceleo,  Xtend Sirius,  Xtext BridgePoint/ xtUML,   (Mendix) 34
  35. 35. 最後に •  Workshop/Hands-­‐On 候補案より、本日は次の3件 について簡単な紹介を行います   –  Code  Genera]on: Acceleo  (大島さん)   –  DSL:  Xtext  (田中)   –  DSL:  Sirius  (しぶやさん)   •  お願い事項   –  本日の最後に Workshop/Hands-­‐on  対象についてご意見 を聞かせて下さい   35

×