eclipse modeling projectの概要
DESCRIPTION
2012/12/7 Eclipse Modeling勉強会の発表資料です. 発表時のものに加えて,モデリングプロジェクト下の概ね全てのプロジェクトのリストを付加しました. 一言コメントは,一応プロジェクトのDescriptionから読み取ったものですが,多々間違いもあるかもしれません.利用時は原典を参照ください(http://www.eclipse.org/projects/listofprojects.php)TRANSCRIPT
Copyright ©2012. Shintaro Hosoai. All rights reserved.
Eclipse Modeling Projects概要
細合 晋太郎北陸先端科学技術大学院大学
2012/12/7 Eclipse Modeling 勉強会
物事をある観点と抽象度で捉えることモデリングって?
対象
抽象度
観点
モデル
モデリングって?例えば UML では,
対象
Component Diagram
Package Diagram
Object Diagram
Deployment Diagram
Class Diagram
Composite Structure Diagram
Use Case Diagram
Activity Diagram
State Machine Diagram
Sequence Diagram
Interaction Overview Diagram
Communication Diagram
Timing Diagram
独自にモデルを作るには? → メタモデリング
ドメイン分析 そのドメインで必要な観点の洗い出し 分析方法の形式化
プロセスの明示化と自動化 開発プロセスの明示化 各工程にどのようなモデルが必要か それらのモデル間はどのように変換されるか
メタモデリングのメリット
モデルを構成する要素の定義が必要 モデルのためのモデル
→メタモデル
メタモデリングするには?
モデルハコ1
ハコ2
ハコ3
メタ
メタモデル箱
・名前 線src
trg
メタ?
OMG のモデル駆動型開発のためのアーキテクチャ
MOF, UML, XMI,etc.. PIM/PSM
Model Driven Architecture (MDA)
メタメタモデル( MOF )メタモデル
(ここで UML 等の定義がされている)
モデル( UML の各図など,実際に書かれるもの)
EMOF の実装 メタメタモデル ( の実装 ) があると,メタモデルが
作れる.メタモデルが作れると,モデルも作れる.
基盤が整うとモデル駆動開発のためのモデル入力・モデル変換・コード生成・モデル保存・比較などなどのツールが作れる.
EMF を基盤としたモデル駆動ツールのプロジェクト群
→ Eclipse Modeling Projects
Eclipse Modeling Framework
Eclipse Modeling Projects
親 Project : 10傘下 Project : 62
2012/12/06 現在
Eclipse Modeling Framework(EMF) Eclipse Modeling Framework Technology
(EMFT) Graphical Modeling Project Generative Modeling Technologies Model To Text ( M2T) Model Development Tools (MDT) Model to Model Transformation (MMT) Eclipse Presentation Modeling Framework 単体
Amalgamation Agent Modeling Platform Textual Modeling Framework
Eclipse Modeling Projects (Top level )
Top level Project の位置付け
EMFEcore, メタモデリング基盤,モデル・メタモデル操作, Merge,
Diff, Compare , Serialize, Repository , Query , Transaction, Validation
EMFTメタモデリング支援環境, Feature,
Team
M2Tコード生成
Acceleo, JET2, Xpand
MMTモデル変換
ATL, QVT, QVTd
GMFGraphical DSLGMF*, Graphiti
モデル入力 モデル変換 コード生成
メタモデリング,モデル操作
TMFTextual DSLXtext, TCS
Top level Projects 位置付け(その他)
MDT標準メタモデルとツールの提供
BPMN2 , UML2, OCL
GMTMDE プロトタイプ,研究領域
Amalgamationモデリングコンポーネントのパッケージ化,統合,ユーザビリティ
Agent Modeling Platform
エージェントベースモデリング環境
EMF メタモデル作成フレームワーク. EMP の基盤
CDO メタモデルリポジトリ,モデル永続化Teneo EMF と DB の OR マッピングEMF CompareEMF Diff/Merge
モデルの比較・差分・マージ
Modeling Workflow Engine (MWE2)
モデル操作用のワークフローエンジン
Eclipse Generation Factories
EMF によるソフトウェアファクトリ. e4 のPMF →XWT 等々,高度な生成を扱う
EMF Query モデルへのクエリサポートEMF Query2 同上,条件オブジェ又は SQL Like なクエリEMF Transaction マルチスレッド, Batch, Undo/Redo
EMF Validation 制約定義, Custom Traversal Algorithms , OCL
Eclipse Modeling Framework (EMF)
Pickup
Pickup
Pickup
Pickup
Pickup
メタモデル生成フレームワーク 入力
Ecore Java コード( Annotation を加えた POJO ) UML (Rational Rose 形式) XMI XML Schema
生成されるもの インタフェイスモデル 実装モデル ファクトリ プラグイン開発用のユーティリティクラス エディタプラグイン
EMF : EMF
EMF : EMF
Java
UML
XML Schema
メタモデル(ecore)
genmodel
モデルエディタプラグイン
(model.editor.*)
モデル(java)
メタモデルのJava 実装(model.*)
プラグイン用の操作クラス群
(model.edit.*)
モデル(xmi)
メタモデル
モデル
他のツールで,モデル変換・コード生成・ etc に利用
① メタモデル作成
②genmodel 作成
③ モデル実装,モデル操作,エディタの生成
メタモデルリポジトリとモデルの永続化 モデルを扱うためのクライアント API ,モ
デル永続化のためのサーバ API
EMF : CDO Model Repository
EMF と DB の ORM(Object Relational Mapping)
Ecore から ORM のための定義を自動生成
ORM エンジン Hibernate
対応 DB : MySQL, PostgressSQL, Derby, HSQL
Eclipse Link ( EMFT:Texo プロジェクトへ移行した模様)
EMF : Teneo
モデルの比較,差分,マージをサポートする.
Compare 単体で比較,差分,マージまでをサポートする.
Diff/Merge も比較・差分・マージを扱うが,現在まだインキュベーション
EMF : EMF Compare
EMF Diff/Merge
EMF のモデル操作に適したワークフローエンジン.汎用的な利用も可能
DSL でワークフローを定義し,実行することで順次実行される
個々のワークは,モデル操作ではある程度標準のものが準備され, Java で独自に追加することも可能
EMF : Modeling Workflow Engine
ワークフロー例
上から順次実行
一つのワークコンポーネント
ワークコンポーネント名 ( Java クラスに対応
プロパティは, set *()メソッドに対応.プロパティに値を設定した後に実行される.(例の箇所では, ~.ui/src-gen 以下を 全消去する
Eclipse Modeling Framework Technology
b3 PDE の新コンポーネントシステム? p2 後継っぽい?
Doc2Model 構造ドキュメント (xlsx, docx, odt, odf...) to EMF
Ecore Tools メタモデル (Ecore) グラフィカルエディタEdapt メタモデル・モデルのマイグレーションExtended Editing Framework (EEF)
MVC ベースの拡張 Editing Framework ,Binding が使いやすそう?
EMF Client Platform
EMF 利用アプリの雛形生成
EMF Facet 既存メタモデルを変更なしに拡張EMF Store メタモデルリポジトリ,バージョン管理emfatic Ecore 用 Textual DSL
epsilon モデル操作やその他の DSL セット.盛り沢山EMF Feature Model
EMF で定義された Feature Model ( SPL )
Henshin グラフィカルな変換言語,双方向変換EMF Refactor EMF モデルのリファクタリング支援ツールEMFT Texo サバクラインフラ, EMF/JPA 永続化, Json
通信Wazaabi モデルによる UI 定義. PMF 後継?
Pickup
Pickup
Ecore のグラフィカルエディタ メタモデルを作成する際に非常に便利 GMF を導入すると別バージョン?のEcore グラフィカルエディタが付属してくる
EMFT : Ecore Tools
ecoretools gmf.ecoreeditor
Model Development ToolsBusiness Process Modeling and Notation (BPMN2)
OMG の Business Process Model and Notation(BPMN) の EMF 実装
eTrice ROOM 方法論のためのモデリング環境IMM Releng OMG の Information Management
MetaModel
MoDisco リバースモデリング.コード→モデルOCL (Object Constraint Language)
OMG の Object Constraint Language(OCL) 実装とツール類
Papyrus UML エディタ. Profile のサポート豊富Requirements Modeling Framework
OMG の ReqIF 実装.要求モデリングのためのツール類
Sphinx モデリング統合環境の生成支援MDT UML2 UML の EMF 実装MDT UML2 Tools UML2 も用いた UML エディタ?MDT XSD (XML Schema Definition)
XML Schema の操作ライブラリ
Pickup
Model to Model Transformation
ATL モデル変換フレームワーク. QVT に近い変換言語と変換エンジン
QVT Operation OMG QVT の (部分 ) 実装QVTd (QVT Declarative)
こちらも OMG QVT の部分実装, QVT宣言言語の分離実装?
Pickup
Acceleo テンプレート言語, OMG 標準に近いJava Emitter Template (JET2)
EMF 対応のテンプレート
Xpand 旧 Xtext 付属のテンプレート言語
Model To Text (M2T)
Pickup
Xtend Xtext 付属の軽量言語.コード生成,モデル変換も可能M2T外
Graphical Modeling Framework(GMF) Notation
図表記用のメタモデル.ダイアグラム内の位置等の描画要素をモデルから分離する.OMG Diagram Interchange 準拠?
Graphical Modeling Framework(GMF) Runtime
Tools で生成したエディタのためのコンポーネントやユーティリティ
Graphical Modeling Framework(GMF) Tooling
旧 GMF? グラフィカルエディタ生成フレームワーク.ほぼすべての定義をモデルで行いPlugin 形式のグラフィカルエディタを生成
Graphiti EMF をベースにグラフィカルエディタを作成出来るか,かなりのコードが必要.
Graphical Modeling Project
Pickup
Pickup
Ecore モデルを元に,モデルベースでグラフィカルエディタを構築
簡易なモデルであれば,比較的容易に作成できる
Graphical Modeling Framework
GMF 例
高機能なグラフィカルエディタを生成可能 GMF に比べ,かなりの量のコードを書く必要がある.
Xtext による DSL で, Graphiti 用のコードを生成する. Spray というプロジェクトもある.
Graphiti
Textual Modeling Framework
Xtext Textual DSL 生成フレームワーク. DSL エディタからコード生成までをサポートする.生成される DSLエディタにはコード補完やハイライト等かなり高機能
Pickup
Textual DSL 開発支援環境Xtext
言語定義(.xtext)
コードテンプレート(.xtend)
ソースコード
EMF 生成物
DSL メタモデル(.ecore)
DSL エディタ
メタモデルモデル
DSLモデル
ワークフローは MWE
Generative Modeling Technologies (GMT)AMW – Atlas Model Weaver
メタモデル間の関係定義.比較,トレーサビリティ,アノテーション,相互運用
VIATRA2 グラフィカルなモデル変換フレームワーク
Pickup
単体トッププロジェクトAmalgamation Modeling Project のためのパッケージング
システム. Help>Install Modeling Components
Agent Modeling Platform
エージェントシステムのためのモデルプラットフォーム.モデルと実行環境
EMF -IncQuery インクリメンタルクエリEMP外の EMF関連プロジェクトPresentation Modeling Framework(PMF)
Eclipse Plugin の UI 定義をモデルで行う.どうも失速気味?→ Wazzabi