SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
Graphical/Textual DSLs
  (Xtext と GMF を例として)

          田中明
   akira.odp@gmail.com
     日本Xtextユーザ会
DSLの定義
• Domain-Specific Languages (DSLs) の定義は
  Martin Fowler さんの本では次のようになって
  います
  – “a computer programming language of limited
    expressiveness focused on a particular domain”
DSLの分類
• Internal (or embedded) と External
  – ホストとなるプログラミング言語を持つものが
    Internal (or embedded) DSLs
  – ホストとなるプログラミング言語を持たないものが
    External DSLs
• Graphical と Textual
  – モデルを図式表現するのが Graphical DSLs
  – モデルをテキスト表現するのが Textual DSLs
Graphical DSL in Eclipse
• Graphical Modeling Framework (GMF) は
  Eclipse 環境で Graphical DSL を作成するため
  のフレームワーク
• 現在は Graphical Modeling Project (GMP) に
  所属
  – Graphical Modeling Framework (GMF) Notation
  – Graphical Modeling Framework (GMF) Runtime
  – Graphical Modeling Framework (GMF) Tooling
  – Graphiti
GMF
• ダッシュボード
GMF   普通の人なら
                  くじけ出す領域

• ダッシュボード
GMF で実現できるエディタ例




 Graphical Modeling Framework/Tutorial/Part 4 より
そのための Ecore モデル




Graphical Modeling Framework/Tutorial/Part 1 より引用
Tutorial
• ・・・・ にしては難しすぎる Ecore モデル

• そこで、極端に簡単な例に変更
GMF で実現できるエディタ例
そのための Ecore モデル
Graphical DSL Editor
•   ダイアグラムは Node と Link から構成される
•   通常 Node には種類がある
•   通常 Link は Node 間を結び種類がある
•   「Node と Link」 のダイアグラムは、先の最低
    限 Ecore モデルをベースに作成できる
    – 後はカスタマイズや制約追加など
Textual DSL in Eclipse
• Xtext は Eclipse 環境で Textual DSL を作成す
  るためのフレームワーク
• http://www.eclipse.org/Xtext/
• 現在は Textual Modeling Framework に所属

  – GMFで扱ったNetworkをXtextで記述すると ・・・
Xtext




        EBNF的な文法定義
Xtext
Xtext
• Xtend言語
 – Xtextとセットになっている言語
 – DSLで書いたモデルが処理の対象
 – Javaソースコードを生成可能
この段階では同じレベル
この段階でも同じレベル
違うのは
• Ecore モデルのグラフィカル要素有無
• Tooling
   – GMF
      • 直観的で分かり易いグラフィカルエディタとなる
      • ツール習得時間が長く、グラフィカルエディタ作成に必要な手数が多い
      • コード生成は別途
   – Xtext
      • シンプルで一見テキストエディタ(コード補完など有)
      • ツール習得時間が長い
      • コード生成にはXtend
• 振る舞い記述
   – プロセス記述的なものはグラフィカル記述が優位か?
• Scale
   – 要素数が多くなったときに扱い易いのはどちら?(テキスト型?)
改善に向けての努力
• Xtext
  – 以前よりテキスト型モデルをダイアグラムに変換する
    努力が続けられている
  – A fresh look at graphical editing @ eclipsecon 2012
    (http://www.slideshare.net/schwurbel/a-fresh-look-
    at-graphical-editing-12183802)
  – GMFに近づけるアプローチやモデルの可視化を目指
    すアプローチなどある
• GMF
  – 以前よりGMF簡略化・より良いGMFへの努力が続け
    られている
  – 例: Graphiti, EuGENia/Epsilon
DSLが必要になった時
• 選択肢
 – UML Profile
    • オープン:Papyrusなど
    • 商用UMLツール
 – Graphical DSL
    • オープン:GMFなど
    • 商用グラフィカルDSLツール
 – Textual DSL
    • オープン:Xtext
    • 商用テキスト型DSLツール
EuGENia
• 余りカバーされていない EuGENia
• 特長
 – Ecore モデルを テキスト型言語 Emfatic で表現し
   アノテーションを追加するだけで GMF のダイアグ
   ラムエディタを生成
 – 実現・機能範囲は限定的
   • 実験的・プロトタイプ的に使うのであれば十分
EuGENia
• 手順
 – Epsilonパッケージのインストール
 – GMFプロジェクトの作成
 – Ecore Toolsを用いてEcoreモデルを作成
 – コンテキストメニューでEmfatic形式に変換
 – アノテーション追記
 – コンテキストメニューでモデルエディタ生成
プロセスモデル記述例
ほぼ Node と Link だけ
モデルが出来たら
• ソフトウェア開発プロセスの成果物として利用
 – M2M
 – M2T
   • いろいろなツールがありますが、最後の手段として
     XSLT を使う手もあります。


• 次のお話へ続く!

Contenu connexe

En vedette

Technology Showcase
Technology ShowcaseTechnology Showcase
Technology Showcase
lenthurman
 
School subjects 2nd 3rd
School subjects 2nd 3rdSchool subjects 2nd 3rd
School subjects 2nd 3rd
Evelin Peña
 
The Five Senses And You!
The Five Senses And You!The Five Senses And You!
The Five Senses And You!
jhyoung
 
La Porte Profile Apr 09
La Porte Profile Apr 09La Porte Profile Apr 09
La Porte Profile Apr 09
Maggie Poppy
 

En vedette (18)

Formato de clase 4y 5 simple present
Formato de clase 4y 5 simple presentFormato de clase 4y 5 simple present
Formato de clase 4y 5 simple present
 
Holistic Management Of Cancer Pain
Holistic Management Of Cancer PainHolistic Management Of Cancer Pain
Holistic Management Of Cancer Pain
 
Updating a Treasure
Updating a TreasureUpdating a Treasure
Updating a Treasure
 
Formato de clase 4 y 5 money
Formato de clase 4 y 5 moneyFormato de clase 4 y 5 money
Formato de clase 4 y 5 money
 
Technology Showcase
Technology ShowcaseTechnology Showcase
Technology Showcase
 
Camsu e.v Presentation
Camsu e.v  PresentationCamsu e.v  Presentation
Camsu e.v Presentation
 
Prolonged dying phase handouts march 2012
Prolonged dying phase handouts march 2012Prolonged dying phase handouts march 2012
Prolonged dying phase handouts march 2012
 
School subjects 2nd 3rd
School subjects 2nd 3rdSchool subjects 2nd 3rd
School subjects 2nd 3rd
 
EclipseCon NA2016 report
EclipseCon NA2016 reportEclipseCon NA2016 report
EclipseCon NA2016 report
 
31210 A5 Port Sign Brochure V12
31210 A5 Port Sign Brochure V1231210 A5 Port Sign Brochure V12
31210 A5 Port Sign Brochure V12
 
Welcome to the TLRU
Welcome to the TLRUWelcome to the TLRU
Welcome to the TLRU
 
The Five Senses And You!
The Five Senses And You!The Five Senses And You!
The Five Senses And You!
 
La Porte Profile Apr 09
La Porte Profile Apr 09La Porte Profile Apr 09
La Porte Profile Apr 09
 
Tweet chat #hpm 2010 21 07
Tweet chat   #hpm 2010 21 07Tweet chat   #hpm 2010 21 07
Tweet chat #hpm 2010 21 07
 
HANDOUT 2009 Missouri Cancer Summit Palliative Care
HANDOUT 2009 Missouri Cancer Summit Palliative CareHANDOUT 2009 Missouri Cancer Summit Palliative Care
HANDOUT 2009 Missouri Cancer Summit Palliative Care
 
Graduates
GraduatesGraduates
Graduates
 
Методика сопровождения проектов государственно-частного партнерства
Методика сопровождения проектов государственно-частного партнерстваМетодика сопровождения проектов государственно-частного партнерства
Методика сопровождения проектов государственно-частного партнерства
 
iPads in Education QLD study tour
iPads in Education QLD study touriPads in Education QLD study tour
iPads in Education QLD study tour
 

Similaire à Eclipse modeling 勉強会 dslについて

Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Atsuhiro Kubo
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
 
JSX Design Overview (日本語)
JSX Design Overview (日本語)JSX Design Overview (日本語)
JSX Design Overview (日本語)
Kazuho Oku
 
20150531 phpcon kansai
20150531 phpcon kansai20150531 phpcon kansai
20150531 phpcon kansai
kumamidori
 
Object-Funcational Analysis and design
Object-Funcational Analysis and designObject-Funcational Analysis and design
Object-Funcational Analysis and design
Tomoharu ASAMI
 
20100324 勉強会資料(ドメイン駆動)
20100324 勉強会資料(ドメイン駆動)20100324 勉強会資料(ドメイン駆動)
20100324 勉強会資料(ドメイン駆動)
Masayuki Kanou
 

Similaire à Eclipse modeling 勉強会 dslについて (20)

Xtext And Grails20091218
Xtext And Grails20091218Xtext And Grails20091218
Xtext And Grails20091218
 
Eclipse xtext 紹介
Eclipse xtext 紹介Eclipse xtext 紹介
Eclipse xtext 紹介
 
20150513 legobease
20150513 legobease20150513 legobease
20150513 legobease
 
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
 
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
 
EclipseCon NA 2015 report
EclipseCon NA 2015 reportEclipseCon NA 2015 report
EclipseCon NA 2015 report
 
Kaleidox
KaleidoxKaleidox
Kaleidox
 
MBSD ツールチェーンと今後の活動
MBSD ツールチェーンと今後の活動MBSD ツールチェーンと今後の活動
MBSD ツールチェーンと今後の活動
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
 
What's Drupal & Drupal as a Employee App Platform
What's Drupal & Drupal as a Employee App PlatformWhat's Drupal & Drupal as a Employee App Platform
What's Drupal & Drupal as a Employee App Platform
 
JSX Design Overview (日本語)
JSX Design Overview (日本語)JSX Design Overview (日本語)
JSX Design Overview (日本語)
 
Eclipse modeling projectの概要
Eclipse modeling projectの概要Eclipse modeling projectの概要
Eclipse modeling projectの概要
 
20150531 phpcon kansai
20150531 phpcon kansai20150531 phpcon kansai
20150531 phpcon kansai
 
Object-Funcational Analysis and design
Object-Funcational Analysis and designObject-Funcational Analysis and design
Object-Funcational Analysis and design
 
大規模なJavaScript開発の話
大規模なJavaScript開発の話大規模なJavaScript開発の話
大規模なJavaScript開発の話
 
Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~
 
Xcore introduction
Xcore introductionXcore introduction
Xcore introduction
 
7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminar7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminar
 
20100324 勉強会資料(ドメイン駆動)
20100324 勉強会資料(ドメイン駆動)20100324 勉強会資料(ドメイン駆動)
20100324 勉強会資料(ドメイン駆動)
 

Plus de Akira Tanaka

Eclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめにEclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめに
Akira Tanaka
 

Plus de Akira Tanaka (19)

Developing Modeling Tool for RM-ODP with Eclipse Sirius
Developing Modeling Tool for RM-ODP with Eclipse SiriusDeveloping Modeling Tool for RM-ODP with Eclipse Sirius
Developing Modeling Tool for RM-ODP with Eclipse Sirius
 
DSL4ODP Diagrams
DSL4ODP DiagramsDSL4ODP Diagrams
DSL4ODP Diagrams
 
Dsl4 odp diagrams
Dsl4 odp diagramsDsl4 odp diagrams
Dsl4 odp diagrams
 
EclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling reportEclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling report
 
Sirius in 30 min.
Sirius in 30 min.Sirius in 30 min.
Sirius in 30 min.
 
Eclipse Sirius Applied to a RAD Tool in Japan
Eclipse Sirius Applied to a RAD Tool in JapanEclipse Sirius Applied to a RAD Tool in Japan
Eclipse Sirius Applied to a RAD Tool in Japan
 
EclipseCon France 2018 report
EclipseCon France 2018 reportEclipseCon France 2018 report
EclipseCon France 2018 report
 
Eclipse Modeling Environment 概要
Eclipse Modeling Environment 概要Eclipse Modeling Environment 概要
Eclipse Modeling Environment 概要
 
Eclipse con2017参加報告公開版
Eclipse con2017参加報告公開版Eclipse con2017参加報告公開版
Eclipse con2017参加報告公開版
 
Sirius を試してみて
Sirius を試してみてSirius を試してみて
Sirius を試してみて
 
EMF Forms Introduction
EMF Forms IntroductionEMF Forms Introduction
EMF Forms Introduction
 
オープンソースを利用したモデル駆動トライアル
オープンソースを利用したモデル駆動トライアルオープンソースを利用したモデル駆動トライアル
オープンソースを利用したモデル駆動トライアル
 
OCL in Papyrus Introduction
OCL in Papyrus IntroductionOCL in Papyrus Introduction
OCL in Papyrus Introduction
 
RM-ODP 概要
RM-ODP 概要RM-ODP 概要
RM-ODP 概要
 
Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...
Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...
Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...
 
Xtext 紹介
Xtext 紹介Xtext 紹介
Xtext 紹介
 
Eclipse Modeling QVT
Eclipse Modeling QVTEclipse Modeling QVT
Eclipse Modeling QVT
 
Eclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめにEclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめに
 
Experiment on BPM and SOA transformations
Experiment on BPM and SOA transformationsExperiment on BPM and SOA transformations
Experiment on BPM and SOA transformations
 

Dernier

Dernier (7)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

Eclipse modeling 勉強会 dslについて

  • 1. Graphical/Textual DSLs (Xtext と GMF を例として) 田中明 akira.odp@gmail.com 日本Xtextユーザ会
  • 2. DSLの定義 • Domain-Specific Languages (DSLs) の定義は Martin Fowler さんの本では次のようになって います – “a computer programming language of limited expressiveness focused on a particular domain”
  • 3. DSLの分類 • Internal (or embedded) と External – ホストとなるプログラミング言語を持つものが Internal (or embedded) DSLs – ホストとなるプログラミング言語を持たないものが External DSLs • Graphical と Textual – モデルを図式表現するのが Graphical DSLs – モデルをテキスト表現するのが Textual DSLs
  • 4. Graphical DSL in Eclipse • Graphical Modeling Framework (GMF) は Eclipse 環境で Graphical DSL を作成するため のフレームワーク • 現在は Graphical Modeling Project (GMP) に 所属 – Graphical Modeling Framework (GMF) Notation – Graphical Modeling Framework (GMF) Runtime – Graphical Modeling Framework (GMF) Tooling – Graphiti
  • 6. GMF 普通の人なら くじけ出す領域 • ダッシュボード
  • 7. GMF で実現できるエディタ例 Graphical Modeling Framework/Tutorial/Part 4 より
  • 8. そのための Ecore モデル Graphical Modeling Framework/Tutorial/Part 1 より引用
  • 9. Tutorial • ・・・・ にしては難しすぎる Ecore モデル • そこで、極端に簡単な例に変更
  • 12. Graphical DSL Editor • ダイアグラムは Node と Link から構成される • 通常 Node には種類がある • 通常 Link は Node 間を結び種類がある • 「Node と Link」 のダイアグラムは、先の最低 限 Ecore モデルをベースに作成できる – 後はカスタマイズや制約追加など
  • 13. Textual DSL in Eclipse • Xtext は Eclipse 環境で Textual DSL を作成す るためのフレームワーク • http://www.eclipse.org/Xtext/ • 現在は Textual Modeling Framework に所属 – GMFで扱ったNetworkをXtextで記述すると ・・・
  • 14. Xtext EBNF的な文法定義
  • 15. Xtext
  • 16. Xtext • Xtend言語 – Xtextとセットになっている言語 – DSLで書いたモデルが処理の対象 – Javaソースコードを生成可能
  • 19. 違うのは • Ecore モデルのグラフィカル要素有無 • Tooling – GMF • 直観的で分かり易いグラフィカルエディタとなる • ツール習得時間が長く、グラフィカルエディタ作成に必要な手数が多い • コード生成は別途 – Xtext • シンプルで一見テキストエディタ(コード補完など有) • ツール習得時間が長い • コード生成にはXtend • 振る舞い記述 – プロセス記述的なものはグラフィカル記述が優位か? • Scale – 要素数が多くなったときに扱い易いのはどちら?(テキスト型?)
  • 20. 改善に向けての努力 • Xtext – 以前よりテキスト型モデルをダイアグラムに変換する 努力が続けられている – A fresh look at graphical editing @ eclipsecon 2012 (http://www.slideshare.net/schwurbel/a-fresh-look- at-graphical-editing-12183802) – GMFに近づけるアプローチやモデルの可視化を目指 すアプローチなどある • GMF – 以前よりGMF簡略化・より良いGMFへの努力が続け られている – 例: Graphiti, EuGENia/Epsilon
  • 21. DSLが必要になった時 • 選択肢 – UML Profile • オープン:Papyrusなど • 商用UMLツール – Graphical DSL • オープン:GMFなど • 商用グラフィカルDSLツール – Textual DSL • オープン:Xtext • 商用テキスト型DSLツール
  • 22. EuGENia • 余りカバーされていない EuGENia • 特長 – Ecore モデルを テキスト型言語 Emfatic で表現し アノテーションを追加するだけで GMF のダイアグ ラムエディタを生成 – 実現・機能範囲は限定的 • 実験的・プロトタイプ的に使うのであれば十分
  • 23. EuGENia • 手順 – Epsilonパッケージのインストール – GMFプロジェクトの作成 – Ecore Toolsを用いてEcoreモデルを作成 – コンテキストメニューでEmfatic形式に変換 – アノテーション追記 – コンテキストメニューでモデルエディタ生成
  • 25. モデルが出来たら • ソフトウェア開発プロセスの成果物として利用 – M2M – M2T • いろいろなツールがありますが、最後の手段として XSLT を使う手もあります。 • 次のお話へ続く!