Comments
Description
Transcript
SPLE tutorial in Kumamoto
2008/11/20 組込みシステム産学官連携技術交流会 in 熊本 ソフトウェアプロダクトライン開発ワークショップ 「SPLE,如何に取り組むべきか?」 山内 和幸 概要 プロダクトライン(PL)開発を始めるに当たって、検討すべきこ とと、幾つかのアプローチを紹介 1. 「ゴール」と「現状」の確認 2. PL化する対象の特定 3. ゴール: SPLEがもたらす効果 現状: Family Evaluation Framework による評価 スコーピング Light weight なアプローチの紹介 Extractive (+ Reactive) アプローチ Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 1 1 2008/11/20 「ゴール」と「現状」の確認 2 ソフトウェアプロダクトライン工学とは?(1) ソフトウェアプロダクトライン工学(SPLE)と聞いて、何をイメー ジしますか? 最先端の開発手法/技術 ソフトウェア開発の現状を救う、画期的な方法論 経営哲学 怪しい欧米の思想 etc. 大抵の場合、十分な理解ができてないことが多い 質の良い(日本語の)情報が尐ない 工学体系として規模が大きいので、全体像が掴みにくい これまでの技術と似た部分が多いので、同じものだと捉えてし まう etc. Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 3 2 2008/11/20 ソフトウェアプロダクトライン工学とは?(2) SPLE = 長年に渡って蓄積された、ソフトウェア工学の集大成 体系的な再利用をベースとした、ソフトウェア開発手法/技術 ソフトウェア工学技術と、ビジネスの融合 ビジネス価値の最大化に視点を置いた手法 これまでのソフトウェア工学に対して、 よりビジネスを意識した手法 どんなに開発生産性や再利用率が高くても、ビジネス上の効果が 出なければ無意味 個別の1製品の開発ではなく、同系列多品種の開発を意識した 手法 個別最適ではなく、全体最適 Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 4 なぜソフトウェアプロダクトライン工学? よく聞く話 - 「我社でもSPLEを導入したい」 質問: なぜ、SPLEを導入したいのですか? この質問に対して、的を得た回答ができない場合は、導入リス クが高い 抱える問題が、SPLEとは関係ないこともあり得る あるいは、SPLEの採用を始めるには、組織の成熟度が低い 上記質問の回答に対して、「何故?」を数回繰り返してみよう その結果、得られる答えが「導入目的」のはず Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 5 3 2008/11/20 プロダクトライン開発がもたらす効果 SPLEを導入したい理由は、以下の期待される効果が企業にとって 魅力的だからに他ならない 直接的な効果 開発工数の削減 開発コストの低減 初期投資を除いて、再利用資産部分の開発工数は0 再利用を前提としているため、スクラッチから開発する場合と比較して、短期 間で製品が開発できる 正確には、製品開発からのフィードバックの取り込み等があるため、0ではない 開発期間の短縮 新製品の短期での市場投入 短縮度合いは、再利用資産の規模/質/可変性の実現方法等に依存する 副次的な効果 製品品質の向上 既に品質保証された再利用資産を利用するため、新規開発と比較して品質 を高く維持できる 解決したい課題(つまり、導入目的)が、上記効果によって解消さ れるならば、SPLEの導入は理にかなっていると言える 6 Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. SPLEの投資対効果 工数 個別システム開発 PL開発1機種の 開発工数 プロダクトライン開発 経験則2: 工数削減効果は、PL開発で 2~3機種目から得られる PL初期投資 個別システム1機種の 開発工数 経験則1: 投資額は通常、個別システム 開発の1~2機種分に相当 製品世代 1 2 3 4 Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 5 6 7 4 2008/11/20 ゴールと現状の理解 SPLEによってもたらされる状態が(1つの)ゴールだとしたら、そこと現状 のギャップは? ギャップが大きいほど、導入障壁/リスクは大きい ゴールを明確にするために、SPLEを正し く知ることが必要 謳われている効果が出る理由は理解 しておきたい 自分達が、今どのレベルにあるのかを、 客観的に知ることが重要 評価軸としては、以下の手法を使うこ とができる Product Line Technical Probe Family Evaluation Framework 現状とゴールの ギャップ 8 Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. Family Evaluation Framework*1 (1) • Collaboration Responsibilities • Structure Organization • Roles & • Collaboration • Application Process • Domain Architecture • Variability • Reference • Reuse Architecture • Strategic • Vision • Financial aspects Business • Commercial dimension Level 1 Project based Independent development Initial Project Level 2 Aware Standardised infrastructure Managed Reuse Level 3 Managed Software platform Defined Weakly connected Level 4 Measured Variant products Quantitatively managed Synchronized Level 5 Optimizing Configuring Optimising Domain oriented 2008et eXmotion Co., Ltd. All rights reserved. *1 F.Copyright(C) van der Linden al: “Software Product Lines in Action” より 9 5 2008/11/20 Family Evaluation Framework (2) 自組織の状態を、4つの視点から評価 ビジネス(Business) アーキテクチャ(Architecture) プロセス(Process) 組織(Organization) 各視点は、さらにいくつかの小項目に分かれる 自分達が目指す状態が、BAPOそれぞれに対してどのレベル なのかを確認 現状を評価し、どれだけのギャップがあるのか、どこを改善 すべきかを把握 どこから改善するか 導入戦略の一部 Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 10 PL化する対象の特定 11 6 2008/11/20 SPLEのキー概念 SPLE を正しく理解する上で、以下の概念は理解しておきたい スコーピング(scoping) ドメイン分析とアプリケーション分析(domain analysis and application analysis) 共通性と可変性(commonality and variability) 決定モデル(decision modeling) 結合時間(binding time) 実体化支援(instantiation support) これらの内、PL化する対象を特定するためには、スコーピン グが役に立つ スコーピングは、”Business” と “Architecture” の接点となる Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 12 スコーピング スコーピングとは、PL開発の対象とする製品群/ドメイン群 の範囲を決める活動 戦略的な意思決定活動 経営的視点(製品ポートフォリオ)と、技術的視点(何を再利用 可能にすべきか)の両方が必要 PuLSE-Eco*2では、以下の2つのステップにて実施される PLマッピング ドメイン・ポテンシャル分析 製品群と、それを構成する機能の対応関係を把握 製品群を構成するドメインの内、再利用の可能性の高いドメインを 特定 *2 K. Schmid: “A comprehensive product line scoping approach and its validation” より Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 13 7 2008/11/20 製品ポートフォリオ 既存の製品群、及び将来に予定されている製品群のリスト 例えばiPodの場合 ※ iPodの開発に、SPLEが使われているかどうかは不明 品種 iPhone 空間軸での派生に伴う可変性 iPod touch iPod iPod nano iPod shuffle 時間 時間軸でのバージョンアップに伴う可変性 14 Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. PLマッピング 対象となる製品群を構成する機能を、どのように組み合わせて、 製品を構成するかを計画 個々の製品に搭載される機能は、機能-製品マトリクス(feature product matrix)に記載 製品と機能の対応表 iPod classic iPod shuffle iPod nano iPod touch iPhone 3G 音楽再生 ○ ○ ○ ○ ○ ビデオ再生 ○ ○ ○ ○ 操作入力 ○ ○ ○ ○ ○ 通話 ○ 通信 ○ ○ ○ GPS ※ ここに記載しているものは、iPod の機能の一部です Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 15 8 2008/11/20 ドメイン・ポテンシャル分析 製品に搭載されるソフトウェアを構成するドメインが、プロダ クトライン開発に適しているかどうかを評価 「適している」 = 「再利用の可能性が高い」 再利用性の可能性が高いドメインほど、コア資産化した場合 の効果が大きい 可能性が低いドメインは、資産化しても使われないので、投資 に見合わない 様々な視点から、再利用の可能性を評価する必要がある Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 16 ドメイン・ポテンシャル分析の評価基準 1. 成熟度 どの程度ドメインを理解しているか、どの程度ドメイン内の概念が整理されている か 2. 安定性 概念や挙動が、どの程度安定しているか、あるいは標準化されているか 3. 共通性と可変性 どの程度の共通性/可変性があるか、また可変性は整然としているか 4. 凝集度と結合度 機能性が十分に凝集していて、かつ他のドメインと強く結合していないか 5. 既存資産 そのドメインの既存資産が既に存在するか 6. リソース制約 プロダクトライン開発を始めるに当たって、どんなリソース(人/物/金)が利用可 能か 7. 組織制約 そのドメインがどのように組織体と関係しているか、再利用が支持されるかどうか 8. 市場可能性 (組織の)内部的/外部的に、そのドメインをPL化することで、どのような可能性が あるか Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 17 9 2008/11/20 ドメイン・ポテンシャル分析の結果 評価基準の内、No.1~5を定量化 各基準の値域は、実施する組織にて定義 3 3 2.5 2.5 2 2 1.5 1.5 1 1 0.5 0.5 0 0 PL化の効果が低いドメイン PL化の効果が高いドメイン これに、No.6~8の評価基準を加味して、対象ドメインのPL化の可 能性を評価 単にgo/stopではなく、どのようにアプローチしていくかも検討するのが ベター Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 18 スコーピングの結果と移行計画 機能-製品マトリクスと、ドメイン・ポテンシャル分析結果を基 に、何を再利用対象とするかを決定 併せて、以下も検討 「いつ」再利用可能にするか 開発計画 「どこで」再利用可能にするか 組織構成 「誰が」再利用可能にするか リソース配置 「どうやって」再利用可能にするか アーキテクチャ 一度に全ての候補を再利用可能にすることもできるし、段階 的に再利用資産に加えていくこともできる この決定こそが、“戦略的な移行計画” 組織の現状に合わせて、最適な移行計画を練ることが重要 Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 19 10 2008/11/20 移行計画の違いによる、投資対効果の変化 工数 個別システム開発 段階的移行 一括展開 たとえ損益分岐点が同じだとしても、長期視点で見れば、一括展開 した方が効果は高い(一括展開が理想的に実施された場合) • 段階的移行の方が、初期投資が小さくてすむ (トータルでの投資額は、一括展開を超える) • 部分的な移行の積み重ねなので、移行に伴う各種変更も局所 化される リスク小 世代 Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 20 Light weight なアプローチの紹介 21 11 2008/11/20 SPLEの導入アプローチ SPLEの導入において、以下の2つのアプローチが対比される Proactiveアプローチ(事前準備型) 先に再利用資産を構築し、その後に製品開発を開始 Reactiveアプローチ(都度対応型) 製品開発と同時に再利用資産を構築 あるいは製品開発後に、共通化可能な資産を抽出 どちらのアプローチを採るにせよ、現実には、製品開発を一時的に止め て/遅らせて、PL開発に移行するのはリスクが高い 移行が100%成功する保証はない 製品リリースタイミングを逃すと、競合他社にシェアを奪われる 移行期間が長いほど、リスクは増加 既存資産を放棄して、スクラッチからPL開発に入るか? 現実には難しい 可能な限り、既存資産を活用する方が、リスクは尐ない 組織によっては、既にSPLEのエッセンスを取り入れた開発を、暗黙の内に 実施している場合もある Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 22 現実的な導入アプローチ 近年、Extractive(+ Reactive)というアプローチの事例が聞かれるよ うになってきた 既存資産からコア資産を抽出し、それが可変性に耐えうるように徐々 に進化させて行く方法 スクラッチからPLアーキテクチャを定義して、再利用コンポーネントを 開発していく方法と比較して、 初期投資が尐なくて済む 段階的な移行がしやすいため、各種変更によるリスクが小さい ただし、必ずしもこのアプローチが良い訳ではない “Cost(既存資産のPL化) > Cost(スクラッチから資産構築)”ならば、 Extractiveでは効果が薄い ドメイン/設計ナレッジの抽出に留めるべき アプローチ決定時には、「ゴール」と「現状」をよく検討した上で、適切 なアプローチを選ぶことが重要 Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 23 12 2008/11/20 Gears*3に見る、PL開発への移行方法(1) *3 Gears は、米国 BigLever Software, Inc. の製品 Problem Space Step 3: Top Tier • フィーチャモデルを作成し、機能の組み合わせによる製品構成 をコントロール • 製品ポートフォリオの最適化 Top Tier: 製品ポートフォリオ管 理の最適化 Middle Tier: コア資産を核とした製品群開発 への移行 Base Tier: 既存資産の可変性管理と、製品ソフト ウェアの自動構成 C. W. Krueger: “The 3-Tiered Methodology” より Step 2: Middle Tier • モジュラリティの高いアーキテクチャを構築し、そこで定義され る汎用コンポーネントを開発 • 個別資産による「製品開発」から、プロダクトラインアーキテク チャ/汎用コンポーネント等のコア資産をベースとした「製品群 開発」へ移行 Step 1: Base Tier • 既存資産に存在する変動部の情報を収集/整理 • 変動点のコンフィグレーション用プロファイルを作成し、各製品 に必要な資産を自動的に構成 Solution Space Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 24 pure::variants*4 に見る、PL開発への移行方法(2) *4 pure::variants は、ドイツ pure systems GmbH の製品 Problem Space Solution Space 既存の製品が、どういう関係にあるか(独立、流用開発、資産 共有、etc.)を調査する。 関係性によって、移行時のリスク等が異なる。 SPLE導入前 既存製品の関係性調査 調査結果に基づき、どのように移行するのかの計画を立てる 事前準備型 or 都度対応型,段階的 or 一括移行 移行シナリオの特定 既存資産に存在する可変性を調査/分析し、再利用単位を 決定する。 • フィーチャモデル • プロダクトラインアーキテクチャ 可変性の抽出方法は、既存資産の状況により、次の2通りか ら選択可能 • フォワード型 製品仕様やマニュアル等から、製品毎の機能の差異を抽 出 アーキテクチャやコードに反映して行く • バックワード型 アーキテクチャやコード等、設計資産内に存在する可変 性を抽出 製品毎の機能の差異へと昇華させて行く 可変性分析 モデル構築 SPL開発 富士設備工業(株)主催 「プロダクトライン開発セミナー」講演資料より Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 25 13 2008/11/20 終わりに 26 終わりに SPLEは、効果の大きな戦略的再利用を可能にするが、その 適用にはリスクも多い リスクを抑えて、効果を得るために、 「ゴール」と「現状」をしっかりと認識し、 経営的/技術的両視点から十分に分析して、 組織に合った移行計画を立てること! 一括展開 vs. 段階的移行 欧米に負けない、日本発の成功事例を増やして、共有して いきましょう! 九州、ひいては日本の競争力強化のために!! Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 27 14 2008/11/20 参考資料 F. van der Linden, K. Schmid, E. Rommes: “Software Product Lines in Action”, Springer, 2007. K. Schmid: “A comprehensive product line scoping approach and its validation”, Proceedings of the 24th International Conference on Software Engineering. C. W. Krueger: “The 3-Tiered Methodology: Pragmatic Insights from New Generation Software Product Lines”, Proceedings of the 11th International Software Product Line Conference. BigLever Software Inc., http://www.biglever.com/index.html D. Beuche: “Software Product Lines and pure::variants”, プロダクトライン開発セミ ナー資料, http://www.fuji-setsu.co.jp/products/purevariants/pg111.html Pure systems GmbH, http://www.pure-systems.com/ Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 28 SPLEのキー概念:要約(1) スコーピング PL開発の対象とする製品群/ドメイン群の範囲を決める活動 これにより、再利用範囲が決まるため、戦略的な意思決定が必要 ドメイン分析とアプリケーション分析 コア資産/製品の二層開発 コア資産開発: ドメイン・エンジニアリング 個々の製品開発: アプリケーションエンジニアリング 共通性と可変性 共通性 開発する全ての製品に共通の特性 可変性 開発する製品群の一部にのみ現われる特性、または製品毎に変わる 特性 この可変性をコントロールし、製品開発を効率化することが、PL開発の 重要項目 Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 29 15 2008/11/20 SPLEのキー概念:要約(2) 決定モデル 個々の可変性に対して、「判断」を行うための情報 質問/回答の値域/回答選択時のアクション/制約/他の可変性と の関連等により構成される 結合時間 再利用資産には、製品群全体では必要だが、個々の製品には必要の ない部分も含まれている 再利用資産 ≒ 汎用資産(Generic Asset) この「必要のない部分」をいつそぎ落とすかが、“結合時間” 可変性をいつ解決(bind)するのか コンパイル時、リンク時、実行時、etc. 実体化支援 再利用資産群から、個々の製品に必要な資産のみを選択して、構成 するための仕組み作り ツールによる自動構成等 Copyright(C) 2008 eXmotion Co., Ltd. All rights reserved. 30 16