SlideShare a Scribd company logo
1 of 16
Eclipse Sirius ハンズオン
Eclipse/Sirius グラフィカル DSL エディタの作り方
(入門編)
2015/12/09
澁谷和弘
目次
1. Eclipse のモデルベース開発の基礎知識
2. Siriusについて
3. Eclipse Sirius Hands On
– Starter Tutorial
4. 次回の予定
Eclipse のモデルベース開発の基礎知識
• EMF
• モデルベースソフトウェア開発のステップと
ツール
• DSL
EMF(Eclipse Modeling Framework)
• Ecore(XMI記述)が基礎
– Java,UML,SchemaXMLと相互互換
• Ecoreからコード生成
– モデル、アダプタ、基本的なエディタ
Ecore
Schema XML UML
Java
言語/DSL の設
計
ドメインモデルの
記述
コード生成 実行
エディタ作成:Sirius, Xtext 等
Acceleo, Xtend 実行環境
モデルベースソフトウェア開発のステップとツール
--- eclipse の世界 ---
今回のフォーカス領域
グラフィカルエディタは直観的モデル記述が可能
効率を考えるとテキスト型も
Ecore, Xtext 等
DSL(Domain Specific Language)
• 1種類のタスクを上手く実行できることを集中した
もの。
– 例:SQL、yacc、make
– UMLの汎用ツールをよりターゲットに絞る
• DSLの種類
– 内部DSL
– 外部DSL
• DSLの記述方式
– テキスト型DSL
– グラフィカル型DSL
DSLのメリット
• メリット
– DRY(Don’t Repeat Yourself)
– 生産性の向上
– 特定ドメインの人とコミュニケーションが可能
• デメリット
– 設計が難しい
– 読みにくいコードになる可能性がある
– マイグレーション
– ハイリスクハイリターン
Siriusについて
Siriusとは
• グラフィカルDSLエディタ作成フレームワーク
– Ecore、viewpointをベースとして、グラフィカルエ
ディタを作成
– viewpoint:
• Ecoreとviewpointの紐付けによりエディタを作
成
Eclipse Sirius Hands On
Starter Tutorial
• https://wiki.eclipse.org/Sirius/Tutorials/Starte
rTutorial
今回のソースコード
• Githubに有ります。
– https://github.com/ponta027/sirius_handson
次回の予定
• Advanced Tutorial
– 日程未定

More Related Content

Similar to 20151209 eclipse sirius_handson

テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
Shintaro Hosoai
 
E4勉強会 事後修正版
E4勉強会 事後修正版E4勉強会 事後修正版
E4勉強会 事後修正版
kounan13
 
試して学べるクラウド技術! Eucalyptus/AeolusConductor
試して学べるクラウド技術! Eucalyptus/AeolusConductor試して学べるクラウド技術! Eucalyptus/AeolusConductor
試して学べるクラウド技術! Eucalyptus/AeolusConductor
Etsuji Nakai
 
Eclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめにEclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめに
Akira Tanaka
 
20121217 jawsug-yokohama
20121217 jawsug-yokohama20121217 jawsug-yokohama
20121217 jawsug-yokohama
Tetsuya Chiba
 
Hadoop on eucalyptus_20110221
Hadoop on eucalyptus_20110221Hadoop on eucalyptus_20110221
Hadoop on eucalyptus_20110221
Etsuji Nakai
 

Similar to 20151209 eclipse sirius_handson (20)

Sirius in 30 min.
Sirius in 30 min.Sirius in 30 min.
Sirius in 30 min.
 
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
 
Xtext And Grails20091218
Xtext And Grails20091218Xtext And Grails20091218
Xtext And Grails20091218
 
E4勉強会 事後修正版
E4勉強会 事後修正版E4勉強会 事後修正版
E4勉強会 事後修正版
 
EMF Forms Introduction
EMF Forms IntroductionEMF Forms Introduction
EMF Forms Introduction
 
Eclipse modeling 勉強会 dslについて
Eclipse modeling 勉強会 dslについてEclipse modeling 勉強会 dslについて
Eclipse modeling 勉強会 dslについて
 
Eclipse xtext 紹介
Eclipse xtext 紹介Eclipse xtext 紹介
Eclipse xtext 紹介
 
EclipseCon NA2016 report
EclipseCon NA2016 reportEclipseCon NA2016 report
EclipseCon NA2016 report
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 
試して学べるクラウド技術! Eucalyptus/AeolusConductor
試して学べるクラウド技術! Eucalyptus/AeolusConductor試して学べるクラウド技術! Eucalyptus/AeolusConductor
試して学べるクラウド技術! Eucalyptus/AeolusConductor
 
Kaleidox
KaleidoxKaleidox
Kaleidox
 
Eclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめにEclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめに
 
20121217 jawsug-yokohama
20121217 jawsug-yokohama20121217 jawsug-yokohama
20121217 jawsug-yokohama
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 
Introduction to extensions and other useful features for developing apps usin...
Introduction to extensions and other useful features for developing apps usin...Introduction to extensions and other useful features for developing apps usin...
Introduction to extensions and other useful features for developing apps usin...
 
UE4を使った クロスシミュレーションと、 ハイエンド・モバイルゲーム制作の奥義を伝授!
UE4を使った クロスシミュレーションと、 ハイエンド・モバイルゲーム制作の奥義を伝授!UE4を使った クロスシミュレーションと、 ハイエンド・モバイルゲーム制作の奥義を伝授!
UE4を使った クロスシミュレーションと、 ハイエンド・モバイルゲーム制作の奥義を伝授!
 
hscj2019_ishizaki_public
hscj2019_ishizaki_publichscj2019_ishizaki_public
hscj2019_ishizaki_public
 
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
 
Hadoop on eucalyptus_20110221
Hadoop on eucalyptus_20110221Hadoop on eucalyptus_20110221
Hadoop on eucalyptus_20110221
 
Askusa on AWS
Askusa on AWSAskusa on AWS
Askusa on AWS
 

20151209 eclipse sirius_handson

Editor's Notes

  1. 構造化データモデルに基づいたモデリング・フレームワークであり、ツールなどのアプリケーションを構築するコード生成ツールである。XMIで記述されたモデルから、Javaクラス群のコード、各種編集を可能とするアダプタークラス群、基本的なエディタを生成する。注釈つきのJavaコード、UML、XML、Rational Rose などでモデルを記述したものを EMF にインポートすることもできる。EMF は EMFに基づいたツールやアプリケーションの相互運用性の基盤を提供する。
  2. https://ja.wikipedia.org/wiki/%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E5%9B%BA%E6%9C%89%E8%A8%80%E8%AA%9E DSLの必要性: プログラム→メタプログラム = DSL
  3. https://en.wikipedia.org/wiki/View_model https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=10&ved=0ahUKEwjAxN3lxLjJAhVENqYKHTADAZcQFghVMAk&url=https%3A%2F%2Fipsj.ixsq.nii.ac.jp%2Fej%2Findex.php%3Faction%3Dpages_view_main%26active_action%3Drepository_action_common_download%26item_id%3D69630%26item_no%3D1%26attribute_id%3D1%26file_no%3D1%26page_id%3D13%26block_id%3D8&usg=AFQjCNGwB_ItyX0eLKVVUUhrEtdq07CxlQ&sig2=gJ54pEPEu_aW3K8TIhUJ8w&cad=rja https://en.wikipedia.org/wiki/IEEE_1471 https://ja.wikipedia.org/wiki/IEEE_1471 http://subs.emis.de/LNI/Proceedings/Proceedings206/123.pdf
  4. https://en.wikipedia.org/wiki/View_model https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=10&ved=0ahUKEwjAxN3lxLjJAhVENqYKHTADAZcQFghVMAk&url=https%3A%2F%2Fipsj.ixsq.nii.ac.jp%2Fej%2Findex.php%3Faction%3Dpages_view_main%26active_action%3Drepository_action_common_download%26item_id%3D69630%26item_no%3D1%26attribute_id%3D1%26file_no%3D1%26page_id%3D13%26block_id%3D8&usg=AFQjCNGwB_ItyX0eLKVVUUhrEtdq07CxlQ&sig2=gJ54pEPEu_aW3K8TIhUJ8w&cad=rja