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