ものがあふれる現代、身の回りにある多くの機器は機能が飽和し、一から製品を開発する機会はほとんどありません。開発現場においても、既存資産を可能な限り活用して新しい製品を作り出すことが、単純に「開発量を減らす=早期リリースを可能にする」と考えられ、安易なコピーによる開発が横行しています。しかし、そうすることの副次的な問題により、開発現場は一向に楽になることはありません。では、どうすれば良いのでしょうか。
多くの現場では、新製品の開発時に過去に開発した類似製品の資産(=既存資産)をコピーして、派生開発や再利用開発をスタートします。
図1上は典型的な派生開発を示しています。この方法では製品のコピーを場当たり的に繰り返しており、コピー元の資産は統一されていません。
図1下は典型的な再利用開発を示しています。こちらはコピー元の資産は統一されていますが、各製品はコピー元資産の特定バージョンをコピーしています。
これらの方法は、各製品の資産とコピー元資産の多くの部分を重複してメンテナンスする必要があるため、一つの製品に変更が必要となった時に、同様の変更が複数の製品バージョンに及ぶ可能性があるという問題を抱えています。
上記の問題はSPL(ソフトウェアプロダクトライン)開発によって解決することができます。図2はSPL開発のイメージを示しています。
SPL(ソフトウェアプロダクトライン)開発では、コピーではなく、統一して管理された資産から各製品を導出する点に大きな特徴があります。
統一して管理された、再利用可能な資産のことをコア資産と呼び、いつでも製品群の全ての製品の導出が可能であるように、定期的にバージョンアップします。そのため、どの製品に変更が必要になっても、変更はコア資産の最新バージョンのみでよくなります。
また、新製品の開発時には、既に開発・テスト済みのコア資産を最大限に活用できるため、新製品固有機能の作り込みのみに専念することができます。
このように変更開発時・新規開発時のいずれにおいても、SPL開発では重複した機能開発を防ぐことができるため、従来に比べて、ムダな開発工数を削減することができます。
では、SPL(ソフトウェアプロダクトライン)開発に移行するためにはどうすればよいのでしょうか?
一般的には、要求からトップダウン的に、製品群全てを導出可能なコア資産を構築します。しかし、この方法は非常に大掛かりであり、開発現場の負担が大きいため、多くの開発現場では導入に踏み出すことができません。
これに対して、既存資産を最大限に利用することにより、比較的早期にSPL開発に移行することができる方法があります。図3は、そのプロセスを示しています。当社ではこのアプローチのことを、RIPPLE(Rapid/Requirement Integration Production Product Line Evolution)と呼んでいます。
「1. 調査・計画」では、既存資産を解析して製品を統合する順序を決定し、具体的な移行プランを立案します。
「2. 既存資産を統合・差分分析」では、移行プランに従って既存資産の要求やコード/モデルを統合し、統合結果から製品間の差分を明らかにします。
「3. コア資産作成」では、統合した資産から全ての製品を導出できるように、統合した資産のアーキテクチャを再利用しやすい構造に洗練させ、コア資産を作成します。
「4. 製品を導出」では、コア資産から機能を組み合わせる仕組みを構築し、その仕組みを用いて個別の製品を導出します。
以降、1~4の詳細を説明していきます。
![シニアエンジニア・吉元崇](img/spl_sol/consal_d.png)
多くの開発現場では常に開発効率の改善を求められています。これを解決する手段としてSPL(ソフトウェアプロダクトライン)開発を取り入れている現場は少なくないようですが、多岐にわたる工学的知識を独力で習得し、正しく実践していくことは大変難しく、期待する効果が得られていないケースも見られます。
エクスモーションでは、これまで様々なSPL(ソフトウェアプロダクトライン)開発の導入支援を実施してきました。それら支援を通じて培われた実践的なノウハウにより、現場にとってわかりやすく、具体的なSPL開発の進め方のご提案と実践が可能です。
SPL(ソフトウェアプロダクトライン)開発の進め方に迷ったら、ぜひ、私たちにご相談ください。皆さんと一緒になって変革を成し遂げることを楽しみにしております。
エクスモーションでは、同系列の組込み製品を開発しておられるお客様に対して、以下のサービスを提供しています。
![SPL(ソフトウェアプロダクトライン)化することで、「派生開発」の重複のムダを排除し、開発効率を劇的に改善|実開発への適用支援](img/xddp/sm_1.gif)
"RIPPLEアプローチ"とは、既存のソフトウェアから再利用資産化できそうなものを抽出し、製品開発時に新たな要件等を加えて資産を増やしていく方法です。既存ソフトウェアの調査、プロダクトライン化計画の作成、実施の全ての活動を総合的に支援します。
![SPL(ソフトウェアプロダクトライン)化することで、「派生開発」の重複のムダを排除し、開発効率を劇的に改善](img/line.gif)
![SPL(ソフトウェアプロダクトライン)化することで、「派生開発」の重複のムダを排除し、開発効率を劇的に改善](img/spl_sol/sm3.jpg)
RIPPLEアプローチに基づくPL開発への移行を目的とし、このアプローチが適切かどうか、システムのどの部分から対応していくべきか、どの程度の工数がかかるのかを診断します。
![SPL(ソフトウェアプロダクトライン)化することで、「派生開発」の重複のムダを排除し、開発効率を劇的に改善](img/line.gif)
![SPL(ソフトウェアプロダクトライン)化することで、「派生開発」の重複のムダを排除し、開発効率を劇的に改善|人材育成](img/xddp/sm_2.gif)
ソフトウェアプロダクトライン工学(SPEL)の概要から、その中心となる理論・技術までを総合的に学習できます。開発者・品質担当・プロセス改善従事者など製品開発に携わる全ての方への教育にご利用ください。