SlideShare una empresa de Scribd logo
1 de 19
モデルベース開発における 
モデルとプラットフォームについて 
- オープンソースでどこまでできる? - 
ビューファイブLLC 
田中明 
a.tanaka@view5.co.jp 
2014年9月3日SES2014 Workshop #4
自己紹介 
 アカデミックな活動や現場での開発経験より標準化活動を長く体 
験してきました 
 OSI上位層通信プロトコル標準化(ISO/IEC JTC1/SC21) 
 通信対応API標準化(X/Open) 
 分散オブジェクト標準化(OMG) 
 オープン分散処理参照モデル(ISO/IEC JTC1/SC21, 7) 
 モデリング標準(UML/UML Profile/MOF …)(OMG) 
 モデルベースの開発が主流になる日が来ることを期待しつつ、更 
に各種モデル標準を実際に使えるようにすることを目指し(学会 
の外側で)地味に活動をしています 
 Xtext ユーザ会 
 Eclipse Modeling Project 勉強会 
 Eclipse 非会員(但しアクセス頻度高) 
 OMG 会員(Influencing Member)
モデリング 
 問題領域(対象とする現実の世界)が複雑すぎるため枝 
葉を切り捨て本質をとらえようとする知的活動だと理解 
しています 
 モデリング言語は沢山あると認識しています 
 数学・数式はモデリング言語の一つ 
 UML はとても強力なモデリング言語ですが、それでも沢山 
ある言語のうちの一つ 
 メタモデル標準、UML Profile標準、BPMN等はUMLだけでカ 
バー出来ない領域のため 
 Eclipse のEcore モデルはEMOF に基づくモデル実装 
 組み込み分野でステートマシンやDSL がかなり利用されシ 
ミュレーション機能がほぼ必須になっている
Third Biannual Workshop on Eclipse Open Source Software and 
OMG Open Specifications 資料よりの引用 
http://www.omg.org/news/meetings/tc/dc-12/special-events/pdf/overview.pdf
プラットフォーム 
 プラットフォームの定義(MDA Guide version 1.0 より) 
 “A platform in general is a set of subsystems/technologies that 
provide a coherent set of functionality through interfaces and 
specified usage patterns that any subsystem that depends on the 
platform can use without concern for the details of how the 
functionality provided by the platform is implemented.” 
 例:一般的(オブジェクト、バッチ等)、テクノロジ(CORBA/CORBA 
Components/J2EE etc.)、ベンダ固有 
 モデル駆動開発はプラットフォームに到達しないと完了しません 
 ところがプラットフォームは日々進化するmoving target 
 「プラットフォーム」の認識が異なりモデル駆動の議論が噛み合ない 
ことが多々ありました 
 モデル駆動開発は「モデリングとプログラミング(プラットフォー 
ム)の間のギャップを埋める作業を、モデルとモデル変換を中心に行 
うこと」とも言えそうです
UML に基づくモデル駆動開発 
 多くの人にOMG のMDA はこれと思われている方式 
 厳密なUMLモデルを作成する 
 実際に使われるのは、クラス図、コンポーネント図、ステート 
マシン図、アクティビティ図、配備図など 
 MDA: CIM*<->PIM*<->PSM*<->Text (Code) 
 モデル表現:UML 
 モデル変換:MOF QVTなどを利用 
 コード生成:MOFM2Tなどを利用 
 現実的にはCIM/PIM/PSMのどれかを作成しそこからダイレクト 
にコード生成する例が多く見られ、MDAのモデル(M2M)変換 
がそれほど活用されているようには思えない 
 構造を表現するモデルは扱い易いが、振る舞いを表現するモデ 
ルの作成とその変換は難易度が高い
Eclipse でのモデル駆動開発 
 Eclipseは最初からEMF(Eclipse Modeling Framework)を含んだ 
オープンソースプロジェクト(www.eclipse.org) 
 EMFのEcore はOMG のMOF仕様に含まれるサブセット仕様で 
あるEssential MOF に基づく標準形式(と実装) 
 Eclipse Modeling Project でのEcore モデル 
 作成:専用ダイアグラムエディタ(Ecore Tools)、専用テキスト型エ 
ディタ(Xtext, Xcore, etc.)、専用木構造エディタ等を利用 
 利用:EMF コード生成機能利用コンポーネンツ、UML エディタ 
(Papyrus etc.)、DSL エディタ(GMF, Sirius, Xtext, EuGENia etc.) 
 特徴:Ecoreモデル図はUML クラス図のサブセット相当であり、クラ 
ス図との比較で出来ること出来ないことを理解しておく必要がありま 
す(例:関連クラス、多項関係、ステレオタイプなど記述出来ない)
モデル駆動について 
 必要最低限の仕様をモデルとして記述すれば、モデル変換の 
ツールチェーンを利用しプラットフォームに到達できる(は 
ず):「言うは易し行うは難し」の典型 
 UML で書いてもEcore で書いても、モデルはXMI 文書となり、それがモデ 
ル変換の入力になるため、それ程大きな違いはない 
 気になる点 
 十分に厳密なモデルをある抽象化レベルで記述する必要がありますが、こ 
れが容易なことではありません 
 CIM->CIM/PIM, PIM->PIM/PSM, PSM->PSMといったM2M変換:コードと距離 
のあるこれら中間生成物の生成作業に理解を得ることは時として困難です 
 進化し続けるプラットフォームは、M2T変換にインパクトを与えます(好 
ましい進化もありますが) 
 完成後の維持管理フェーズでのモデル駆動の役割が明確になっていません 
 非機能要件の取り扱い:必ず非機能要件のモデルを用意する必要があるの 
でしょうか?
モデル駆動開発の具体例 
 具体例に基づき検討することにします(まだ開発途中の 
もので現状ベースの報告です) 
 モデル:Xtextのサンプルの一つであるXbase 版 
DomainModel(UML Class 図のサブセット相当)を使います 
 モデル変換:プラットフォーム対応に直接コード変換する 
ことにします 
 プラットフォーム:Spring Bootを使います(実体はSpring 
MVC)つまりWeb アプリケーションを目指します 
 開発作業 
 ツール開発者の作業はXtext 環境でのモデル変換ロジック実装 
で、これがどんな内容を含むのかを例示します
www.eclipse.org/Xtext sample code より 
Domainmodel 定義
Domainmodel の具体例 
Company 
Person 
Manager 
*
モデル駆動開発の具体例 
 モデル変換実装として最低でも次のようなものがあります 
 Entity に対応するデフォルトJavaコードを生成します 
 DomainClass(属性、関連、操作(Xtend言語)) 
 DomainClassRepository(CRUD 操作) 
 DomainController(画面制御) 
 各種import文やアノテーションも生成します 
 生成物をSpring のProject 構造に合わせ配置する仕組みを用意します 
 その他:データベース関連 
 通常は生成が必要なものですが、今回はプラットフォーム側に任せます 
 Entity に対応するデフォルトGUI 定義(html 等)を生成します 
 インデックス、一覧、新規、編集、削除、検索 
 その他 
 Eclipse/Xtext の提供する枠組みを基盤として利用します 
 それ以外はSTSを使ったSpring Bootプロジェクト生成を利用します
モデル駆動開発の具体例 
 実行時 
 EclipseベースのSTS (Spring Tool Suite) に作成したプラグイ 
ンを導入します(dropins フォルダに入れます) 
 Spring Starter プロジェクトを作成します 
 Web + JPA とします 
 application.properties はテスト用設定をコピーします 
 プロジェクト直下にmodel フォルダを作成しそこにドメイ 
ンモデルを作成します 
 利用者の作業は、テキスト型モデルエディタでモデル記述を行 
い“save” します:この“save” がトリガーとなりコード生成が 
行われます 
 Boot アプリケーションとして実行します(基本的な動作が 
出来れば良しとします)
こんな感じになります 
入力モデル 
GUI 系生成物 
ドメインクラス 
CRUD 
プラットフォーム(Spring)のプロジェクト構造念のため:まだ作業途中のものです 
にあわせた生成物の配置
トライアルから言えること 
 文法が汎用的(クラス図メタモデル相当)であるため 
 このようなトライアル実装は利用範囲が広い 
 ただプラットフォーム対応はその都度実施する必要がある 
 今回はXtend がターゲットとするJava プラットフォームであった 
ため比較的少ない開発数で済んだが、、、 
 モデル変換に書くコード量(想定< 500 lines) 
 文法(メタモデル)の複雑さに依存 
 プラットフォーム(マッピング)の複雑さに依存 
 今回作業しなかった箇所 
 データベース関連コード 
 共通要素であり一度作成すれば再利用は可能? 
 ビジネスロジック 
 Xtend 言語で記述する操作を除く
トライアルから見える課題 
 モデリング 
 現在の文法で表現していないcontainment 関係を表現できるよう改訂が必要 
 画面フローは単純なパターンを想定したが、複雑なケースに対応するにはステートマシンの文 
法と組み合わせる改訂が必要(モデルの統合)更にGUI モデリングの検討も必要 
 現在はローカル環境での作業となるが、チーム環境での作業を可能とする仕組みも必要 
 ビジネスモデリング(プロセス、ルール等)との連携方法について検討が必要 
 プラットフォーム及びモデル変換 
 再利用できるデータベース関連変換コードの整備 
 現在はJavaプラットフォームを想定しているが、JavaScript やWeb API を検討する時期にあ 
る 
 コード生成というアプローチ 
 コード生成ロジックが複雑になるとそれが開発時のネックとなる可能性があり、出来るだけ 
「手書きコード」を減らす仕組み(例:モデル変換コードライブラリなど)やコラボレーショ 
ン環境との連携について検討が必要 
 プラットフォーム機能をモデル変換の中で記述するという方式で、プラットフォームの進化に 
十分追随出来るか、他に方法はないか、検討が必要
GUI モデリング 
 Interactive Flow Modeling Language (OMG specification) 
 http://modeling-languages.com/open-source-ifml-editor-eclipse- 
github/
最後に 
 オープンソースの世界でも、ちょっとしたモデル駆動開発の仕 
組みが出来るのではないかと考え、ここ2〜3週間トライして 
いるプロジェクトであり、深さに欠ける点お詫びします 
 トライアルではWeb アプリケーションを対象としましたが、 
特性の異なるプラットフォームを使う別の領域では、モデリン 
グとモデル変換の両方で個別の仕組みが必要になると思います 
(例:フィードバック機構が入るようなプラットフォーム) 
 東京近辺におられる皆様へ 
 非定期ですが、東京でEclipse Modeling Project の勉強会など 
を開催しています。もし宜しければご参加ください。 
 https://sites.google.com/site/eclipsemodelingsigjapan/ 
 これまで扱った話題;MDA, EMF, Acceleo, GMF, EuGENia, Xtext, 
QVTo, QVTd, ATL, BonitaBPM, Xcore, OCL(in Ecore/Papyrus)
ご清聴どうも有り難うございました

Más contenido relacionado

La actualidad más candente

MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」U-dai Yokoyama
 
WordPress on Movable Type
WordPress on Movable TypeWordPress on Movable Type
WordPress on Movable TypeHajime Fujimoto
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Narami Kiyokura
 
式の体を成して無い式を式の体を成すように式と式木で何とかする式
式の体を成して無い式を式の体を成すように式と式木で何とかする式式の体を成して無い式を式の体を成すように式と式木で何とかする式
式の体を成して無い式を式の体を成すように式と式木で何とかする式Kouji Matsui
 
C#でわかる こわくないMonad
C#でわかる こわくないMonadC#でわかる こわくないMonad
C#でわかる こわくないMonadKouji Matsui
 
真Intermediate languageのキホン
真Intermediate languageのキホン真Intermediate languageのキホン
真Intermediate languageのキホンKouji Matsui
 
Nespのコード生成
Nespのコード生成Nespのコード生成
Nespのコード生成Kouji Matsui
 
WebStormでできること
WebStormでできることWebStormでできること
WebStormでできることkamiyam .
 
GUI アプリケーションにおける MVC
GUI アプリケーションにおける MVCGUI アプリケーションにおける MVC
GUI アプリケーションにおける MVCYu Nobuoka
 
ドメインモデルの育て方
ドメインモデルの育て方ドメインモデルの育て方
ドメインモデルの育て方増田 亨
 
Win32 APIをてなずけよう
Win32 APIをてなずけようWin32 APIをてなずけよう
Win32 APIをてなずけようKouji Matsui
 
Async deepdive before de:code
Async deepdive before de:codeAsync deepdive before de:code
Async deepdive before de:codeKouji Matsui
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理Kouji Matsui
 

La actualidad más candente (20)

WPF MVVM Review
WPF MVVM ReviewWPF MVVM Review
WPF MVVM Review
 
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
 
WordPress on Movable Type
WordPress on Movable TypeWordPress on Movable Type
WordPress on Movable Type
 
TypeScript超入門
TypeScript超入門TypeScript超入門
TypeScript超入門
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
 
式の体を成して無い式を式の体を成すように式と式木で何とかする式
式の体を成して無い式を式の体を成すように式と式木で何とかする式式の体を成して無い式を式の体を成すように式と式木で何とかする式
式の体を成して無い式を式の体を成すように式と式木で何とかする式
 
C#でわかる こわくないMonad
C#でわかる こわくないMonadC#でわかる こわくないMonad
C#でわかる こわくないMonad
 
symfonyの始め方
symfonyの始め方symfonyの始め方
symfonyの始め方
 
真Intermediate languageのキホン
真Intermediate languageのキホン真Intermediate languageのキホン
真Intermediate languageのキホン
 
Lt 110416
Lt 110416Lt 110416
Lt 110416
 
C#の書き方
C#の書き方C#の書き方
C#の書き方
 
Nespのコード生成
Nespのコード生成Nespのコード生成
Nespのコード生成
 
IDEALIZE YOU
IDEALIZE YOUIDEALIZE YOU
IDEALIZE YOU
 
de:code報告
de:code報告de:code報告
de:code報告
 
WebStormでできること
WebStormでできることWebStormでできること
WebStormでできること
 
GUI アプリケーションにおける MVC
GUI アプリケーションにおける MVCGUI アプリケーションにおける MVC
GUI アプリケーションにおける MVC
 
ドメインモデルの育て方
ドメインモデルの育て方ドメインモデルの育て方
ドメインモデルの育て方
 
Win32 APIをてなずけよう
Win32 APIをてなずけようWin32 APIをてなずけよう
Win32 APIをてなずけよう
 
Async deepdive before de:code
Async deepdive before de:codeAsync deepdive before de:code
Async deepdive before de:code
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理
 

Destacado

オープンソースによるモデルベースデザイン(OpenModelica)
オープンソースによるモデルベースデザイン(OpenModelica)オープンソースによるモデルベースデザイン(OpenModelica)
オープンソースによるモデルベースデザイン(OpenModelica)Koji Nishi
 
20161026_超高層大気観測データのメタデータ作成実験経過報告
20161026_超高層大気観測データのメタデータ作成実験経過報告20161026_超高層大気観測データのメタデータ作成実験経過報告
20161026_超高層大気観測データのメタデータ作成実験経過報告Yasuyuki Minamiyama
 
社内Gtd勉強会 20101022
社内Gtd勉強会 20101022社内Gtd勉強会 20101022
社内Gtd勉強会 20101022tosch0718
 
IGDA_Sig-BoardGame_ワークショップ用資料
IGDA_Sig-BoardGame_ワークショップ用資料IGDA_Sig-BoardGame_ワークショップ用資料
IGDA_Sig-BoardGame_ワークショップ用資料Ryosuke Sugawara
 
GTD 残業を減らす方法
GTD 残業を減らす方法GTD 残業を減らす方法
GTD 残業を減らす方法Gaddict
 
関西ライフハック研究会×アイデアプラント
関西ライフハック研究会×アイデアプラント関西ライフハック研究会×アイデアプラント
関西ライフハック研究会×アイデアプラントRikie Ishii
 
理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」
理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」
理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」Marika UCHIDA
 
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼンhiroyuki Yamamoto
 
ユーザ目線の実践的BPM
ユーザ目線の実践的BPMユーザ目線の実践的BPM
ユーザ目線の実践的BPMShigeaki Wakizaka
 
Software Foundation:形式的証明と非形式的証明
Software Foundation:形式的証明と非形式的証明Software Foundation:形式的証明と非形式的証明
Software Foundation:形式的証明と非形式的証明T T
 
TO LOVE IN'~人生のパートナーを見つける旅~
TO LOVE IN'~人生のパートナーを見つける旅~TO LOVE IN'~人生のパートナーを見つける旅~
TO LOVE IN'~人生のパートナーを見つける旅~Shuhei Hinoshita
 
マインドハック研究会 ライフハック編 20100512
マインドハック研究会 ライフハック編 20100512マインドハック研究会 ライフハック編 20100512
マインドハック研究会 ライフハック編 20100512tosch0718
 
ふり返りハック ~ ライフをハッキングするために
ふり返りハック ~ ライフをハッキングするためにふり返りハック ~ ライフをハッキングするために
ふり返りハック ~ ライフをハッキングするために虹 父
 
DXライブラリのすゝめ
DXライブラリのすゝめDXライブラリのすゝめ
DXライブラリのすゝめDaisuke Nikura
 
NetBSDとは
NetBSDとはNetBSDとは
NetBSDとはmiwarin
 
『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~
『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~
『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~満徳 関
 

Destacado (20)

オープンソースによるモデルベースデザイン(OpenModelica)
オープンソースによるモデルベースデザイン(OpenModelica)オープンソースによるモデルベースデザイン(OpenModelica)
オープンソースによるモデルベースデザイン(OpenModelica)
 
20161026_超高層大気観測データのメタデータ作成実験経過報告
20161026_超高層大気観測データのメタデータ作成実験経過報告20161026_超高層大気観測データのメタデータ作成実験経過報告
20161026_超高層大気観測データのメタデータ作成実験経過報告
 
バージョン管理入門
バージョン管理入門バージョン管理入門
バージョン管理入門
 
社内Gtd勉強会 20101022
社内Gtd勉強会 20101022社内Gtd勉強会 20101022
社内Gtd勉強会 20101022
 
IGDA_Sig-BoardGame_ワークショップ用資料
IGDA_Sig-BoardGame_ワークショップ用資料IGDA_Sig-BoardGame_ワークショップ用資料
IGDA_Sig-BoardGame_ワークショップ用資料
 
GTD 残業を減らす方法
GTD 残業を減らす方法GTD 残業を減らす方法
GTD 残業を減らす方法
 
関西ライフハック研究会×アイデアプラント
関西ライフハック研究会×アイデアプラント関西ライフハック研究会×アイデアプラント
関西ライフハック研究会×アイデアプラント
 
X hago3
X hago3X hago3
X hago3
 
理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」
理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」
理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」
 
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
 
ユーザ目線の実践的BPM
ユーザ目線の実践的BPMユーザ目線の実践的BPM
ユーザ目線の実践的BPM
 
Software Foundation:形式的証明と非形式的証明
Software Foundation:形式的証明と非形式的証明Software Foundation:形式的証明と非形式的証明
Software Foundation:形式的証明と非形式的証明
 
Unix1
Unix1Unix1
Unix1
 
TO LOVE IN'~人生のパートナーを見つける旅~
TO LOVE IN'~人生のパートナーを見つける旅~TO LOVE IN'~人生のパートナーを見つける旅~
TO LOVE IN'~人生のパートナーを見つける旅~
 
Unix2
Unix2Unix2
Unix2
 
マインドハック研究会 ライフハック編 20100512
マインドハック研究会 ライフハック編 20100512マインドハック研究会 ライフハック編 20100512
マインドハック研究会 ライフハック編 20100512
 
ふり返りハック ~ ライフをハッキングするために
ふり返りハック ~ ライフをハッキングするためにふり返りハック ~ ライフをハッキングするために
ふり返りハック ~ ライフをハッキングするために
 
DXライブラリのすゝめ
DXライブラリのすゝめDXライブラリのすゝめ
DXライブラリのすゝめ
 
NetBSDとは
NetBSDとはNetBSDとは
NetBSDとは
 
『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~
『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~
『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~
 

Similar a オープンソースを利用したモデル駆動トライアル

クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門minazou67
 
Eclipse modeling projectの概要
Eclipse modeling projectの概要Eclipse modeling projectの概要
Eclipse modeling projectの概要Shintaro Hosoai
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説Daisuke Nishino
 
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発Tomoharu ASAMI
 
Eclipse xtext 紹介
Eclipse xtext 紹介Eclipse xtext 紹介
Eclipse xtext 紹介Akira Tanaka
 
設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】
設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】
設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】Tomoharu ASAMI
 
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...智治 長沢
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMFAtomu Hidaka
 
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT appsMAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT appsShotaro Suzuki
 
20130316 mix cpp-yuo
20130316 mix cpp-yuo20130316 mix cpp-yuo
20130316 mix cpp-yuoOKUBO_Yusuke
 
Open棟梁概要説明 v02-00
Open棟梁概要説明 v02-00Open棟梁概要説明 v02-00
Open棟梁概要説明 v02-00Daisuke Nishino
 
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】Tomoharu ASAMI
 
Small Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour TokyoSmall Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour TokyoTakao Tetsuro
 
iOSやAndroidアプリ開発のGoodPractice
iOSやAndroidアプリ開発のGoodPracticeiOSやAndroidアプリ開発のGoodPractice
iOSやAndroidアプリ開発のGoodPracticeKen Morishita
 
ABM(Analog Behavioral Modeling)によるテーブル表記の表現
ABM(Analog Behavioral Modeling)によるテーブル表記の表現ABM(Analog Behavioral Modeling)によるテーブル表記の表現
ABM(Analog Behavioral Modeling)によるテーブル表記の表現Tsuyoshi Horigome
 
Microsoft Open Tech Night - .NET Developer のための ML.NET - 導入編
Microsoft Open Tech Night - .NET Developer のための ML.NET - 導入編Microsoft Open Tech Night - .NET Developer のための ML.NET - 導入編
Microsoft Open Tech Night - .NET Developer のための ML.NET - 導入編Daiyu Hatakeyama
 
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理Tadashi Miyazato
 
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-Hiroki Kondo
 
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 日本マイクロソフト株式会社
 
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...Akira Inoue
 

Similar a オープンソースを利用したモデル駆動トライアル (20)

クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
 
Eclipse modeling projectの概要
Eclipse modeling projectの概要Eclipse modeling projectの概要
Eclipse modeling projectの概要
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
 
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
 
Eclipse xtext 紹介
Eclipse xtext 紹介Eclipse xtext 紹介
Eclipse xtext 紹介
 
設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】
設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】
設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】
 
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
 
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT appsMAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
 
20130316 mix cpp-yuo
20130316 mix cpp-yuo20130316 mix cpp-yuo
20130316 mix cpp-yuo
 
Open棟梁概要説明 v02-00
Open棟梁概要説明 v02-00Open棟梁概要説明 v02-00
Open棟梁概要説明 v02-00
 
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
 
Small Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour TokyoSmall Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour Tokyo
 
iOSやAndroidアプリ開発のGoodPractice
iOSやAndroidアプリ開発のGoodPracticeiOSやAndroidアプリ開発のGoodPractice
iOSやAndroidアプリ開発のGoodPractice
 
ABM(Analog Behavioral Modeling)によるテーブル表記の表現
ABM(Analog Behavioral Modeling)によるテーブル表記の表現ABM(Analog Behavioral Modeling)によるテーブル表記の表現
ABM(Analog Behavioral Modeling)によるテーブル表記の表現
 
Microsoft Open Tech Night - .NET Developer のための ML.NET - 導入編
Microsoft Open Tech Night - .NET Developer のための ML.NET - 導入編Microsoft Open Tech Night - .NET Developer のための ML.NET - 導入編
Microsoft Open Tech Night - .NET Developer のための ML.NET - 導入編
 
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理
 
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
 
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
 
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
 

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
 
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 YakinduAkira Tanaka
 
EclipseCon NA2016 report
EclipseCon NA2016 reportEclipseCon NA2016 report
EclipseCon NA2016 reportAkira Tanaka
 
Sirius を試してみて
Sirius を試してみてSirius を試してみて
Sirius を試してみてAkira Tanaka
 
EMF Forms Introduction
EMF Forms IntroductionEMF Forms Introduction
EMF Forms IntroductionAkira 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
 
Xcore introduction
Xcore introductionXcore introduction
Xcore introductionAkira Tanaka
 
Eclipse Modeling QVT
Eclipse Modeling QVTEclipse Modeling QVT
Eclipse Modeling QVTAkira Tanaka
 
Eclipse modeling 勉強会 dslについて
Eclipse modeling 勉強会 dslについてEclipse modeling 勉強会 dslについて
Eclipse modeling 勉強会 dslについてAkira Tanaka
 

Más de 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
 
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参加報告公開版
 
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 を試してみて
 
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...
 
Xcore introduction
Xcore introductionXcore introduction
Xcore introduction
 
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について
 

Último

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Último (9)

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 

オープンソースを利用したモデル駆動トライアル

  • 1. モデルベース開発における モデルとプラットフォームについて - オープンソースでどこまでできる? - ビューファイブLLC 田中明 a.tanaka@view5.co.jp 2014年9月3日SES2014 Workshop #4
  • 2. 自己紹介  アカデミックな活動や現場での開発経験より標準化活動を長く体 験してきました  OSI上位層通信プロトコル標準化(ISO/IEC JTC1/SC21)  通信対応API標準化(X/Open)  分散オブジェクト標準化(OMG)  オープン分散処理参照モデル(ISO/IEC JTC1/SC21, 7)  モデリング標準(UML/UML Profile/MOF …)(OMG)  モデルベースの開発が主流になる日が来ることを期待しつつ、更 に各種モデル標準を実際に使えるようにすることを目指し(学会 の外側で)地味に活動をしています  Xtext ユーザ会  Eclipse Modeling Project 勉強会  Eclipse 非会員(但しアクセス頻度高)  OMG 会員(Influencing Member)
  • 3. モデリング  問題領域(対象とする現実の世界)が複雑すぎるため枝 葉を切り捨て本質をとらえようとする知的活動だと理解 しています  モデリング言語は沢山あると認識しています  数学・数式はモデリング言語の一つ  UML はとても強力なモデリング言語ですが、それでも沢山 ある言語のうちの一つ  メタモデル標準、UML Profile標準、BPMN等はUMLだけでカ バー出来ない領域のため  Eclipse のEcore モデルはEMOF に基づくモデル実装  組み込み分野でステートマシンやDSL がかなり利用されシ ミュレーション機能がほぼ必須になっている
  • 4. Third Biannual Workshop on Eclipse Open Source Software and OMG Open Specifications 資料よりの引用 http://www.omg.org/news/meetings/tc/dc-12/special-events/pdf/overview.pdf
  • 5. プラットフォーム  プラットフォームの定義(MDA Guide version 1.0 より)  “A platform in general is a set of subsystems/technologies that provide a coherent set of functionality through interfaces and specified usage patterns that any subsystem that depends on the platform can use without concern for the details of how the functionality provided by the platform is implemented.”  例:一般的(オブジェクト、バッチ等)、テクノロジ(CORBA/CORBA Components/J2EE etc.)、ベンダ固有  モデル駆動開発はプラットフォームに到達しないと完了しません  ところがプラットフォームは日々進化するmoving target  「プラットフォーム」の認識が異なりモデル駆動の議論が噛み合ない ことが多々ありました  モデル駆動開発は「モデリングとプログラミング(プラットフォー ム)の間のギャップを埋める作業を、モデルとモデル変換を中心に行 うこと」とも言えそうです
  • 6. UML に基づくモデル駆動開発  多くの人にOMG のMDA はこれと思われている方式  厳密なUMLモデルを作成する  実際に使われるのは、クラス図、コンポーネント図、ステート マシン図、アクティビティ図、配備図など  MDA: CIM*<->PIM*<->PSM*<->Text (Code)  モデル表現:UML  モデル変換:MOF QVTなどを利用  コード生成:MOFM2Tなどを利用  現実的にはCIM/PIM/PSMのどれかを作成しそこからダイレクト にコード生成する例が多く見られ、MDAのモデル(M2M)変換 がそれほど活用されているようには思えない  構造を表現するモデルは扱い易いが、振る舞いを表現するモデ ルの作成とその変換は難易度が高い
  • 7. Eclipse でのモデル駆動開発  Eclipseは最初からEMF(Eclipse Modeling Framework)を含んだ オープンソースプロジェクト(www.eclipse.org)  EMFのEcore はOMG のMOF仕様に含まれるサブセット仕様で あるEssential MOF に基づく標準形式(と実装)  Eclipse Modeling Project でのEcore モデル  作成:専用ダイアグラムエディタ(Ecore Tools)、専用テキスト型エ ディタ(Xtext, Xcore, etc.)、専用木構造エディタ等を利用  利用:EMF コード生成機能利用コンポーネンツ、UML エディタ (Papyrus etc.)、DSL エディタ(GMF, Sirius, Xtext, EuGENia etc.)  特徴:Ecoreモデル図はUML クラス図のサブセット相当であり、クラ ス図との比較で出来ること出来ないことを理解しておく必要がありま す(例:関連クラス、多項関係、ステレオタイプなど記述出来ない)
  • 8. モデル駆動について  必要最低限の仕様をモデルとして記述すれば、モデル変換の ツールチェーンを利用しプラットフォームに到達できる(は ず):「言うは易し行うは難し」の典型  UML で書いてもEcore で書いても、モデルはXMI 文書となり、それがモデ ル変換の入力になるため、それ程大きな違いはない  気になる点  十分に厳密なモデルをある抽象化レベルで記述する必要がありますが、こ れが容易なことではありません  CIM->CIM/PIM, PIM->PIM/PSM, PSM->PSMといったM2M変換:コードと距離 のあるこれら中間生成物の生成作業に理解を得ることは時として困難です  進化し続けるプラットフォームは、M2T変換にインパクトを与えます(好 ましい進化もありますが)  完成後の維持管理フェーズでのモデル駆動の役割が明確になっていません  非機能要件の取り扱い:必ず非機能要件のモデルを用意する必要があるの でしょうか?
  • 9. モデル駆動開発の具体例  具体例に基づき検討することにします(まだ開発途中の もので現状ベースの報告です)  モデル:Xtextのサンプルの一つであるXbase 版 DomainModel(UML Class 図のサブセット相当)を使います  モデル変換:プラットフォーム対応に直接コード変換する ことにします  プラットフォーム:Spring Bootを使います(実体はSpring MVC)つまりWeb アプリケーションを目指します  開発作業  ツール開発者の作業はXtext 環境でのモデル変換ロジック実装 で、これがどんな内容を含むのかを例示します
  • 10. www.eclipse.org/Xtext sample code より Domainmodel 定義
  • 12. モデル駆動開発の具体例  モデル変換実装として最低でも次のようなものがあります  Entity に対応するデフォルトJavaコードを生成します  DomainClass(属性、関連、操作(Xtend言語))  DomainClassRepository(CRUD 操作)  DomainController(画面制御)  各種import文やアノテーションも生成します  生成物をSpring のProject 構造に合わせ配置する仕組みを用意します  その他:データベース関連  通常は生成が必要なものですが、今回はプラットフォーム側に任せます  Entity に対応するデフォルトGUI 定義(html 等)を生成します  インデックス、一覧、新規、編集、削除、検索  その他  Eclipse/Xtext の提供する枠組みを基盤として利用します  それ以外はSTSを使ったSpring Bootプロジェクト生成を利用します
  • 13. モデル駆動開発の具体例  実行時  EclipseベースのSTS (Spring Tool Suite) に作成したプラグイ ンを導入します(dropins フォルダに入れます)  Spring Starter プロジェクトを作成します  Web + JPA とします  application.properties はテスト用設定をコピーします  プロジェクト直下にmodel フォルダを作成しそこにドメイ ンモデルを作成します  利用者の作業は、テキスト型モデルエディタでモデル記述を行 い“save” します:この“save” がトリガーとなりコード生成が 行われます  Boot アプリケーションとして実行します(基本的な動作が 出来れば良しとします)
  • 14. こんな感じになります 入力モデル GUI 系生成物 ドメインクラス CRUD プラットフォーム(Spring)のプロジェクト構造念のため:まだ作業途中のものです にあわせた生成物の配置
  • 15. トライアルから言えること  文法が汎用的(クラス図メタモデル相当)であるため  このようなトライアル実装は利用範囲が広い  ただプラットフォーム対応はその都度実施する必要がある  今回はXtend がターゲットとするJava プラットフォームであった ため比較的少ない開発数で済んだが、、、  モデル変換に書くコード量(想定< 500 lines)  文法(メタモデル)の複雑さに依存  プラットフォーム(マッピング)の複雑さに依存  今回作業しなかった箇所  データベース関連コード  共通要素であり一度作成すれば再利用は可能?  ビジネスロジック  Xtend 言語で記述する操作を除く
  • 16. トライアルから見える課題  モデリング  現在の文法で表現していないcontainment 関係を表現できるよう改訂が必要  画面フローは単純なパターンを想定したが、複雑なケースに対応するにはステートマシンの文 法と組み合わせる改訂が必要(モデルの統合)更にGUI モデリングの検討も必要  現在はローカル環境での作業となるが、チーム環境での作業を可能とする仕組みも必要  ビジネスモデリング(プロセス、ルール等)との連携方法について検討が必要  プラットフォーム及びモデル変換  再利用できるデータベース関連変換コードの整備  現在はJavaプラットフォームを想定しているが、JavaScript やWeb API を検討する時期にあ る  コード生成というアプローチ  コード生成ロジックが複雑になるとそれが開発時のネックとなる可能性があり、出来るだけ 「手書きコード」を減らす仕組み(例:モデル変換コードライブラリなど)やコラボレーショ ン環境との連携について検討が必要  プラットフォーム機能をモデル変換の中で記述するという方式で、プラットフォームの進化に 十分追随出来るか、他に方法はないか、検討が必要
  • 17. GUI モデリング  Interactive Flow Modeling Language (OMG specification)  http://modeling-languages.com/open-source-ifml-editor-eclipse- github/
  • 18. 最後に  オープンソースの世界でも、ちょっとしたモデル駆動開発の仕 組みが出来るのではないかと考え、ここ2〜3週間トライして いるプロジェクトであり、深さに欠ける点お詫びします  トライアルではWeb アプリケーションを対象としましたが、 特性の異なるプラットフォームを使う別の領域では、モデリン グとモデル変換の両方で個別の仕組みが必要になると思います (例:フィードバック機構が入るようなプラットフォーム)  東京近辺におられる皆様へ  非定期ですが、東京でEclipse Modeling Project の勉強会など を開催しています。もし宜しければご参加ください。  https://sites.google.com/site/eclipsemodelingsigjapan/  これまで扱った話題;MDA, EMF, Acceleo, GMF, EuGENia, Xtext, QVTo, QVTd, ATL, BonitaBPM, Xcore, OCL(in Ecore/Papyrus)