SlideShare a Scribd company logo
1 of 46
Download to read offline
EMF Forms	
ーー 今日使い方を身につけ、明日からご活用ください ーー	
2015.06.03	
  田中	
  
EMF	
  Forms	
  開発元からのメッセージ	
•  Live-­‐Test:	
  EMF	
  Forms	
  vs.	
  Manually	
  Coding	
  UIs	
  
–  hCps://www.youtube.com/watch?v=KQliJCX7zNE	
  
	
  
–  オリジナルは上の動画ですが、本日のハンズオンでは日本語
キャプション付き特別版をご覧頂きます
はじめに	
•  EMF	
  Client	
  PlaSorm	
  と	
  EMF	
  Forms	
  は Eclipse	
  Modeling	
  Project に
含まれるプロジェクトです	
  
•  本日は	
  EMF	
  Forms	
  を「コードを書かずに利用出来る範囲」に限定
してお話します	
  
–  説明する使い方はドキュメンテーションに全て書かれています(英語)	
  
–  今日はその範囲で概要を説明しハンズオンで使い方を練習します	
  
•  謝辞	
  
–  今回のリソースをオープンソースとして公開して頂いている Eclipse	
  
FoundaUon、EMF	
  Forms	
  を推進している EclipseSource	
  社、そして	
  EMF	
  	
  
Forms	
  の Contributors に感謝します	
  
アジェンダ	
•  イントロダクション	
  
–  モデルから UI を生成するということ	
  
–  Ecore モデルについて	
  
–  EMF	
  -­‐>	
  ECP	
  ->	
  EMF	
  Forms	
  
•  ハンズオン	
  
–  Eclipse	
  Modeling	
  Package	
  インストール・動作確認	
  
–  EMF	
  Forms	
  例題の動作・プロジェクト内容確認	
  
–  Ecore	
  モデルの作成	
  
•  モデリングプロジェクト作成	
  
•  Ecore	
  モデル作成 (Ecore	
  Tools 等)	
  
•  EMF	
  コード生成 (Eclipse	
  Modeling	
  Framework:	
  EMF)	
  
–  ビューモデル作成	
  
–  SWT	
  Renderer	
  を使った	
  UI	
  生成	
  
モデル実行	
モデルから UI を生成するということ	
•  どんな状況で使えるのか?	
  
–  CONTEXT: モデルベースソフトウェア開発	
モデル開発	
ソフトウェア開発	
  
(モデル変換等)	
 ソフトウェア	
作成したモデルがシナリオ
やユーザストーリーをサポー
トしているか	
  
	
  
・ データモデルのほぼ即時
確認、仕様の早期収束	
UIのマニュアルコーディング
はできれば避けたい	
  
	
  
・ モデル変換でUIを生成す
れば、UI修正はモデル修正
で済む	
こちらが本日の主題	
 補足で少し触れます
モデルから UI を生成するということ	
•  (作業)モデルの確認とは	
  
–  モデルには構造を表すモデルと振る舞いを表すモデルがあります	
  
•  構造を表すモデル:クラス図、コンポーネント図、パッケージ図など	
  
•  振る舞いを表すモデル:ステートマシン図、アクティビティ図、シーケンス図など	
  
–  モデルの確認とは、書かれたモデルが矛盾を含まないことの確認で
はなく、モデルが素データ(シナリオ他やそこから作成したオブジェク
ト図・インスタンス図)を間違いなくサポートしていることを確認するこ
とです	
  
•  例)見落としたクラスがあり、期待するオブジェクト図(値)に至らない	
  
•  例)継承関係が逆の箇所があり、期待するオブジェクト図(値)に至らない	
  
•  例)シナリオにある手順に従いデータ投入しても、期待するオブジェクト図(値)に
至らない	
  
モデルから UI を生成するということ	
•  (作業)モデルの確認とは	
  
–  振る舞いを表すモデルの場合、通常シミュレーションが使われますが、
構造を表すモデルの場合どうするのでしょう?	
  
–  少なくともクラス図(相当)で表現するデータモデルの場合、UI を生成
出来れば、そこで素データが期待通り投入出来るか確認できます	
  
–  もちろん、モデルベース開発の一部として最終的な UI 生成もありま
す	
  
Customer	
 Business	
  Analyst/Modeler/	
  
System	
  Engineer	
Scenario/
User	
  stories
Ecore	
  モデルについて	
•  EMF	
  (Eclipse	
  Modeling	
  Framework)	
  で扱うモデルが	
  
Ecore	
  モデル	
  
–  仕様:MOF	
  (Meta-­‐Object	
  Facility)	
  の一部	
  
–  記法:UML	
  Class	
  図のサブセット	
  
•  継承、属性、操作等は書けます	
  
•  関連相当はありません(属性に参照が書けることで代用)	
  
•  関連クラス相当は書けません	
  
•  N項関連相当は書けません	
  
•  ステレオタイプは使えません 等	
  
Ecore	
  モデルについて	
•  File	
  	
  
–  >	
  New	
  	
  
–  >	
  Project	
  
Ecore	
  モデルについて
Ecore	
  モデルについて
EMF	
  で出来ること	
  
•  .genmodel	
  -­‐>	
  generate	
  all	
木構造型	
  
エディター	
属性エディター
EMF	
  Client	
  PlaSorm/EMF	
  Forms	
  について	
•  EclipseSource	
  社が推進する	
  Eclipse	
  Modeling	
  Project	
  
–  EclipseSource 社	
  [hCp://eclipsesource.com/en/home/]	
  
–  EMF	
  Client	
  PlaSorm	
  [hCp://eclipse.org/ecp/]	
  
–  EMF	
  Forms	
  [hCp://eclipse.org/ecp/emfforms/]	
  
	
  
•  EMF	
  Client	
  PlaSorm	
  
–  「EMF	
  Client	
  PlaSormは、EMFベースクライアントアプリケーション構築のフ
レームワーク。与えられたEMFモデルに基づくアプリケーション開発のため、
再利用・適用・拡張可能なUIコンポーネント提供を目的とする・・・」	
  
•  EMF	
  Forms:EMF	
  Client	
  PlaSorm	
  のサブコンポーネント	
  
–  「EMF	
  FormsはフォームベースUI開発に新たな方法を提供。手作業でフォーム
ベースのレイアウトをコーディングするのではなく、単純なモデルを記述すれば済
むようになる・・・」	
  
EclipseSource	
  社について	
hCp://eclipsesource.com/en/about/company/eclipsesource-­‐munich/	
  
EMF	
  Client	
  PlaSorm	
  で出来ること	
•  フォーム化(No	
  coding)
EMF	
  Forms	
  で出来ること	
•  SWT	
  アプリケーション化(No	
  coding)
EMF	
  Forms で出来ること	
•  EMF	
  Forms の仕組み: View	
  Model	
  導入	
  
Building	
  Business	
  UIs	
  with	
  EMF	
  Forms	
  
ここからハンズオンに入ります	
サンプルに触れた後、簡単なフォームエディターを作成します
Eclipse	
  Modeling	
  Package	
  インストール	
•  事前準備として Eclipse	
  Modeling	
  Package のインストールをお願いしまし
た: これを前提として進めます	
  
•  Eclipse	
  を起動してください	
  
•  Help	
  -­‐>	
  InstallaUon	
  Detail をみてください	
ECP	
  SDK	
配下に	
  EMF	
  Forms	
  が	
  
含まれています	
注) 日本語データを扱う場合:	
  
・ 環境設定 -­‐>	
  	
  
・ General	
  -­‐>	
  	
  
・ Workspace	
  	
  
で	
  text	
  file	
  encoding	
  が UTF-­‐8	
  
であることを確認して下さい
EMF	
  Forms	
  サンプル	
•  File	
  -­‐>	
  New	
  -­‐>	
  Example	
  -­‐>	
  EMF	
  Forms	
  -­‐>	
  Make	
  it	
  happen:	
  
example	
  model	
  を選択し	
  finish
Ecore	
  モデルの作成	
•  model プロジェクトと model.edit	
  プロジェクトの二つが生成さ
れます (Ecore	
  ファイルの中身を確認しましょう)
Ecore	
  モデルの作成	
•  Ecore モデルをダイアグラム表示すると次のようになります
viewmodel の作成	
•  .ecore	
  -­‐>	
  context	
  menu	
  -­‐>	
  New	
  -­‐>	
  Other	
  -­‐>	
  EMF	
  Forms	
  -­‐>	
  View	
  
Model	
  Project	
  
•  プロジェクト名:モデルプロジェクト名+.viewmodel	
  
•  モデル:workspace	
  から	
  .ecore	
  ファイルを選択	
  
•  EClass	
  :	
  UI	
  化する EClass	
  を選択
viewmodel の作成
viewmodel の作成	
•  試しに lastName を見てみましょう	
  
–  幾つか設定が可能です
viewmodel の作成	
•  プレビューを表示出来ます	
–  ビューエディターの右端にあるアイコンをダブルクリックします	
  
viewmodel の作成	
•  viewmodel を書き換えてみましょう	
  
–  下の手順で Horizontal/VerUcalLayout を配置し項目を移動します	
もしくは、次のページのようにします
viewmodel の作成	
•  viewmodel を書き換えてみましょう	
–  一部または全部の項目を削除し、必要な項目対応の Control を生成できます	
  
viewmodel の作成	
•  改めてプレビューを表示してみましょう(上半分が二列になっています)
SWT アプリケーションの作成	
•  Run	
  -­‐>	
  Run	
  configuraUon: Main	
  tab	
任意の名前	
こちらを選択	
org.eclipse.emf.ecp.applicaUon.e3.applicaUon	
  を選択
SWT アプリケーションの作成	
•  Run	
  -­‐>	
  Run	
  configuraUon: Plug-­‐ins	
  tab	
org.eclipse.emf.ecp.demo.e3.feature	
  を選択	
これをクリック
SWT アプリケーションの作成	
•  Run	
  -­‐>	
  Run	
  configuraUon: Plug-­‐ins	
  tab	
workspace にある三つのプロジェクトを	
  Plug-­‐ins	
  に追加
SWT アプリケーションの作成	
•  Run	
  -­‐>	
  Run	
  configuraUon: Plug-­‐ins	
  tab	
最後に	
  Run	
  をクリック	
  
SWT アプリケーションの作成	
新たな	
  Eclipse	
  インスタンスが立ち上がり、このような	
  
UI	
  を備えたアプリケーションが現れる	
新規プロジェクト作成
SWT アプリケーションの作成
SWT アプリケーションの作成
それでは試してみましょう	
•  テーマは	
  Order	
  Management	
  です	
  
このEcoreモデルを作成し	
  
UI	
  を生成して下さい	
顧客	
 注文	
注文明細	
 商品	
名前:EString	
注文番号:Eint	
  
注文日付:EDate	
個数:EInt	
名前:Estring	
  
価格:Eint
それでは試してみましょう	
•  手順:	
  
–  Ecore	
  Modeling	
  Project (モデリングプロジェクト)作成	
  
–  Ecoreモデル作成(グラフィカルエディター利用)	
  
–  genmodelに基づくコード生成	
  
–  viewmodelプロジェクト作成	
  
–  viewmodelの編集(何もしなくても良い)	
  
–  Run	
  configuraUon設定	
  
–  実行	
  
•  注意事項 	
  
–  以前 EMFStore	
  を使ったことのある場合(ホームディレクトリにあ
る) .emfstore	
  を削除してUI生成して下さい	
  
モデルコードとEditプロジェクトの生成
補足説明	
•  Eclipse	
  
–  Ecore	
  用としての Modeling	
  Package	
  以外に、Eclipse	
  の Plug-­‐in	
  
開発から派生した	
  RCP	
  (Rich	
  Client	
  PlaSorm)	
  及び	
  	
  RAP	
  
(Remote	
  ApplicaUon	
  PlaSorm)	
  の仕組みを活用しています	
  
•  Renderer	
  
–  今回説明した SWT	
  Renderer の他に、JavaFX/RAP/Vaadin/
AngularJS/Mobile	
  などの	
  Renderer	
  に取り組んでおり、モデル
部分のシングルソース化+ Renderer 選択、という形を目指し
ているようです	
  
•  これはモデル確認というより開発工程での利用を想定したもの	
  
•  Eclipse	
  内の類似プロジェクト	
  
–  EMF	
  Parsley	
  
補足説明	
•  Example	
  Project	
  について	
  
–  メール送信ボタン追加(コード)	
  
–  グループ定義(コード)	
  
–  説明で使用したモデル	
  
–  Eclipse	
  3	
  アプリケーション(コード)	
  
–  Eclipse	
  4	
  アプリケーション(コード)	
  
–  J2EE	
  RAP	
  アプリケーション(コード)	
  
–  JavaFX	
  アプリケーション(コード)	
  
–  シンプル	
  RAP	
  アプリケーション(コード)	
  
–  ビューモデル	
  
注意事項	
  
・ バージョンの組み合わせの関係か現時点で JavaFX	
  は動作しませんでした	
  
・ RAP	
  を試すには	
  RAP	
  Tools	
  のインストール、バグ対応、環境設定が必要になります	
  
 (Bug	
  462794	
  -­‐	
  EMF	
  Client	
  PlaSorm	
  with	
  RAP	
  Tutorial	
  bug:	
  target	
  file	
  入れ替え要)
まとめ	
•  顧客とのまたはチーム内での、仕様・モデルレビューの際に
ECP/EMF	
  Forms を使えば:	
  
–  ほぼリアルタイムで GUI 表示出来るため	
  
–  モデルの妥当性チェックを助けてくれます	
  
–  早い段階から	
  GUI	
  確認が出来ます	
  
–  結果として「開発効率アップ」が期待出来ます	
  
•  EclipseSource のプレゼンテーション(Maximilian	
  Kögel さん)
にある、どういう場面で UI	
  モデリングを使うと良いか	
  
è	
  次ページ (特にオススメの箇所に枠を追記しました)
:	
  modeling	
  関連
参考: Pleiades	
  による	
  Eclipse日本語化	
hCp://mergedoc.osdn.jp/index.html#/pleiades.html	
  	
  Pleiades	
  
お疲れ様でした	
以上でハンズオンを終わります	
 万能ではありませんが適した場面で
使えば、役に立つツールです	
  
	
  
ソフトウェア開発におけるモデル・モ
デリングの価値を高める為に、是非
明日からでも活用されることを期待
しています
参考	
•  Project	
  Home	
  Page	
  
–  hCp://www.eclipse.org/ecp/emfforms/	
  
•  Gepng	
  started	
  with	
  EMF	
  Forms	
  
–  hCp://eclipsesource.com/blogs/tutorials/gepng-­‐started-­‐with-­‐EMF-­‐Forms/	
  
•  EMF	
  Forms:	
  Renderer	
  
–  hCp://eclipsesource.com/blogs/tutorials/emf-­‐forms-­‐renderer/	
  
•  EMF	
  Forms:	
  Beyond	
  SWT	
  
–  hCp://eclipsesource.com/blogs/2015/05/18/emf-­‐forms-­‐beyond-­‐swt/	
  
•  Building	
  Business	
  UIs	
  with	
  EMF	
  Forms	
  
–  hCps://www.eclipsecon.org/na2015/sites/default/files/slides/Building
%20Business%20UIs%20with%20EMF%20Forms.pdf	
  
今日の範囲についてはこのページに書かれています

More Related Content

What's hot (6)

協調モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第7回】
協調モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第7回】協調モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第7回】
協調モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第7回】
 
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
 
Astah UML/ER/mindmapping modeling tool Introduction
Astah UML/ER/mindmapping modeling tool IntroductionAstah UML/ER/mindmapping modeling tool Introduction
Astah UML/ER/mindmapping modeling tool Introduction
 
UML2.5: What is changed and what is unchanged.
UML2.5: What is changed and what is unchanged.UML2.5: What is changed and what is unchanged.
UML2.5: What is changed and what is unchanged.
 
Eclipse con2010 参加報告 upload
Eclipse con2010 参加報告 uploadEclipse con2010 参加報告 upload
Eclipse con2010 参加報告 upload
 
Bee Style:vol.008
Bee Style:vol.008Bee Style:vol.008
Bee Style:vol.008
 

Viewers also liked

2011 03 16 hpm tweetchat transcript
2011 03 16 hpm tweetchat transcript2011 03 16 hpm tweetchat transcript
2011 03 16 hpm tweetchat transcript
Christian Sinclair
 
2011 03 23 hpm tweetchat transcript
2011 03 23 hpm tweetchat transcript2011 03 23 hpm tweetchat transcript
2011 03 23 hpm tweetchat transcript
Christian Sinclair
 
Formato plano 10th week2_form_noungerund
Formato plano 10th week2_form_noungerundFormato plano 10th week2_form_noungerund
Formato plano 10th week2_form_noungerund
Evelin Peña
 
Jai and Kassy's graduation from NCKG
Jai and Kassy's graduation from NCKGJai and Kassy's graduation from NCKG
Jai and Kassy's graduation from NCKG
lnash
 
Advice presentation dr house
Advice presentation dr houseAdvice presentation dr house
Advice presentation dr house
Evelin Peña
 
2011 06 22 hpm tweetchat transcript
2011 06 22 hpm tweetchat transcript2011 06 22 hpm tweetchat transcript
2011 06 22 hpm tweetchat transcript
Christian Sinclair
 
ИС_Омега. Управление проектами ГЧП_2
ИС_Омега. Управление проектами ГЧП_2ИС_Омега. Управление проектами ГЧП_2
ИС_Омега. Управление проектами ГЧП_2
Anna Grinenko
 

Viewers also liked (20)

2011 03 16 hpm tweetchat transcript
2011 03 16 hpm tweetchat transcript2011 03 16 hpm tweetchat transcript
2011 03 16 hpm tweetchat transcript
 
Updating a Treasure
Updating a TreasureUpdating a Treasure
Updating a Treasure
 
2011 03 23 hpm tweetchat transcript
2011 03 23 hpm tweetchat transcript2011 03 23 hpm tweetchat transcript
2011 03 23 hpm tweetchat transcript
 
The Career Heist
The Career HeistThe Career Heist
The Career Heist
 
Formato plano 10th week2_form_noungerund
Formato plano 10th week2_form_noungerundFormato plano 10th week2_form_noungerund
Formato plano 10th week2_form_noungerund
 
Internet of everything
Internet of everything Internet of everything
Internet of everything
 
Working With the Media: How to Reach the Widest Audience Possible
Working With the Media: How to Reach the Widest Audience PossibleWorking With the Media: How to Reach the Widest Audience Possible
Working With the Media: How to Reach the Widest Audience Possible
 
Prolonged dying phase handouts march 2012
Prolonged dying phase handouts march 2012Prolonged dying phase handouts march 2012
Prolonged dying phase handouts march 2012
 
Jai and Kassy's graduation from NCKG
Jai and Kassy's graduation from NCKGJai and Kassy's graduation from NCKG
Jai and Kassy's graduation from NCKG
 
Danielle Chapla
Danielle ChaplaDanielle Chapla
Danielle Chapla
 
Opioid review
Opioid reviewOpioid review
Opioid review
 
Advice presentation dr house
Advice presentation dr houseAdvice presentation dr house
Advice presentation dr house
 
2011 06 22 hpm tweetchat transcript
2011 06 22 hpm tweetchat transcript2011 06 22 hpm tweetchat transcript
2011 06 22 hpm tweetchat transcript
 
Industry 4.0 trg 2014
Industry 4.0 trg 2014Industry 4.0 trg 2014
Industry 4.0 trg 2014
 
Renewable Nc
Renewable NcRenewable Nc
Renewable Nc
 
Xcore introduction
Xcore introductionXcore introduction
Xcore introduction
 
Ipad apps used in pilot program
Ipad apps used in pilot programIpad apps used in pilot program
Ipad apps used in pilot program
 
Professional Skills - Powerpoint Skills (Handout)
Professional Skills - Powerpoint Skills (Handout)Professional Skills - Powerpoint Skills (Handout)
Professional Skills - Powerpoint Skills (Handout)
 
ИС_Омега. Управление проектами ГЧП_2
ИС_Омега. Управление проектами ГЧП_2ИС_Омега. Управление проектами ГЧП_2
ИС_Омега. Управление проектами ГЧП_2
 
Yr12 English QR code Odyssey
Yr12 English QR code OdysseyYr12 English QR code Odyssey
Yr12 English QR code Odyssey
 

Similar to EMF Forms Introduction

Eclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめにEclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめに
Akira Tanaka
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
Daisuke Sugai
 
Mono at Microsoft Tech Days Japan 2009
Mono at Microsoft Tech Days Japan 2009Mono at Microsoft Tech Days Japan 2009
Mono at Microsoft Tech Days Japan 2009
Atsushi Eno
 

Similar to EMF Forms Introduction (20)

Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
 
Eclipse xtext 紹介
Eclipse xtext 紹介Eclipse xtext 紹介
Eclipse xtext 紹介
 
Eclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめにEclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめに
 
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
 
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶjQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
 
EclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling reportEclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling report
 
Eclipse Modeling Environment 概要
Eclipse Modeling Environment 概要Eclipse Modeling Environment 概要
Eclipse Modeling Environment 概要
 
20151209 eclipse sirius_handson
20151209 eclipse sirius_handson20151209 eclipse sirius_handson
20151209 eclipse sirius_handson
 
設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】
設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】
設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
いまさらアジャイル巡業 In Tokyo アジャイルモデリング
いまさらアジャイル巡業 In Tokyo アジャイルモデリングいまさらアジャイル巡業 In Tokyo アジャイルモデリング
いまさらアジャイル巡業 In Tokyo アジャイルモデリング
 
APEX Workshop II 日本語版
APEX Workshop II 日本語版APEX Workshop II 日本語版
APEX Workshop II 日本語版
 
Room metro Tokyo #3 発表資料です。
Room metro Tokyo #3 発表資料です。Room metro Tokyo #3 発表資料です。
Room metro Tokyo #3 発表資料です。
 
20140629 firefoxos-devenv
20140629 firefoxos-devenv20140629 firefoxos-devenv
20140629 firefoxos-devenv
 
Silverlight+COMにチャレンジ
Silverlight+COMにチャレンジSilverlight+COMにチャレンジ
Silverlight+COMにチャレンジ
 
Mono at Microsoft Tech Days Japan 2009
Mono at Microsoft Tech Days Japan 2009Mono at Microsoft Tech Days Japan 2009
Mono at Microsoft Tech Days Japan 2009
 
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
 
Xamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターンXamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターン
 
無料環境でWindows Mobileアプリ開発
無料環境でWindows Mobileアプリ開発無料環境でWindows Mobileアプリ開発
無料環境でWindows Mobileアプリ開発
 
12 総合演習Word Pressの利用
12 総合演習Word Pressの利用12 総合演習Word Pressの利用
12 総合演習Word Pressの利用
 

More from Akira Tanaka

More from Akira Tanaka (20)

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
 
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 con2017参加報告公開版
Eclipse con2017参加報告公開版Eclipse con2017参加報告公開版
Eclipse con2017参加報告公開版
 
Simple Line-Tracer statechart simulation with Yakindu
Simple Line-Tracer statechart simulation with YakinduSimple Line-Tracer statechart simulation with Yakindu
Simple Line-Tracer statechart simulation with Yakindu
 
EclipseCon NA2016 report
EclipseCon NA2016 reportEclipseCon NA2016 report
EclipseCon NA2016 report
 
Sirius を試してみて
Sirius を試してみてSirius を試してみて
Sirius を試してみて
 
Xtext 紹介
Xtext 紹介Xtext 紹介
Xtext 紹介
 
MBSD ツールチェーンと今後の活動
MBSD ツールチェーンと今後の活動MBSD ツールチェーンと今後の活動
MBSD ツールチェーンと今後の活動
 
モデルベースソフトウェア開発
モデルベースソフトウェア開発モデルベースソフトウェア開発
モデルベースソフトウェア開発
 
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 勉強会 dslについて
Eclipse modeling 勉強会 dslについてEclipse modeling 勉強会 dslについて
Eclipse modeling 勉強会 dslについて
 
Experiment on BPM and SOA transformations
Experiment on BPM and SOA transformationsExperiment on BPM and SOA transformations
Experiment on BPM and SOA transformations
 

EMF Forms Introduction

  • 2. EMF  Forms  開発元からのメッセージ •  Live-­‐Test:  EMF  Forms  vs.  Manually  Coding  UIs   –  hCps://www.youtube.com/watch?v=KQliJCX7zNE     –  オリジナルは上の動画ですが、本日のハンズオンでは日本語 キャプション付き特別版をご覧頂きます
  • 3. はじめに •  EMF  Client  PlaSorm  と  EMF  Forms  は Eclipse  Modeling  Project に 含まれるプロジェクトです   •  本日は  EMF  Forms  を「コードを書かずに利用出来る範囲」に限定 してお話します   –  説明する使い方はドキュメンテーションに全て書かれています(英語)   –  今日はその範囲で概要を説明しハンズオンで使い方を練習します   •  謝辞   –  今回のリソースをオープンソースとして公開して頂いている Eclipse   FoundaUon、EMF  Forms  を推進している EclipseSource  社、そして  EMF     Forms  の Contributors に感謝します  
  • 4. アジェンダ •  イントロダクション   –  モデルから UI を生成するということ   –  Ecore モデルについて   –  EMF  -­‐>  ECP  ->  EMF  Forms   •  ハンズオン   –  Eclipse  Modeling  Package  インストール・動作確認   –  EMF  Forms  例題の動作・プロジェクト内容確認   –  Ecore  モデルの作成   •  モデリングプロジェクト作成   •  Ecore  モデル作成 (Ecore  Tools 等)   •  EMF  コード生成 (Eclipse  Modeling  Framework:  EMF)   –  ビューモデル作成   –  SWT  Renderer  を使った  UI  生成  
  • 5. モデル実行 モデルから UI を生成するということ •  どんな状況で使えるのか?   –  CONTEXT: モデルベースソフトウェア開発 モデル開発 ソフトウェア開発   (モデル変換等) ソフトウェア 作成したモデルがシナリオ やユーザストーリーをサポー トしているか     ・ データモデルのほぼ即時 確認、仕様の早期収束 UIのマニュアルコーディング はできれば避けたい     ・ モデル変換でUIを生成す れば、UI修正はモデル修正 で済む こちらが本日の主題 補足で少し触れます
  • 6. モデルから UI を生成するということ •  (作業)モデルの確認とは   –  モデルには構造を表すモデルと振る舞いを表すモデルがあります   •  構造を表すモデル:クラス図、コンポーネント図、パッケージ図など   •  振る舞いを表すモデル:ステートマシン図、アクティビティ図、シーケンス図など   –  モデルの確認とは、書かれたモデルが矛盾を含まないことの確認で はなく、モデルが素データ(シナリオ他やそこから作成したオブジェク ト図・インスタンス図)を間違いなくサポートしていることを確認するこ とです   •  例)見落としたクラスがあり、期待するオブジェクト図(値)に至らない   •  例)継承関係が逆の箇所があり、期待するオブジェクト図(値)に至らない   •  例)シナリオにある手順に従いデータ投入しても、期待するオブジェクト図(値)に 至らない  
  • 7. モデルから UI を生成するということ •  (作業)モデルの確認とは   –  振る舞いを表すモデルの場合、通常シミュレーションが使われますが、 構造を表すモデルの場合どうするのでしょう?   –  少なくともクラス図(相当)で表現するデータモデルの場合、UI を生成 出来れば、そこで素データが期待通り投入出来るか確認できます   –  もちろん、モデルベース開発の一部として最終的な UI 生成もありま す   Customer Business  Analyst/Modeler/   System  Engineer Scenario/ User  stories
  • 8. Ecore  モデルについて •  EMF  (Eclipse  Modeling  Framework)  で扱うモデルが   Ecore  モデル   –  仕様:MOF  (Meta-­‐Object  Facility)  の一部   –  記法:UML  Class  図のサブセット   •  継承、属性、操作等は書けます   •  関連相当はありません(属性に参照が書けることで代用)   •  関連クラス相当は書けません   •  N項関連相当は書けません   •  ステレオタイプは使えません 等  
  • 9. Ecore  モデルについて •  File     –  >  New     –  >  Project  
  • 12. EMF  で出来ること   •  .genmodel  -­‐>  generate  all 木構造型   エディター 属性エディター
  • 13. EMF  Client  PlaSorm/EMF  Forms  について •  EclipseSource  社が推進する  Eclipse  Modeling  Project   –  EclipseSource 社  [hCp://eclipsesource.com/en/home/]   –  EMF  Client  PlaSorm  [hCp://eclipse.org/ecp/]   –  EMF  Forms  [hCp://eclipse.org/ecp/emfforms/]     •  EMF  Client  PlaSorm   –  「EMF  Client  PlaSormは、EMFベースクライアントアプリケーション構築のフ レームワーク。与えられたEMFモデルに基づくアプリケーション開発のため、 再利用・適用・拡張可能なUIコンポーネント提供を目的とする・・・」   •  EMF  Forms:EMF  Client  PlaSorm  のサブコンポーネント   –  「EMF  FormsはフォームベースUI開発に新たな方法を提供。手作業でフォーム ベースのレイアウトをコーディングするのではなく、単純なモデルを記述すれば済 むようになる・・・」  
  • 15. EMF  Client  PlaSorm  で出来ること •  フォーム化(No  coding)
  • 16. EMF  Forms  で出来ること •  SWT  アプリケーション化(No  coding)
  • 17. EMF  Forms で出来ること •  EMF  Forms の仕組み: View  Model  導入   Building  Business  UIs  with  EMF  Forms  
  • 19. Eclipse  Modeling  Package  インストール •  事前準備として Eclipse  Modeling  Package のインストールをお願いしまし た: これを前提として進めます   •  Eclipse  を起動してください   •  Help  -­‐>  InstallaUon  Detail をみてください ECP  SDK 配下に  EMF  Forms  が   含まれています 注) 日本語データを扱う場合:   ・ 環境設定 -­‐>     ・ General  -­‐>     ・ Workspace     で  text  file  encoding  が UTF-­‐8   であることを確認して下さい
  • 20. EMF  Forms  サンプル •  File  -­‐>  New  -­‐>  Example  -­‐>  EMF  Forms  -­‐>  Make  it  happen:   example  model  を選択し  finish
  • 21. Ecore  モデルの作成 •  model プロジェクトと model.edit  プロジェクトの二つが生成さ れます (Ecore  ファイルの中身を確認しましょう)
  • 22. Ecore  モデルの作成 •  Ecore モデルをダイアグラム表示すると次のようになります
  • 23. viewmodel の作成 •  .ecore  -­‐>  context  menu  -­‐>  New  -­‐>  Other  -­‐>  EMF  Forms  -­‐>  View   Model  Project   •  プロジェクト名:モデルプロジェクト名+.viewmodel   •  モデル:workspace  から  .ecore  ファイルを選択   •  EClass  :  UI  化する EClass  を選択
  • 25. viewmodel の作成 •  試しに lastName を見てみましょう   –  幾つか設定が可能です
  • 26. viewmodel の作成 •  プレビューを表示出来ます –  ビューエディターの右端にあるアイコンをダブルクリックします  
  • 27. viewmodel の作成 •  viewmodel を書き換えてみましょう   –  下の手順で Horizontal/VerUcalLayout を配置し項目を移動します もしくは、次のページのようにします
  • 28. viewmodel の作成 •  viewmodel を書き換えてみましょう –  一部または全部の項目を削除し、必要な項目対応の Control を生成できます  
  • 30. SWT アプリケーションの作成 •  Run  -­‐>  Run  configuraUon: Main  tab 任意の名前 こちらを選択 org.eclipse.emf.ecp.applicaUon.e3.applicaUon  を選択
  • 31. SWT アプリケーションの作成 •  Run  -­‐>  Run  configuraUon: Plug-­‐ins  tab org.eclipse.emf.ecp.demo.e3.feature  を選択 これをクリック
  • 32. SWT アプリケーションの作成 •  Run  -­‐>  Run  configuraUon: Plug-­‐ins  tab workspace にある三つのプロジェクトを  Plug-­‐ins  に追加
  • 33. SWT アプリケーションの作成 •  Run  -­‐>  Run  configuraUon: Plug-­‐ins  tab 最後に  Run  をクリック  
  • 34. SWT アプリケーションの作成 新たな  Eclipse  インスタンスが立ち上がり、このような   UI  を備えたアプリケーションが現れる 新規プロジェクト作成
  • 37. それでは試してみましょう •  テーマは  Order  Management  です   このEcoreモデルを作成し   UI  を生成して下さい 顧客 注文 注文明細 商品 名前:EString 注文番号:Eint   注文日付:EDate 個数:EInt 名前:Estring   価格:Eint
  • 38. それでは試してみましょう •  手順:   –  Ecore  Modeling  Project (モデリングプロジェクト)作成   –  Ecoreモデル作成(グラフィカルエディター利用)   –  genmodelに基づくコード生成   –  viewmodelプロジェクト作成   –  viewmodelの編集(何もしなくても良い)   –  Run  configuraUon設定   –  実行   •  注意事項   –  以前 EMFStore  を使ったことのある場合(ホームディレクトリにあ る) .emfstore  を削除してUI生成して下さい   モデルコードとEditプロジェクトの生成
  • 39. 補足説明 •  Eclipse   –  Ecore  用としての Modeling  Package  以外に、Eclipse  の Plug-­‐in   開発から派生した  RCP  (Rich  Client  PlaSorm)  及び    RAP   (Remote  ApplicaUon  PlaSorm)  の仕組みを活用しています   •  Renderer   –  今回説明した SWT  Renderer の他に、JavaFX/RAP/Vaadin/ AngularJS/Mobile  などの  Renderer  に取り組んでおり、モデル 部分のシングルソース化+ Renderer 選択、という形を目指し ているようです   •  これはモデル確認というより開発工程での利用を想定したもの   •  Eclipse  内の類似プロジェクト   –  EMF  Parsley  
  • 40. 補足説明 •  Example  Project  について   –  メール送信ボタン追加(コード)   –  グループ定義(コード)   –  説明で使用したモデル   –  Eclipse  3  アプリケーション(コード)   –  Eclipse  4  アプリケーション(コード)   –  J2EE  RAP  アプリケーション(コード)   –  JavaFX  アプリケーション(コード)   –  シンプル  RAP  アプリケーション(コード)   –  ビューモデル   注意事項   ・ バージョンの組み合わせの関係か現時点で JavaFX  は動作しませんでした   ・ RAP  を試すには  RAP  Tools  のインストール、バグ対応、環境設定が必要になります    (Bug  462794  -­‐  EMF  Client  PlaSorm  with  RAP  Tutorial  bug:  target  file  入れ替え要)
  • 41.
  • 42. まとめ •  顧客とのまたはチーム内での、仕様・モデルレビューの際に ECP/EMF  Forms を使えば:   –  ほぼリアルタイムで GUI 表示出来るため   –  モデルの妥当性チェックを助けてくれます   –  早い段階から  GUI  確認が出来ます   –  結果として「開発効率アップ」が期待出来ます   •  EclipseSource のプレゼンテーション(Maximilian  Kögel さん) にある、どういう場面で UI  モデリングを使うと良いか   è  次ページ (特にオススメの箇所に枠を追記しました)
  • 44. 参考: Pleiades  による  Eclipse日本語化 hCp://mergedoc.osdn.jp/index.html#/pleiades.html    Pleiades  
  • 45. お疲れ様でした 以上でハンズオンを終わります 万能ではありませんが適した場面で 使えば、役に立つツールです     ソフトウェア開発におけるモデル・モ デリングの価値を高める為に、是非 明日からでも活用されることを期待 しています
  • 46. 参考 •  Project  Home  Page   –  hCp://www.eclipse.org/ecp/emfforms/   •  Gepng  started  with  EMF  Forms   –  hCp://eclipsesource.com/blogs/tutorials/gepng-­‐started-­‐with-­‐EMF-­‐Forms/   •  EMF  Forms:  Renderer   –  hCp://eclipsesource.com/blogs/tutorials/emf-­‐forms-­‐renderer/   •  EMF  Forms:  Beyond  SWT   –  hCp://eclipsesource.com/blogs/2015/05/18/emf-­‐forms-­‐beyond-­‐swt/   •  Building  Business  UIs  with  EMF  Forms   –  hCps://www.eclipsecon.org/na2015/sites/default/files/slides/Building %20Business%20UIs%20with%20EMF%20Forms.pdf   今日の範囲についてはこのページに書かれています