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

35
MBSD ツールチェーンと今後の活動 2015/09/01 田中

Upload: akira-tanaka

Post on 24-Jan-2018

963 views

Category:

Technology


0 download

TRANSCRIPT

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

   

2015/09/01  田中  

アジェンダ

•  これまでの活動について  •  MBSD  ツールチェーン  •  今後の活動について  

2

これまでの活動

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

今後の活動イメージ

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回勉強会?

今後のために

•  当コミュニティの今後の活動を考えるため、MBSD を一歩引いて眺めてみます  

–  モデリング、モデル変換・コード生成・実行などで構成されるプロセスがあります  

–  これを、利用するツールを中心に整理します  

– MBSD  ツールチェーンです  •  それを利用して次の活動を考えたいということです

6

MBSD ツールチェーンの主な要素

•  主な概念を簡単にあげてみます

7

MBSD ツールチェーンの主な要素

•  もう少し分かり易いアクティビティ的な書き方にします

8

メタモデル  (モデル記述言語)

モデル

モデル変換

コード生成 コード実行環境

モデル実行環境

メタモデル  記述言語

モデルエディタ

モデリング手法

業務要件

モデルリポジトリ チーム開発・再利用

メタモデル記述言語  

•  メタモデルを記述するための言語・モデル  – 標準はOMG  MOF  (Meta-­‐Object  Facility)  – Eclipse  では  EMF  の中で  Ecore  として実装されて

います  – Xtext では一般的な文法定義用の  EBNF(Extended  Bucks-­‐Naur  Form) をベースにした文法定義言語を実装しています

9

10

hYps://eclipse.org/modeling/emf/

メタモデル記述言語  

hYps://ja.wikipedia.org/wiki/EBNF

hYp://www.eclipse.org/Xtext/documenta]on/301_grammarlanguage.html

11

メタモデル(モデル記述言語)  

•  モデル記述言語としての役割を果たします

12

UML メタモデルの例  

hYps://raw.githubusercontent.com/creckord/org.eclipse.uml2/master/plugins/org.eclipse.uml2.uml/model/UML.ecore 13

XMI(XML) 形式

木構造エディタで表示

UML.ecore

UML メタモデルの例  

14

UML.ecore を単に図形表示(一部)しただけだと大きく・細かくなり、ほとんど読めません

Xtext によるメタモデル記述例

付属のサンプルより 15

モデルエディタ  

•  モデル作成・編集等を行うためのエディタ  

16

モデル  

•  モデルエディタを使い作成した対象の抽象化

hYps://eclipse.org/sirius/gallery.html

hYp://www.eclipse.org/Xtext/documenta]on/103_domainmodelnextsteps.html

17

モデル変換  

•  ある観点で記述されたモデルを別の観点のモデルに変換すること  –  例1:オブジェクトモデルをリレーショナルモデルに変換  –  例2:ビジネスプロセスをサービスモデルに変換

18

コード生成  

•  モデルに含まれる情報に基づき、主に次のようなテキスト情報を生成すること  –  Java等のプログラムコード  –  HTMLデータ  –  XMLデータ  –  CSSデータ  –  ドキュメンテーション 等  

19

MBSD ツールチェーンの主な要素

メタモデル  (モデル記述言語)

モデル

モデル変換

コード生成 コード実行環境

モデル実行環境

メタモデル  記述言語

モデルエディタ

モデリング手法

業務要件

モデルリポジトリ チーム開発・再利用

20

これまでの活動で触れた技術を重ねてみると

メタモデル  (モデル記述言語)

モデル

モデル変換

コード生成 コード実行環境

モデル実行環境

メタモデル  記述言語

モデルエディタ

モデリング手法

業務要件

モデルリポジトリ チーム開発・再利用

要求定義  分析設計  UMLモデリング  DDD

UML,  EMF,  Sirius,  Xtext

BridgePoint/xtUML  “そのまま動作するモデル”  Mendix  EMF  Forms

Acceleo,  Xtend Spring

CMOF/EMOF/Xtext文法

UMLメタモデル,  DSL

21

MBSD ツールチェーン実現の形

•  Code  Genera]on  型  – UML  ベース  – Eclipse(DSL)ベース  

•  EMF  +  GMF  •  Sirius  •  Xtext  

•  Model  Interpreta]on/Execu]on  型  – UML  ベース  – Mendix  など

22

Code  Genera]on:  UML ベース

メタモデル  (モデル記述言語)

モデル

モデル変換

コード生成 コード実行環境

メタモデル  記述言語

モデルエディタ

モデリング手法

業務要件

モデルリポジトリ

MOF

UML2  メタモデル UML  ツール

メタモデル/UML  Profile

QVT,  ATL

Acceleo,  Xtend

UML  拡張 DDD

23

Code  Genera]on:  Eclipse ベース  -­‐-­‐-­‐  DSL:  EMF  +  GMF  -­‐-­‐-­‐

メタモデル  (モデル記述言語)

モデル

モデル変換

コード生成 コード実行環境

メタモデル  記述言語

モデルエディタ

モデリング手法

業務要件

モデルリポジトリ

eMOF

Ecore 木構造+属性エディタ  or  GMF  エディタ*

QVT,  ATL  

*  GMFエディタ開発はかなりの労力が必要

Acceleo,  Xpand/Xtend

?

24

Code  Genera]on:  Eclipse ベース  -­‐-­‐-­‐  DSL:  Sirius  -­‐-­‐-­‐

メタモデル  (モデル記述言語)

モデル

モデル変換

コード生成 コード実行環境

メタモデル  記述言語

モデルエディタ

モデリング手法

業務要件

モデルリポジトリ

eMOF

Ecore  ファイル Sirius  エディタ*

QVT, ATL

*  Sirius  エディタ開発は  GMF  エディタ開発よりかなり楽

Acceleo

?

25

Code  Genera]on:  Eclipse ベース  -­‐-­‐-­‐  DSL:  Xtext  -­‐-­‐-­‐

メタモデル  (モデル記述言語)

モデル

モデル変換

コード生成 コード実行環境

メタモデル  記述言語

モデルエディタ

モデリング手法

業務要件

モデルリポジトリ

Xtext 基本文法

Xtext  文法定義 Xtext  エディタ*

Xtend

*  Xtext  エディタ開発は  GMF  エディタ開発よりかなり楽

DSL  ファイル Xtend

?

26

Model  Interpreta]on/Execu]on  -­‐-­‐-­‐  UML  based  -­‐-­‐-­‐

メタモデル  (モデル記述言語)

モデル

モデル変換

モデル実行環境

メタモデル  記述言語

モデルエディタ

モデリング手法

業務要件

モデルリポジトリ

MOF

UML2  メタモデル UML  ツール

メタモデル/UML  Profile

QVT,  ATL

Executable  UML  (BridgePoint/xtUML),    EMF  Forms  ?

UML  拡張 DDD

?

27

Model  Interpreta]on/Execu]on  -­‐-­‐-­‐  DSL:  Mendix  -­‐-­‐-­‐

メタモデル  (モデル記述言語)

モデル モデル実行環境

メタモデル  記述言語

モデルエディタ

モデリング手法

業務要件

モデルリポジトリ

Business  Modeler

ユーザストーリー  データモデリング

各種  DSL  モデル

第1回モデルベースソフトウェア開発コミュニティ 勉強会で講演いただいた  渡辺 幸三さんの XEAD の場合もこれに類似した仕組みかもしれません

業務Web  Appsの範囲

?

28

今後の活動候補

•  これまで軽く紹介しました幾つかの技術について これから半年+α程度の期間、Workshop/HandsOn 形式で進めることを考えています  

29

今後の活動イメージ

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回勉強会?

今後の活動候補

•  現在主催者側で考えている候補技術  –  Eclipse  Acceleo  –  Eclipse  Xtext/Xtend  –  Eclipse  Sirius  –  BridgePoint/xtUML  –  Mendix  etc.  –  モデリング手法  

–  これら以外でも活動を希望される技術があればご提案ください(きっかけ作りなどのご協力もお願いします)  

31

今後の活動候補(補足)

•  本日ご紹介する 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

今後の活動イメージ

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

今後半年+α程度の活動候補

メタモデル  (モデル記述言語)

モデル

モデル変換

コード生成 コード実行環境

モデル実行環境

メタモデル  記述言語

モデルエディタ

モデリング手法

業務要件

モデルリポジトリ チーム開発・再利用

Workshop やハンズオン的活動

Acceleo,  Xtend Sirius,  Xtext

BridgePoint/xtUML,  (Mendix)

34

最後に

•  Workshop/Hands-­‐On 候補案より、本日は次の3件について簡単な紹介を行います  –  Code  Genera]on: Acceleo  (大島さん)  –  DSL:  Xtext  (田中)  –  DSL:  Sirius  (しぶやさん)  

•  お願い事項  –  本日の最後に Workshop/Hands-­‐on  対象についてご意見

を聞かせて下さい  

35