SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
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 を使う手もあります。


• 次のお話へ続く!

Más contenido relacionado

Destacado

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 presentEvelin Peña
 
Holistic Management Of Cancer Pain
Holistic Management Of Cancer PainHolistic Management Of Cancer Pain
Holistic Management Of Cancer PainChristian Sinclair
 
Updating a Treasure
Updating a TreasureUpdating a Treasure
Updating a TreasureTommy Ewasko
 
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 moneyEvelin Peña
 
Technology Showcase
Technology ShowcaseTechnology Showcase
Technology Showcaselenthurman
 
Camsu e.v Presentation
Camsu e.v  PresentationCamsu e.v  Presentation
Camsu e.v Presentationkmichel
 
Prolonged dying phase handouts march 2012
Prolonged dying phase handouts march 2012Prolonged dying phase handouts march 2012
Prolonged dying phase handouts march 2012Christian Sinclair
 
School subjects 2nd 3rd
School subjects 2nd 3rdSchool subjects 2nd 3rd
School subjects 2nd 3rdEvelin Peña
 
EclipseCon NA2016 report
EclipseCon NA2016 reportEclipseCon NA2016 report
EclipseCon NA2016 reportAkira Tanaka
 
31210 A5 Port Sign Brochure V12
31210 A5 Port Sign Brochure V1231210 A5 Port Sign Brochure V12
31210 A5 Port Sign Brochure V12doddy990
 
Welcome to the TLRU
Welcome to the TLRUWelcome to the TLRU
Welcome to the TLRUlnash
 
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 09Maggie Poppy
 
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 CareChristian Sinclair
 
Методика сопровождения проектов государственно-частного партнерства
Методика сопровождения проектов государственно-частного партнерстваМетодика сопровождения проектов государственно-частного партнерства
Методика сопровождения проектов государственно-частного партнерстваAnna Grinenko
 
iPads in Education QLD study tour
iPads in Education QLD study touriPads in Education QLD study tour
iPads in Education QLD study tourlnash
 

Destacado (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
 

Similar a Eclipse modeling 勉強会 dslについて

Xtext And Grails20091218
Xtext And Grails20091218Xtext And Grails20091218
Xtext And Grails20091218Akira Tanaka
 
Eclipse xtext 紹介
Eclipse xtext 紹介Eclipse xtext 紹介
Eclipse xtext 紹介Akira Tanaka
 
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標Tomoharu ASAMI
 
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
 
EclipseCon NA 2015 report
EclipseCon NA 2015 reportEclipseCon NA 2015 report
EclipseCon NA 2015 reportAkira Tanaka
 
MBSD ツールチェーンと今後の活動
MBSD ツールチェーンと今後の活動MBSD ツールチェーンと今後の活動
MBSD ツールチェーンと今後の活動Akira Tanaka
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
 
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】Tomoharu ASAMI
 
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 (日本語)Kazuho Oku
 
Eclipse modeling projectの概要
Eclipse modeling projectの概要Eclipse modeling projectの概要
Eclipse modeling projectの概要Shintaro Hosoai
 
20150531 phpcon kansai
20150531 phpcon kansai20150531 phpcon kansai
20150531 phpcon kansaikumamidori
 
Object-Funcational Analysis and design
Object-Funcational Analysis and designObject-Funcational Analysis and design
Object-Funcational Analysis and designTomoharu ASAMI
 
大規模なJavaScript開発の話
大規模なJavaScript開発の話大規模なJavaScript開発の話
大規模なJavaScript開発の話terurou
 
Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~Kenji Shirane
 
Xcore introduction
Xcore introductionXcore introduction
Xcore introductionAkira Tanaka
 
7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminar7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminarAtushi Sugiyama
 
20100324 勉強会資料(ドメイン駆動)
20100324 勉強会資料(ドメイン駆動)20100324 勉強会資料(ドメイン駆動)
20100324 勉強会資料(ドメイン駆動)Masayuki Kanou
 

Similar a 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 勉強会資料(ドメイン駆動)
 

Más de Akira Tanaka

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 SiriusAkira Tanaka
 
EclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling reportEclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling reportAkira Tanaka
 
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 JapanAkira Tanaka
 
EclipseCon France 2018 report
EclipseCon France 2018 reportEclipseCon France 2018 report
EclipseCon France 2018 reportAkira Tanaka
 
Eclipse Modeling Environment 概要
Eclipse Modeling Environment 概要Eclipse Modeling Environment 概要
Eclipse Modeling Environment 概要Akira Tanaka
 
Eclipse con2017参加報告公開版
Eclipse con2017参加報告公開版Eclipse con2017参加報告公開版
Eclipse con2017参加報告公開版Akira Tanaka
 
Sirius を試してみて
Sirius を試してみてSirius を試してみて
Sirius を試してみてAkira Tanaka
 
EMF Forms Introduction
EMF Forms IntroductionEMF Forms Introduction
EMF Forms IntroductionAkira Tanaka
 
オープンソースを利用したモデル駆動トライアル
オープンソースを利用したモデル駆動トライアルオープンソースを利用したモデル駆動トライアル
オープンソースを利用したモデル駆動トライアルAkira Tanaka
 
OCL in Papyrus Introduction
OCL in Papyrus IntroductionOCL in Papyrus Introduction
OCL in Papyrus IntroductionAkira Tanaka
 
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...Akira Tanaka
 
Eclipse Modeling QVT
Eclipse Modeling QVTEclipse Modeling QVT
Eclipse Modeling QVTAkira Tanaka
 
Eclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめにEclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめにAkira Tanaka
 
Experiment on BPM and SOA transformations
Experiment on BPM and SOA transformationsExperiment on BPM and SOA transformations
Experiment on BPM and SOA transformationsAkira Tanaka
 

Más 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
 

Último

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Último (8)

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

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 を使う手もあります。 • 次のお話へ続く!