mbsd ツールチェーンと今後の活動
TRANSCRIPT
これまでの活動
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
今後の活動イメージ
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 ツールチェーンの主な要素
• もう少し分かり易いアクティビティ的な書き方にします
8
メタモデル (モデル記述言語)
モデル
モデル変換
コード生成 コード実行環境
モデル実行環境
メタモデル 記述言語
モデルエディタ
モデリング手法
業務要件
モデルリポジトリ チーム開発・再利用
メタモデル記述言語
• メタモデルを記述するための言語・モデル – 標準はOMG MOF (Meta-‐Object Facility) – Eclipse では EMF の中で Ecore として実装されて
います – Xtext では一般的な文法定義用の EBNF(Extended Bucks-‐Naur Form) をベースにした文法定義言語を実装しています
9
メタモデル記述言語
hYps://ja.wikipedia.org/wiki/EBNF
hYp://www.eclipse.org/Xtext/documenta]on/301_grammarlanguage.html
11
UML メタモデルの例
hYps://raw.githubusercontent.com/creckord/org.eclipse.uml2/master/plugins/org.eclipse.uml2.uml/model/UML.ecore 13
XMI(XML) 形式
木構造エディタで表示
UML.ecore
モデル
• モデルエディタを使い作成した対象の抽象化
hYps://eclipse.org/sirius/gallery.html
hYp://www.eclipse.org/Xtext/documenta]on/103_domainmodelnextsteps.html
17
コード生成
• モデルに含まれる情報に基づき、主に次のようなテキスト情報を生成すること – 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
今後の活動イメージ
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