ソフトウェアプロダクトライン構築(SPL開発)の4ステップ
SPL開発への移行の進め方~1.調査・計画
SPL開発に移行する際に、既存資産を一度にまとめて統合することは、決して容易ではありません。そのため、事前に既存資産の全体像をしっかり把握し、最適な統合順となる移行計画を立案することが重要になります。図4は移行計画を立案するプロセスを示しています。
「1.1.既存資産を解析する」では、既存資産のコード/モデルなどを解析することによって、製品間の類似度を把握します。
「1.2.製品の統合順を決定する」では、製品間の類似度が高い順に製品の統合順序を決定します。
「1.3.スケジュールを決定する」では、各製品の資産を統合し、コア資産化するまでに要する工数を見積り、全ての製品の資産を統合するまでの詳細なスケジュールの立案を行います。
SPL開発への移行の進め方~2.既存資産を統合・差分分析
RIPPLEの二つの統合アプローチ
SPL開発への移行アプローチであるRIPPLEは、既存資産統合の進め方と して、二つのアプローチを用意しています。
一つは要求を中心に資産を統合するRequirement Integrationのアプローチ、もう一つはコード/モデルを中心に資産を統合するRapid Integrationのアプローチです。図5は二つのアプローチの違いを示しています。
要求中心のアプローチの場合、まずは代表製品の既存資産から、要求仕様をUSDM形式で明らかにします。その後、他製品の要求仕様の差分を記述粒度を保ったまま統合し、製品群全体の要求仕様と製品ごとに搭載されている機能を定義します。
USDM形式で記述することによって、製品群全体の機能を漏れなく、正確に把握することができ、加えて製品ごとの機能の差異が明らかになります。
つまりこのアプローチは、既存資産の要求仕様の統合と製品群における搭載機能の違いに関する分析(可変性分析)を同時に、かつ確実に行うことができます。
一方、コード/モデル中心のアプローチの場合は、複数製品間のコード/モデルに共通した処理や異なる処理を、ツールによって自動的に判別し、判別結果を確認しながら差分を統合することで、全製品を導出可能な、包括的なコード/モデルを作成します。この場合、コード/モデルの統合はスピーディーに行えますが、製品群の可変性を分析するためには、製品間のコード/モデルの単純な差異から、製品間の要求の違いを導出する必要があります。
これら二つのアプロ―チは、可変性分析を確実に行う事を重視するか、統合するスピードを重視するかで、使い分けることができます。
一般的なトップダウンのアプローチとの違い
可変性分析における成果物は、全製品に共通・可変な機能をツリー構造で表現し、機能間の依存関係(他機能を要求・排除する関係)を定義した「フィーチャーモデル」と呼ばれるものです。
一般的なSPL開発では、フィーチャーモデルを作成する前に、製品群全体の機能を製品企画書等のビジネス要件から抽出し、製品ごとの機能搭載の有無を分析する必要があります(図6上)。
この場合、企画書等からトップダウン的に詳細な機能を、網羅的かつ粒度を統一して見極めることは困難であるため、フィーチャーモデルは粗い粒度となりやすく、実際に開発されるアーキテクチャの実体とかけ離れてしまう恐れがあります。
これに対してRIPPLEアプローチでは、前述のように製品群の特性を、既存資産を元に仕様の粒度まで網羅的に分析するため、より詳細で粒度の統一された、アーキテクチャの実体に近いフィーチャーモデルを定義することができます(図6下)。
SPL開発への移行の進め方~3.部品化によるコア資産作成
可変性分析が完了し、製品群全体の機能が明らかになったら、製品群で再利用可能な資産である「部品化したコア資産」を作り込みます。
部品化したコア資産には、アーキテクチャモデルや設計資料、実装・テスト成果物が含まれます。これらの資産は、フィーチャーモデルの各機能と対応付けて管理します。
図7は、部品化したコア資産におけるアーキテクチャの例を示しています。部品化したコア資産は全ての製品群の機能を網羅するため、全機能を実現する構成要素を持つ"包括的なアーキテクチャ"となっています。
製品毎に可変となる構成要素は、フィーチャーモデルで定義した機能と対応付け、ステレオタイプに<<variant>>を設定します。
SPL開発への移行の進め方~4.製品を導出
コア資産が完成したら、コア資産から各製品を導出するための仕組みを構築し、導出します。
図8の例では、製品AとCで、フィーチャーモデル上で異なる機能を選択し、それに対応した異なる構成要素から成る各製品のアーキテクチャモデルが導出されることを示しています。アーキテクチャモデルだけでなく、ドキュメントやテストなども、その製品ごとに選択した機能に応じたものが導出されます。
このように、SPLを導入することで、製品群の全ての製品の資産を一つのコア資産から導出できるようになります。その結果、重複開発を劇的に減らすことが可能となり、従来に比べて製品開発に要する工数を大きく削減することができます。
頑張ってるけど、ちっとも楽にならない…何で?
すぐに成果を出すために頑張ってるけど、自前ではもう限界
効果的だろうけど高額なコンサルには手がでない…
あなたに合う一番最適な解決方法を
エクスモーションがご提案いたします。
SPLプロダクトライン開発の関連サービス
人材育成
ソフトウェアプロダクトライン工学(SPLE)の概要から、その中心となる理論・技術までを総合的に学習できます。開発者・品質担当・プロセス改善従事者など製品開発に携わる全ての方への教育にご利用ください。
EurekaBoxは、オンラインで学べる総合学習&実践プラットフォームです。このコースでは、これからSPLを学んでいきたいという人から、実践している人に向けて、コンテンツを用意しています。SPLの基礎から応用までをわかりやすく解説します。
適用支援
"RIPPLEアプローチ"とは、既存のソフトウェアから再利用資産化できそうなものを抽出し、製品開発時に新たな要件等を加えて資産を増やしていく方法です。既存ソフトウェアの調査、プロダクトライン化計画の作成、実施の全ての活動を総合的に支援します。
診断
RIPPLEアプローチに基づくPL開発への移行を目的とし、このアプローチが適切かどうか、システムのどの部分から対応していくべきか、どの程度の工数がかかるのかを診断します。
SPL関連コラム
プロダクトライン開発をアップグレードさせた『新たなプロダクトライン開発』でソフトウェアファースト時代に備える!
ソフトウェアを共通化する方法として、プロダクトライン開発がありますが、OTAを考慮するとプロダクトラ...
ソフトウェアファースト時代に不可欠な新たなプロダクトライン開発とは
自動車業界を中心に「ソフトウェアファースト」という言葉がもてはやされています。それは、目指すべき方向...
SPL(ソフトウェアプロダクトライン)化で「派生開発」の効率化
近年のユーザニーズの多様化、国際的な競争の激化等で、組込み製品のバリエーションは増える一方です。そし...
SimulinkモデルにおけるSPL(プロダクトライン開発)可変点の設計・実装テクニック
可変性の実現(可変点の設計・実装) コア資産は、スコープに含まれる複数の製品での利用を想定して開発さ...
プロダクトライン開発に関する記事を見る
他のソリューションを見る
システムアーキテクチャ
USDM要求の定義と仕様化 既存資産の解説書 レガシー救済プロジェクト レガシーリファクタリング プロセス・アーキテクチャ XDDPによる「派生開発」 「UML」+「オブジェクト指向」
モデリング
最新コラム
製造業エンジニアのための 生成AI活用スタートガイド
~日常業務への生成AI活用にむけた実践的活用法~ はじめに 製造業のソフトウェア開発現場では業務効率...
SDV時代を生き抜くための サイバーセキュリティ&機能安全
近年SDV(Software Defined Vehicle)が注目を集めています。SDVではソフト...
設計ノウハウの蓄積と活用を促進する パワエレ製品向けMBSE
パワエレの製品開発では電力・電子・制御など複数の技術ドメインに対する定量値や制約の扱いがシステム設計...
SDVの価値向上に欠かせない データ駆動開発のすすめ
車がネットワークにつながったことで、多種多様なデータを収集することができるようになりました。集めたデ...