第1回 SPL開発とは?投資対効果が高い、既存のソフトウェアを共通化させる具体事例

【第1回 SPL(再利用する開発手法)解説 コラム】
今回はSPL開発とは何か?をご紹介します。主な内容は、SPL開発とは何か、SPL開発の投資対効果、開発の全体像の3点です。
本コラムはSPLとは?について、基礎的な内容を数回に分けてわかりやすく解説していきます。
SPL開発とは

https://member.eureka-box.com/products/10/categories/2150178948/posts/2158350243
SPL開発とは、正式名称を"Software Product Line Engineering"といい、類似した製品間で共通するソフトウェアを効率的に再利用する開発手法を指します。複数の類似製品を開発したり、それらに頻繁に機能追加が要求される昨今の組込み開発現場で、導入を検討する事例が増えています。
SPL開発の主な工程には、類似した製品間の違いを整理する「可変性分析」、バリエーションすべてを含んだソフトウェアを作る「ドメインエンジニアリング」、それを再利用して個別製品を作りこむ「アプリケーションエンジニアリング」があります。
皆さんの開発現場でも共通部品を開発するケースはあると思いますが、それとSPL開発との違いは、共通部品を使っている製品を把握・管理するという点です。「部品を作ったから自由に使って」といった、使い方に統制を取らない部品開発ではなく、「部品を必要とする製品それぞれの要望を満たせるように意識して作ろう」といった、製品を広い目線で俯瞰した、統率の取れた部品開発を行います。
SPL開発の投資対効果

https://member.eureka-box.com/products/10/categories/2150178948/posts/2158350243
SPL開発を行った場合の投資対効果を見てみましょう。
今までどおりに個別にシステム開発を行った場合、新しい製品が出るたび、同じように工数がかかり、コストが線形に伸びていきます。
それに対して、SPL開発では、初期投資として、既存のソフトウェアを共通化するというコストが発生しますが、その後は共通化したソフトウェアを再利用できるため、コストの伸びが穏やかになります。この初期コストは、一般に、2~4製品目までの工数削減によりペイできると考えられています。
このように、SPL開発を導入することで、再利用による開発工数の削減、開発期間の短縮という効果が得られます。また、副次的な作用として、再利用が繰り返されるため製品品質自体も向上することが見込めます。
それでは、SPL開発により、250人月を数人月に削減できたという事例をご紹介しましょう。
Eureka Boxは厚生労働省が実施している助成金、人材開発支援助成金の適用対象となります。
ディーゼルエンジンシステム(カミンズ社)

https://member.eureka-box.com/products/10/categories/2150178948/posts/2158350243
こちらは、米国カミンズ社のディーゼルエンジンシステムの事例です。1,000以上のエンジンアプリケーションを含む、20以上の製品グループについて、
- 250人月の工数が数人月に削減された
- ビルドと統合に要していた期間が、1年から1週間に短縮した
- 品質目標が達成できた
- 高い顧客満足度が得られた
- スケジュールどおりに製品開発できた
という効果が報告されています。
【参考】Software Engineering Institute,
https://resources.sei.cmu.edu/asset_files/Presentation/2008_017_001_24246.pdf
開発の全体像

https://member.eureka-box.com/products/10/categories/2150178948/posts/2158350243
次に、開発の全体像を確認しておきましょう。
SPL開発は、共通のソフトウェアを作り、類似製品間で再利用することで、開発の効率化を図る技術体系です。可変性分析、ドメインエンジニアリング、アプリケーションエンジニアリングの3つが、特徴的な取り組みでした。SPL開発の活動の中心となるのが、再利用資産、すなわち「コア資産」です。コア資産は、ドメインエンジニアリングで蓄積され、アプリケーションエンジニアリングで再利用されます。コア資産に含める対象には、コードのほか、設計書や手順書なども含まれます。
具体例

https://member.eureka-box.com/products/10/categories/2150178948/posts/2158350243
具体的な開発の流れを見てみましょう。アナログ・デジタルの両方式で表現できる液晶時計を作ることに決めたとします。
可変性分析で、液晶時計にはアナログとデジタルのバリエーションがあることを可視化します。
続いて、そのバリエーションを実現できるようにソフトウェアを設計・実装します。ここでコア資産を作り込みます。
作りこんだコア資産を再利用して、個別の製品開発を行います。ここでは、コア資産の中からデジタルに対応した開発資産を選択したとします。
その資産を取得し、組み立てたら、あとは製品固有の作りこみや調整をするだけで、デジタルの時計を完成させることができました。
SPL(再利用する開発手法)を実際に学んでみる
SPLの技術を実際に学んでみたいという方に、まずは無料でお試しいただけるオンライン学習をご提供しております。
業務が多忙なエンジニアでも、スキマ時間で効率的に実践的な学習が出来るEureka Boxは、エンジニアの現場の声から生まれたツールです。
ソフトウェア開発を改善するための開発技術を“知り・学び”“実践する”
超実践的オンライン学習プラットフォーム
Eureka Box(ユーリカボックス)
SPL(再利用する開発手法)を正しく理解した上で適用し、最大限の効果を得られるようスキルアップしたい方にもEureka Boxでの学習はお勧めで、無料会員登録だけでも以下の特典が受けられます。
- 各連載コラムの全容、未公開コラムも一気にまとめて読める(一部動画解説付!)
- USDM(要求記述)、MBD(モデルベース開発)、システムズエンジニアリング、AWS Greengrass(新世代エッジエンジニアのための技術講座)など、ソフトウェア開発に関わる知識がギュッと凝縮、困った時のお助けアイテムとしても長期で活用出来る
- ソフトウェア開発に関わる無料お試しコンテンツも充実
まとめ
"Software Product Line Engineering"=SPL開発とは、類似製品間の違いを把握して、違いを実現できる共通のソフトウェアを作り、再利用することです。
初期投資として、既存のソフトウェアを共通化することで、開発工数の削減、開発期間の短縮、製品品質の向上の効果が得られます。
SPL開発の中心となるのはコア資産であり、ドメインエンジニアリングで蓄積したコア資産をアプリケーションエンジニアリングで再利用する、という関係になります。
詳しい内容は順次ご紹介しますので、まずは全体像を捉えておいてください。