Your SlideShare is downloading. ×
0
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Eclipse xtext 紹介
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Eclipse xtext 紹介

1,867

Published on

2014年1月30日に開催されたBPStudy#77で使ったスライド(多少手を加えました)です。

2014年1月30日に開催されたBPStudy#77で使ったスライド(多少手を加えました)です。

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,867
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
8
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. テキスト型 DSL  開発フレームワーク Xtext   田中     ビューファイブ  LLC   Xtext  ユーザ会/Eclipse  Modeling  勉強会
  • 2. 自己紹介 •  本日の話題と関係しそうなこと   –  以前  OMG  のモデリング標準作成に参加していました   •  UML  や  MDA  はある程度なじんでいます   –  Eclipse  Conference  には  2  回参加したことがあります(モデリング系セ ション主体)   –  本年5月に Xtext  CON  がありそうなので、参加したいと思っています   –  現在の対外的活動   •  Xtext  ユーザ会   •  Eclipse  Modeling  Project  勉強会   •  Eclipse  Regional  Community/Japan  (名ばかり)
  • 3. Message  from  Xtext  Project  Lead Good  evening  everybody!     I  hope  you’ll  have  a  good  5me  hearing  about  Eclipse  Xtext.     I  am  very  pleased  to  hear  that  there  is  so  much  interest  in  this  topic  in   Tokyo!     You  are  all  very  welcome  to  try  this  framework  out  and  in  case  you  have   any  ques5ons  feel  free  to  ask  them  in  the  ac5ve  online  forum  at  Eclipse.       Also  in  case  you  consider  basing  some  serious  business  on  it,  you  should   know  that  my  company  itemis  offers  professional  services,  like  trainings   and  onsite  consul5ng.     Have  fun  and  keep  the  abstrac5ons  sound!     Best  Regards,   Sven  EKinge  (Xtext  project  lead)
  • 4. アジェンダ •  Xtext  で出来ること  これだけは見てから帰ってください   •  Xtext   –  概要   –  使い方    出来るだけ短くします       本日はこれを中心にお話します   •  Sample  Projects   –  例題   •  時間に余裕があれば   –  モデリングは  UML  だけじゃない・・・という話   –  EMF/GMF  まわりの進化の話  
  • 5. 簡単にいうと •  Xtext  は   –  Eclipse  環境で動作する   –  テキスト型 External  DSL  開発フレームワーク   •  DSL  エディタがほぼ自動的に作成できてしまう   •  コード生成のための仕組みもある
  • 6. Xtext  で出来ること •  デモ   –  こんなことが出来ます(エディタ側だけ)
  • 7. 少しは気になりましたか? •  では、もう少しおつきあいください
  • 8. Xtext  概要 •  プロジェクト所在場所   –  hIp://www.eclipse.org/Xtext/   –  hIp://www.eclipse.org/xtend/     –  hIp://xtext.itemis.com/   まずはここから •  国内活動   –  日本Xtextユーザ会   •  hIps://groups.google.com/forum/#!forum/xtext-­‐users-­‐japan   •  hIps://sites.google.com/site/xtextusersjapan/   –  Xtext入門e-­‐book   •  hIp://www.beta-­‐publish.com/  
  • 9. Eclipse  Modeling  Project hIp://www.eclipse.org/modeling/  
  • 10. hIp://www.eclipse.org/Xtext/index.html  
  • 11. 準備作業   •  インストール   –  updateより全体をダウンロードした方が確実   –  Diagram  Editor  for  Ecore  を追加インストールしておくと作成した文法 の ecore  モデルをクラス図的に確認できる(確認不要の方はインス トール不要)   •  設定   –  workspaceのencodingはUTF-­‐8に設定する   –  Run  configuraUonを使う   –  入力方法(”«»”)   •  その他   –  Net上に多くのXtext情報があるが、本体が進化し続けているため、最 新版では動作しない場合も往々にしてある   –  YoutubeやVimeoにも動画あり   –  ドキュメンテーションは、まず現住所のものを確認しよう   –  疑問点はマニュアルの他に  forum  や stackoverflow  もチエックしよう  
  • 12. インストール おすすめ hIp://www.eclipse.org/Xtext/download.html  
  • 13. Diagram  Editor  for  Ecore  インストール Help  -­‐>  Install  New  So`ware  … これを選択
  • 14. workspace
  • 15. Run  ConfiguraUons これを使います
  • 16. 新規 Xtext  プロジェクト作成画面
  • 17. こんな  .xtext  ファイルが生成されます 新規 Xtext  プロジェクト作成画面の情報に基づき作成される 我々が書き直す文法定義部分 この文法はサンプル
  • 18. Xtext  文法例 言語名の宣言 パッケージ名 .xtextファイル名 grammar  org.eclipse.xtext.example.domainmodel.Domainmodel   with  org.eclipse.xtext.xbase.Xbase   別言語とのmixin   org.eclipse.xtext.common.Terminals    生成 Ecore  モデルの Epackage  名宣言 generate  domainmodel  "hIp://www.xtext.org/example/ Domainmodel"   nsURI
  • 19. Xtext  文法例 規則名 ? * +  0または1(つまりオプション)  0以上  1以上 Model:    (elements  +=  Element)*;   規則の最後は“;”(セミコロン)で締めくくる   =  右側の規則が1回だけ呼び出される +=  右側の規則が1回以上呼び出される(結果はリスト相当になります) ?=  右側の式が成立した場合、左側の式が真となる(ブーリアン)
  • 20. Xtext  文法例 いずれか Element:  Datatype  |  SimpleEnUty  ;     Datatype:  'type'  name=ID  ; ID  は mixin  した別文法で下のように規定される   terminal  ID  :      ('^')?('a'..'z'|'A'..'Z'|'_')  ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;  
  • 21. サンプルプロジェクト紹介 •  GreeUng   –  デフォルトの文法   •  Domainmodel   –  簡単  EnUty  モデル   •  Domainmodel2   –  Package  と  Import  追加   •  Domainmodel3   –  Xtend  によるコード生成追加   •  Domainmodel4   –  JVM  言語化(Xbase他)  
  • 22. デフォルトの文法     DEMO  -­‐  GREETING
  • 23. GreeUng
  • 24. GreeUng •  デモで見て貰うポイント   –  プロジェクト作成   –  デフォルト文法定義   –  ArUfacts  生成(Workflow  実行)   –  エディタ起動(Run  ConfiguraUon)   –  エディタ動作(コード補完)  
  • 25. 簡単  EnUty  モデル     DEMO  DOMAINMODEL
  • 26. Domainmodel
  • 27. Domainmodel •  デモで見て貰うポイント   –  EnUty  文法定義   •  シンタクスグラフ   –  エディタ動作(コード補完)   –  Ecore  ファイル   •  場所   •  Sample  ReflecUve  Editor   •  ダイアグラム表示  
  • 28. Package  と  Import  追加   DEMO  DOMAINMODEL2
  • 29. Domainmodel2
  • 30. Domainmodel2 •  デモで見て貰うポイント   –  文法定義:Package  と  Import  の導入   –  エディタ動作(モデルの分割)  
  • 31. Xtend  によるコード生成追加   DEMO  DOMAINMODEL3
  • 32. Domainmodel3
  • 33. Domainmodel3 •  デモで見て貰うポイント   –  Xtend  によるコード生成   –  言語の  Unit  Test  の書き方   –  カスタムバリデーションの書き方   –  MyDsl  にもコメントアウトのサンプルコード有  
  • 34. JVM  言語化(Xbase他)   DEMO  DOMAINMODEL4
  • 35. Domainmodel4
  • 36. Domainmodel4 •  デモで見て貰うポイント   –  Terminal  から Xbase  へ (Java言語へ)   –  JvmModelInferer     –  Xtend  ライブラリ追加   –  Java  コード生成  
  • 37. ここまでの例題について •  Domainmodel  から  Domainmodel4  まで、すべ て Xtext  DocumentaUon  の  Gevng  Started  セ クションで解説されているものです   –  実際に Xtext  をインストールし、これら例題をご自 分で動かしてみることをオススメします  
  • 38. Example  Projects •  同梱されている  Example  Projects   –  Domainmodel   •  いろいろなコードが埋め込まれているので参考になり ます   –  FowlerDSL  (Statemachine)   •  同上   –  ArithmeUcs  (計算)   –  Xbase  Tutorial   –  Xtend  Tutorial   Java  コード生成をやりたい方は これらも試して下さい
  • 39. 私のチャレンジ •  Xtext  をより上位のモデリングに使えないか、 いろいろやってみた   –  ビジネスプロセス記述   –  サービス(SOA)記述   –  エンタプライズアーキテクチャ記述
  • 40. ビジネスプロセス記述例
  • 41. モデリング言語は UML  だけじゃない •  OMG  のモデリング言語   –  MOF   –  UML   –  Metamodels  
  • 42. Layers  of  Models M3 Meta-­‐meta  model MOF  (CMOF,  EMOF/ecore) conform  to Metamodel M2 e.g.  UML,  SOA,  BPMN,  … conform  to Model Instance  of Instance  or  Object  Model M1 e.g.  UML  models,  SOA  models,   BPMN  models,  … M0
  • 43. Eclipse  と Modeling •  EMF  関連プロジェクト(一部) EMF   Text Xtext Ecore   Tools … Xcore GMF GraphiU Spray EmfaUc EMF … + GEF Papyrus Time
  • 44. DSLの定義 •  Domain-­‐Specific  Languages  (DSLs)  の定義は MarUn  Fowler  さんの本では次のようになって います   –  “a  computer  programming  language  of  limited   expressiveness  focused  on  a  parUcular  domain”  
  • 45. DSLの分類 •  Internal  (or  embedded)  と External   –  ホストとなるプログラミング言語を持つものが Internal  (or  embedded)  DSLs   –  ホストとなるプログラミング言語を持たないものが External  DSLs   •  Graphical  と Textual   –  モデルを図式表現するのが Graphical  DSLs   –  モデルをテキスト表現するのが Textual  DSLs
  • 46. GMF •  ダッシュボード
  • 47. GMF  で実現できるエディタ例
  • 48. そのための Ecore  モデル
  • 49. 同じことを Xtext  で書くと
  • 50. Xtext  のモデル記述
  • 51. この段階では同じレベル
  • 52. この段階でも同じレベル
  • 53. 違うのは •  グラフィカル要素有無   •  Tooling   –  GMF   •  直観的で分かり易いグラフィカルエディタとなる   •  ツール習得時間が長く、グラフィカルエディタ作成に必要な手数が多い   •  コード生成は別途   –  Xtext   •  シンプルで一見テキストエディタ(コード補完など有)   •  ツール習得時間が長い(?)   •  コード生成にはXtend   •  振る舞い記述   –  プロセス記述的なものはグラフィカル記述が優位かも?   •  Scale   –  要素数が多くなったときに扱い易いのはどちら?(テキスト型?)
  • 54. Tips •  メジャーリリース時に Xtext  の  DocumentaUon   を印刷し手元に置いておくといろいろ便利(検 索には  HTML  が便利)   •  Youtube  等の動画サイトに説明ビデオ有り   •  Slideshare  等に説明スライド有り   •  参考になる各種プロジェクト   –  hIp://www.eclipse.org/Xtext/community.html
  • 55. もっとサンプルが見たい という方のために・・・
  • 56. hIp://www.eclipse.org/Xtext/community.html   ……..
  • 57. hIp://www.eclipse.org/Xtext/7languages.html  
  • 58. hIp://www.eclipse.org/xtend/  
  • 59. hIp://www.beta-­‐publish.com/  
  • 60. 最後に •  Xtext/Xtend  はかなり「使える」道具です   •  皆さんの開発ツールの一つに加えて貰えれば幸 いです   •  日本 Xtext  ユーザ会   –  hIps://sites.google.com/site/xtextusersjapan/     –  hIps://groups.google.com/forum/#!forum/xtext-­‐users-­‐japan     •  Eclipse  Modeling  勉強会   –  hIps://sites.google.com/site/eclipsemodelingsigjapan/     –  hIps://groups.google.com/forum/#!forum/eclipse-­‐modeling-­‐sig-­‐japan    

×