copyright , 2007 Be PROUD 1
MDA(Model Driven Architecture)モデル駆動型開発手法
2005年12月10日佐藤 治夫
copyright , 2007 Be PROUD 2
アウトライン
1. はじめに~MDAとは2. システム開発プロジェクトの現状3. Model Driven Architecture4. MDAのインパクト
copyright , 2007 Be PROUD 3
アウトライン
1. はじめに~MDAとは2. システム開発プロジェクトの現状3. Model Driven Architecture4. MDAのインパクト
copyright , 2007 Be PROUD 4
1. はじめに~MDAとは
MDAとは(Model Driven Architecture)
モデルを中心として駆動する
自動化技術を活用した開発手法のこと
モデル主にUMLで作成 etc…
①開発するシステムをツールを使用してモデルで表現(モデリング)
②モデルをもとにソースコード等を自動生成
開発者 ソースコード実行コード
copyright , 2007 Be PROUD 5
アウトライン
はじめに~MDAとは システム開発プロジェクトの現状
Model Driven Architecture MDAのインパクト
copyright , 2007 Be PROUD 6
2. システム開発プロジェクトの現状
ビジネスの成功とITシステムの深い関わり
→ITシステムに対して期待・要求が高まっている
1. 多種多様・複雑な機能の実現2. 短納期かつ高品質3. 高い稼働率4. セキュリティの確保5. 変更への柔軟・迅速な対応
copyright , 2007 Be PROUD 7
2. システム開発プロジェクトの現状
要求の高まりの結果何が起こっているか
1. 低いプロジェクトの成功率(Quality:品質、Cost:予算、Delivery:納期)が達成されていない
2. 要求実現のためSEは過酷な労働残業、土日出勤は日常茶飯事
3. QCD未達成のためユーザーからの評価が低くなりがち
copyright , 2007 Be PROUD 8
2. システム開発プロジェクトの現状
理由
1. 開発プロセスが乱立し、模索状態RUP、アジャイル、ウォーターフォール etc…
2. 次々と出現する実装技術Java, C#, Struts , JSF, Spring , Seasar2 , Hibernate , i-Batis , Ajax etc…
3. 依然として手動・目視が中心のテスト
copyright , 2007 Be PROUD 9
2. システム開発プロジェクトの現状
この幸せとはいえない現状を打開するには?
一つの解
自動化技術を活用した
開発プロセスの確立が鍵
→MDAの導入
copyright , 2007 Be PROUD 10
アウトライン
1. はじめに~MDAとは2. システム開発プロジェクトの現状3. Model Driven Architecture4. MDAのインパクト
copyright , 2007 Be PROUD 11
3. Model Driven Archtecture
MDAの基本概念≪MDA≫≪開発プロセス≫
仕様書
設計書
ユーザーの視点からシステムを表現=実装技術に依存しない
作り手の視点からシステムを表現=実装技術 依存
変換ルール
変換ルール
自動変換
自動変換
仕様分析
設計
実装/テスト
PIM (Platform Independent Model)
PSM (Platform Specific Model)
ソースコード等
要求分析 ※実装技術、プラットフォームとはプログラミング言語・DBなどのこと
〔成果物〕
(注)仕様書=PIMではない
copyright , 2007 Be PROUD 12
3. Model Driven Archtecture
モデル変換の具体例≪成果物の例≫
PIM
C# Java・Struts+Spring+Hibernate のクラス図・ER図
・Javaソースコード・JSPファイル・設定ファイル・SQLファイル・ビルドファイル
PHP
・ユースケース図・ドメインモデル(クラス図)・画面遷移図(アクティビティ図)
分析レベルのモデル(実装技術非依存)
PSM PSM PSM
ソース ソース ソース
copyright , 2007 Be PROUD 13
3. Model Driven Archtecture
仕様→設計の手法の特徴
1. 実装技術ごとに一定の設計パターンが存在する(プログラミング言語・フレームワークごと)
2. 設計技術はパターン化することができる。
※パターン化した例
・ エンタープライズ・アプリケーション・アーキテクチャ・パターン
・ デザインパターン
・ J2EEパターン
要求分析
仕様分析
設計
実装/テスト
copyright , 2007 Be PROUD 14
3. Model Driven Archtecture
設計→実装の手法の特徴
要求分析
設計書の内容をソースとして実装する。→パターン化できる。
①クラス図→クラスのソースコード
②ER図→SQL DDL文③アクティビティ図→画面遷移設定ファイル
(struts-config.xml、faces-config.xml)
仕様分析
設計
実装/テスト
copyright , 2007 Be PROUD 15
3. Model Driven Archtecture
パターン化から自動化へ
1.分析→設計
2.設計→実装
パターン化することが可能
その作業は自動化できる
copyright , 2007 Be PROUD 16
3. Model Driven Archtecture
分析(PIM)→設計(PSM) 変換例
1.連番フィールドの付与
2.多対多モデル
3.フレームワークへのマッピング
copyright , 2007 Be PROUD 17
3. Model Driven Archtecture
例1連番フィールドの付与
≪PIM≫商品を一意に識別できる商品コード
≪PSM≫変換
レコードを一意に識別できる連番IDを付与
copyright , 2007 Be PROUD 18
3. Model Driven Archtecture
例2多対多モデル関係テーブルを用いて多対多のデータを格納
≪PSM≫変換
関係テーブル 多対11対多
≪PIM≫
copyright , 2007 Be PROUD 19
3. Model Driven Archtecture
例3 フレームワークへのマッピング
≪プレゼンテーション層≫ ≪サービス層≫≪DAO層≫換
≪PIM≫変
≪PSM≫
Struts Spring Hibernate
copyright , 2007 Be PROUD 20
3. Model Driven Archtecture
MDAの効果1. モデルを中心として、分析・設計・実装がマッピングしているので、開発サ
イクルを統一した手法で進めることができる。
2. パターン化できる作業の自動化により品質・生産性の向上が期待できる。
PIM (Platform Independent Model)分析
自動変換変換ルール
PSM (Platform Specific Model)設計
変換ルール自動変換
実装 ソースコード等
copyright , 2007 Be PROUD 21
3. Model Driven Archtecture
MDAに関連するOMG標準OMG(Object Management Group)がモデリングのための標準を策定
1. UML2.0→MDA対応のため仕様を厳密に定義しなおした。
2. MOF(Meta Object Facility)→モデリング言語を定義するためのメタモデルを定義した仕様
3. XMI(XML Metadata Interchange)→メタモデルをXMLで表現するための仕様
4. QVT(Query View Transformations)→モデル変換定義の標準仕様
copyright , 2007 Be PROUD 22
MDAにおけるOMG標準の位置づけ
3. Model Driven Archtecture
PIM (Platform Independent Model)モデリング言語(UML2.0など)on MOF
PSM (Platform Specific Model)
ソースコード等
自動変換 変換ルール
QVTXMI
モデリング言語(UML2.0など)on MOF
自動変換
QVT変換ルールXMI
copyright , 2007 Be PROUD 23
3. Model Driven Archtecture
MDA対応ツール1. Borland Toghether(Borland社)2. Rational Rose(IBM社)3. AndroMDA(オープンソース)
http://www.andromda.org/
4. Optimal J(コンピュウェア社)5. Eclipse
EMF(Eclipse Modeling Framework) , UML2 , GMT(Generative Model Transformer)
etc….
copyright , 2007 Be PROUD 24
(参考)AndroMDAの記事
1. Java World 『実践!モデルドリブン開発~AndroMDAで試す近未来のJava開発』2005年5月~12月連載
2. CodeZine『AndroMDAでMDAの世界を体験する(コード生成編・コード分析編)』http://codezine.jp/a/article.aspx?aid=132http://codezine.jp/a/article.aspx?aid=133
copyright , 2007 Be PROUD 25
PIM PSM
仕様検討者・モデラー
ソース
テストコード
拡張ソースコード
変換ルール 変換ルール
入力/出力インターフェースが決まっているので、テストコードも自動生成できる
プログラマ
拡張テストコードテスト担当者
自動テスト(ボトムアップの自動化)
テストコードの実装
2つの自動化による高品質開発
自動生成できない部分をコーディング(拡張ポイントに対して)<受け入れテスト>
<外部開発組織><開発発注側>
変換ルール定義者
~MDA活用の展望
ソース・テストコード自動生成(トップダウンの自動化)
3. Model Driven Archtecture
copyright , 2007 Be PROUD 26
3. Model Driven Archtecture
MDAのこれから課題
1. なにをもってPIMとするかモデリング手法・方法論の確立
2. MDAツールの充実3. 開発プロセスとの統合4. いかに計測し効果を高めていくか
copyright , 2007 Be PROUD 27
アウトライン
1. はじめに~MDAとは2. システム開発プロジェクトの現状3. Model Driven Architecture4. MDAのインパクト
copyright , 2007 Be PROUD 28
4. MDAのインパクト
開発プロジェクトへのインパクト1. 仕様・設計・実装がマッピングしているので、開発サイクル全体を統一した手法で進めることができる。
2. 高品質の成果物・生産性向上→自動化技術のメリットを享受
3. 保守性の向上仕様→設計→実装のトレーサビリティー→モデルは、コードと乖離していない生きたドキュメントとなる
4. モデルによるシステムの「見える化」図表現による直感的な認識共有→関係者間の認識のずれが早期に解消→プロジェクトリスクが低減
copyright , 2007 Be PROUD 29
4. MDAのインパクト
経営層へのインパクト
1. 株主への説明責任ソフトウェアのリスクをいかに管理しているかが問われる
2. コーポレートガバナンス(企業統治)への活用コーポレートガバナンス=企業の経営を監視する仕組み→ソフトウェアライフサイクルを企業として監視する仕組みが必要となる。(開発・運用・技術・セキュリティ)
3. モデルの資産化
copyright , 2007 Be PROUD 30
4. MDAのインパクト
モデルの資産化PIMを保守していけば再構築プロジェクトの際もモデルを再利用できる。(資産としてのモデル)
PIM
実装技術に比べて変化が少ない
(時間軸)PSM PSM PSM
Java1.4 Java5 新しい言語
・実装技術は移り変わりが早い。・ベンダーのサポート切れ
copyright , 2007 Be PROUD 31
4. MDAのインパクト
エンジニアへのインパクト
1. 自動化技術のメリットを享受→生産性・品質の向上→バグ・トラブルの減少→残業・土日勤務の減少
2. 仕様→設計のマッピングを意識することによるエンジニア力の向上
3. 開発プロセス全体を意識した開発
copyright , 2007 Be PROUD 32
MDA(Model Driven Architecture)
自動化技術を活用した開発プロセスの確立が鍵
END