モデルベースソフトウェア開発コミュニティ
高崎 健太郎
COO
自己紹介
A c t i e rA c t i e r 株式会社アクティア
所在地   : 東京都中央区日本橋堀留町
ホームページ: http://www.actier.co.jp
従業員数  : 4名(取締役含む)
やってること: モデル駆動開発を活かしたSIer
会場のご案内
お礼
TechBuzzSpace

会場提供ありがとうございます
http://www.socialtoprunners.jp/#!techbuzzspace/c1mgd
SoftDrink OK!
お知らせ
No Alcohol
No Garbage
No MASAKARI
お知らせ
ハッシュタグ
#mbsdc_japan
コミュニティ申込方法
https://groups.google.com/forum/#!members/mbsdc-japan
googleグループで
活発な意見交換を!
さくさく要件定義 勉強会
さくさく要件定義 勉強会
モデルベースの
要件定義を
体験する勉強会!
株式会社バリューソース 代表取締役社長
神崎 善司 様
さくさく要件定義 勉強会
2/18(水)
15名
2/18(水)
15名
モデルベースソフトウェア開発コミュニティ
何の数字?
430hour
何の数字?
29day
30day
炎上プロジェクト炎上プロジェクト
僕の炎上プロジェクト
 各工程で問題が多かった
要件分析

ビジネス

要求
設計

実装

テスト

ソフトウェア
分析・設計に時間がとれず
設計書が情報不足
要件定義・分析
設計と
別チーム
設計していないものが
作られたり、急遽作っている
ので品質が低い
要件定義がしっかり
されておらず顧客と
合意形成ができていない
対策
 上流で対策すべし
要件分析

ビジネス

要求
設計

実装

テスト

ソフトウェア
シームレスに
下流に繋げる
上流で火の手を
上げない
対策をモデルで考えると
 上流で対策すべし
要件分析

ビジネス

要求
設計

実装

テスト

ソフトウェア
シームレスに
下流に繋げる
上流で火の手を
上げない
業務仕様をきちんと
モデル表現する
きちんと作成したモデルは処
理の対象として扱われるべき
モデルをベースにして

コードを作成する手法
人口の遷移
人口も
65歳以下の
割合も減る
情報通信産業の伸び
情報通信産業のGDPや
雇用者数は伸びる傾向
情報通信産業のGDPや
雇用者数は伸びる傾向
人口の遷移
人 材
不 足
エンジニアが足りない
生産性の向上生産性の向上spencer	 cooper http://goo.gl/gaVNSJ
生産性を向上するには
ムダを省く
PHOTOPRESS/Wenger
ムダ
1.価値の無いものを作る
2.必要なタイミングに無い
3.全く同じことの繰り返し
ムダをモデルベースで無くす
1.価値の無いものを作る
2.必要なタイミングに無い
3.全く同じことの繰り返し
業務仕様をきちんと
モデル表現する
モデルをベースにして

コードを作成する手法
モデルをベースにして

コードを作成する手法
モデルベースソフトウェア開発とは
モデルベースソフトウェア開発
モデル駆動アーキテクチャによるソフトウェア開発
モデリング言語を単なるデザイン言語としてではなく、プログラミング言語に近い形で使
いモデル中心で開発することで、生産性向上、品質向上、設計の再利用といったことに

アプローチする手法
CIM

Computation Independent Model

PIM

Platform Independent Model
PSM

Platform Specific Model

PSM

Platform Specific Model

CODECODE
CIM
コンピュータシステムから独立したモデル。
ビジネスモデルや顧客要求などのモデル。
PIM
プラットフォーム独立モデル。
CIM をシステムとして実現するために分析や設計
を行ったモデル。
PSM
プラットフォーム固有モデル。
PIM にプログラミング言語、ミドルウェアなどに
特化した設計、実装に近い要素を入れたモデル。
CODE
実行されるプログラミング。
package	 jp.co.actier.mars.concept.m2m.d3.acceleo.lib;	 
import	 org.eclipse.emf.common.util.BasicEList;

import	 org.eclipse.emf.common.util.EList;	 
!public	 class	 Uml2Util	 {	 
!	  public	 EList<Property>	 attributeAll(Class	 clazz)	 {	 
	  	  EList<Property>	 attributes	 =	 new	 BasicEList<Property>();	 
	  	  if	 (clazz.getSuperClasses()	 !=	 null)	 
	  	  	  for	 (Class	 parent	 :	 clazz.getSuperClasses())	 
	  	  	  	  attributes.addAll(attributeAll(parent));	 
	  	  attributes.addAll(clazz.getOwnedAttributes());	 
	  	  return	 attributes;	 
	  }	 
}
モ

デ

ル

に

集

中
自
動
化
に
よ
る
補
助
アカウント
ディラー
受付担当
企画担当
モデルベースソフトウェア開発の歴史①
モデルベースソフトウェア開発はソフトウェア開発の次なる進化
モデルベースソフトウェア開発はソフトウェア産業の歴史を経て、抽象度が上がっていく
中での次なる進化として期待されているテクノロジ。
時間とプラットフォーム
抽

象

度
マシン語

1と0の符号
アセンブリ言語

アセンブラ
第3世代言語

COBOL

C

オブジェクト指向

第3世代言語

Java C#

Ruby Python

モデルベースソフトウェア開発

メインフレームの時代 PCの時代 インターネットの時代 クラウドの時代
! ソフトウェア開発は歴史の中でよりコンピュータ系から人間系で考えられるよう進化していっている
! プラットフォームがより複雑になっていく中、プラットフォームと切り離して考えられる土壌が必要
モデルベースソフトウェア開発の歴史②
オワコン? リバイバルを狙います!
一時期(2002∼2006年頃)ブームとなったが、スグに開花することはなく

育ってきているテクノロジ。
! ブーム当時はツールや基盤が整っていなかったが、それらが育ちサポートしてきている状況
! UML、MDA と理想追求な部分が先行したが、地に足ついた形での導入実践となってきている
2004年 UML2.0
時間
ブーム期 現在
2001年 MDA 2004年 DDD
ヨーロッパの eclipse カンファレンスの

4分の1のセッションがモデリングや自動生
成関連のセッション
Model Driven Architecture(MDA)
MDA Guide rev. 2.0
2014/06/01
Eclipse Modeling Framework(EMF)
セッション内容紹介
モデルベースソフトウェア開発
(UML モデルからの自動生成)
モデルベースソフトウェア開発
(Xtext による自動生成+α)
モデルベースソフトウェア
開発の分析・設計
種
Before Internet / After Internet
BI/AI
Before MBSD / After MBSD
BM/AM
モデルベース
ソフトウェア開発の未来へ
おしまい

モデルベースソフトウェア開発コミュニティキックオフイベントオープニング