1. HOME
  2. ソリューション
  3. ソフトウェアプロダクトライン構築(SPL開発)の4ステップ

ソフトウェアプロダクトライン構築(SPL開発)の4ステップ

SPL開発への移行の進め方~1.調査・計画

SPL開発に移行する際に、既存資産を一度にまとめて統合することは、決して容易ではありません。そのため、事前に既存資産の全体像をしっかり把握し、最適な統合順となる移行計画を立案することが重要になります。図4は移行計画を立案するプロセスを示しています。

SPL「プロダクトライン開発」への移行の進め方【1.調査・計画】既存資産を解析して製品を統合する順序を決定し、具体的な移行プランを立案します|既存のコード/モデル⇒既存資産を解析する⇒既存資産の解析結果⇒製品の統合順を決める⇒製品の統合順⇒スケジュールを決定する⇒スケジュール

「1.1.既存資産を解析する」では、既存資産のコード/モデルなどを解析することによって、製品間の類似度を把握します。

「1.2.製品の統合順を決定する」では、製品間の類似度が高い順に製品の統合順序を決定します。

「1.3.スケジュールを決定する」では、各製品の資産を統合し、コア資産化するまでに要する工数を見積り、全ての製品の資産を統合するまでの詳細なスケジュールの立案を行います。

SPL開発への移行の進め方~2.既存資産を統合・差分分析

RIPPLEの二つの統合アプローチ

SPL開発への移行アプローチであるRIPPLEは、既存資産統合の進め方と して、二つのアプローチを用意しています。

一つは要求を中心に資産を統合するRequirement Integrationのアプローチ、もう一つはコード/モデルを中心に資産を統合するRapid Integrationのアプローチです。図5は二つのアプローチの違いを示しています。

SPL「プロダクトライン開発」への移行の進め方【2.既存資産を統合・差分分析】移行プランに従って既存資産の要求やコード/モデルを統合し、統合結果から製品間の差分を明らかにします|Requirement Integration:要求を中心に資産を統合する、Rapid Integration:コードモデルを中心に資産を統合する

要求中心のアプローチの場合、まずは代表製品の既存資産から、要求仕様をUSDM形式で明らかにします。その後、他製品の要求仕様の差分を記述粒度を保ったまま統合し、製品群全体の要求仕様と製品ごとに搭載されている機能を定義します。

USDM形式で記述することによって、製品群全体の機能を漏れなく、正確に把握することができ、加えて製品ごとの機能の差異が明らかになります。

つまりこのアプローチは、既存資産の要求仕様の統合と製品群における搭載機能の違いに関する分析(可変性分析)を同時に、かつ確実に行うことができます。

一方、コード/モデル中心のアプローチの場合は、複数製品間のコード/モデルに共通した処理や異なる処理を、ツールによって自動的に判別し、判別結果を確認しながら差分を統合することで、全製品を導出可能な、包括的なコード/モデルを作成します。この場合、コード/モデルの統合はスピーディーに行えますが、製品群の可変性を分析するためには、製品間のコード/モデルの単純な差異から、製品間の要求の違いを導出する必要があります。

これら二つのアプロ―チは、可変性分析を確実に行う事を重視するか、統合するスピードを重視するかで、使い分けることができます。

一般的なトップダウンのアプローチとの違い

可変性分析における成果物は、全製品に共通・可変な機能をツリー構造で表現し、機能間の依存関係(他機能を要求・排除する関係)を定義した「フィーチャーモデル」と呼ばれるものです。

一般的なSPL開発では、フィーチャーモデルを作成する前に、製品群全体の機能を製品企画書等のビジネス要件から抽出し、製品ごとの機能搭載の有無を分析する必要があります(図6上)。

SPL「プロダクトライン開発」への移行の進め方【2.既存資産を統合・差分分析】移行プランに従って既存資産の要求やコード/モデルを統合し、統合結果から製品間の差分を明らかにします|Requirement Integration:要求を中心に資産を統合する、Rapid Integration:コードモデルを中心に資産を統合する

この場合、企画書等からトップダウン的に詳細な機能を、網羅的かつ粒度を統一して見極めることは困難であるため、フィーチャーモデルは粗い粒度となりやすく、実際に開発されるアーキテクチャの実体とかけ離れてしまう恐れがあります。

これに対してRIPPLEアプローチでは、前述のように製品群の特性を、既存資産を元に仕様の粒度まで網羅的に分析するため、より詳細で粒度の統一された、アーキテクチャの実体に近いフィーチャーモデルを定義することができます(図6下)。

SPL開発への移行の進め方~3.部品化によるコア資産作成

可変性分析が完了し、製品群全体の機能が明らかになったら、製品群で再利用可能な資産である「部品化したコア資産」を作り込みます。

部品化したコア資産には、アーキテクチャモデルや設計資料、実装・テスト成果物が含まれます。これらの資産は、フィーチャーモデルの各機能と対応付けて管理します。

図7は、部品化したコア資産におけるアーキテクチャの例を示しています。部品化したコア資産は全ての製品群の機能を網羅するため、全機能を実現する構成要素を持つ"包括的なアーキテクチャ"となっています。

SPL「プロダクトライン開発」への移行の進め方【3.部品化によるコア資産作成】統合した資産から全ての製品を導出できるように、統合した資産のアーキテクチャを再利用しやすい構造に洗練させ、部品化したコア資産を作成します

製品毎に可変となる構成要素は、フィーチャーモデルで定義した機能と対応付け、ステレオタイプに<<variant>>を設定します。

SPL開発への移行の進め方~4.製品を導出

コア資産が完成したら、コア資産から各製品を導出するための仕組みを構築し、導出します。

図8の例では、製品AとCで、フィーチャーモデル上で異なる機能を選択し、それに対応した異なる構成要素から成る各製品のアーキテクチャモデルが導出されることを示しています。アーキテクチャモデルだけでなく、ドキュメントやテストなども、その製品ごとに選択した機能に応じたものが導出されます。

SPL「プロダクトライン開発」への移行の進め方【4.製品を導出】コア資産から機能を組み合わせる仕組みを構築し、その仕組みを用いて個別の製品を導出します

このように、SPLを導入することで、製品群の全ての製品の資産を一つのコア資産から導出できるようになります。その結果、重複開発を劇的に減らすことが可能となり、従来に比べて製品開発に要する工数を大きく削減することができます。

頑張ってるけど、ちっとも楽にならない…何で?

すぐに成果を出すために頑張ってるけど、自前ではもう限界

効果的だろうけど高額なコンサルには手がでない…

あなたに合う一番最適な解決方法を
エクスモーションがご提案いたします。

SPLプロダクトライン開発の関連サービス

人材育成

SPLトレーニング

ソフトウェアプロダクトライン工学(SPLE)の概要から、その中心となる理論・技術までを総合的に学習できます。開発者・品質担当・プロセス改善従事者など製品開発に携わる全ての方への教育にご利用ください。

EurekaBoxは、オンラインで学べる総合学習&実践プラットフォームです。このコースでは、これからSPLを学んでいきたいという人から、実践している人に向けて、コンテンツを用意しています。SPLの基礎から応用までをわかりやすく解説します。

"RIPPLEアプローチ"とは、既存のソフトウェアから再利用資産化できそうなものを抽出し、製品開発時に新たな要件等を加えて資産を増やしていく方法です。既存ソフトウェアの調査、プロダクトライン化計画の作成、実施の全ての活動を総合的に支援します。

RIPPLEアプローチに基づくPL開発への移行を目的とし、このアプローチが適切かどうか、システムのどの部分から対応していくべきか、どの程度の工数がかかるのかを診断します。

SPL関連コラム

プロダクトライン開発に関する記事を見る

他のソリューションを見る

最新コラム