第4回 SPL開発の適用に向く製品、向かない製品
【第4回 SPL(SPL開発の適用)解説 コラム】
SPL開発を適用するにあたり、どのような製品がSPL開発に向いていて、どのような製品が向いていないのでしょうか。また、ソフトウェア開発やシステム開発に、SPL開発をどう適用すればよいのでしょうか。このコラムで分かりやすく簡単にご紹介します。
目次
SPL開発の適用に向かない製品
https://member.eureka-box.com/products/10/categories/2150178948/posts/2158350243
まずは、SPL開発の適用に向かない製品の特徴を見てみましょう。SPL開発の中心は、製品群の共通資産となるコア資産でした。このコア資産が有効に再利用できない製品は、SPL開発には向きません。
例えば、対象とする製品が極端に少なく、製品群のスコープが狭すぎる場合です。再利用による恩恵を得る機会が少なく、共通資産を作る手間ばかりかかるためです。
スコープが広すぎても問題があります。製品群に含む製品を増やしすぎて、全体の共通部分が少なくなってしまうと、再利用による効率化が見込めません。
現在の開発資産を分析すると共通部分が多いように見えたとしても、必ずしもSPL開発の適用に向くとは限りません。例えば、製品間のビジネスの差異が大きい場合には、将来的に製品群に登録されてくる製品が大きく変化し、共通部分が減っていく可能性があります。
また、技術の進歩が早い製品群に対しても、近い将来共通部分が使えなくなるため向いているとは言えません。
SPL開発の適用に向く製品
https://member.eureka-box.com/products/10/categories/2150178948/posts/2158350243
ではどのような製品がSPL開発の適用に向いているのでしょうか。シンプルに考えると、先に述べたSPL開発に向かない製品の特徴の逆であれば、SPL開発の適用に向くという期待が持てます。
例えば製品群の仕向けの数が多いような場合、製品の類似性が高ければコア資産の範囲を大きくできる期待が持てます。
仕向けが多くても仕向け毎の違いが大きくては、コア資産を有効に再利用できません。そのため、仕向け毎の違いがある程度小さいことも求められます。
そして将来を見越して、製品に搭載される機能の大枠が統一されていることも重要です。ニッチな機能が少なく、機能間の差異があまり大きくなければ、無理なくコア資産を管理していけます。
最後に、あまりに先進的すぎる製品ではないことも重要です。技術革新が起きにくく、比較的製品の進化が安定しているほうが、SPL開発の適用に向きます。
ソフトウェア開発の全体像
https://member.eureka-box.com/products/10/categories/2150178948/posts/2158350243
それでは次に、SPL開発をソフトウェア開発にどう適用するかを見てみましょう。図に示すのはソフトウェア開発のV字モデルです。V字モデルにのっとった開発においては、これらの工程を通じてさまざまな成果物を作成していきます。
Eureka Boxは厚生労働省が実施している助成金、人材開発支援助成金の適用対象となります。
無計画な再利用
https://member.eureka-box.com/products/10/categories/2150178948/posts/2158350243
さて、これらの成果物を無計画に再利用するとどうなるか考えてみましょう。
無計画な再利用では、新規開発の際に、過去の成果物であるドキュメントやモデル、コードを「コピー&ペーストして、以降の開発で変更していく」ことが行われます。
そうすると、目先の作業は早く終わるかもしれませんが、類似製品間で共通するバグや変更が発生した際に、コピーしたすべての成果物に重複箇所が及ぶため、影響範囲の特定と対応が困難となり、結果として多くの工数が割かれることになってしまいます。
SPL開発における再利用:コードの例
https://member.eureka-box.com/products/10/categories/2150178948/posts/2158350243
これに対して、SPL開発でコードを管理する場合の姿を見てみましょう。ここでは例としてコードの場合を取り上げますが、他の成果物でも基本は同じです。
SPL開発における新規開発では、コア資産に登録されたコードの中から、自身に要求された機能と合致した機能を実装している箇所を特定し、その箇所を自身のコードに「組み込む」という方法を取ります。「組み込む」には、様々な方法があります。場合によってはコピー&ペーストで組み込むこともありますが、組み込んだ資産は「変更しない」という制約が課される点がポイントとなります。この制約によって、バグなどが原因の変更が必要となっても、影響箇所がコア資産のコードだけで済むようになります。
システム開発の全体像
https://member.eureka-box.com/products/10/categories/2150178948/posts/2158350243
そしてシステム開発でも同様のことが言えます。
システム領域の設計・テストで作成されるさまざまな成果物についても、コア資産に登録された機能を組み込み、「変更しない」という制約のもとに使用することで、その後の変更の影響箇所をコア資産の部分に限定することができます。
これからのSPL開発に求められる技術を知るには
SPL(Software Product Line Engineering)の技術を実際に学んでみたいという方に、まずは無料でお試しいただけるオンライン学習プラットフォームを準備しています。
業務が多忙なエンジニアでも、スキマ時間で効率的に実践的な学習が出来るEureka Boxは、エンジニアの現場の声から生まれたツールです。
エンジニアの独学・スキルアップに! 他では学べない技術が充実
上流工程ソフトウェア開発技術を学ぶ!
Eureka Box(ユーリカボックス)
SPLを正しく理解した上で、最大限の効果を得られるようスキルアップしたい方にもEureka Boxでの学習はお勧めで、無料会員登録だけでも以下の特典が受けられます。
- 各連載コラムの全容、未公開コラムも一気にまとめて読める(一部動画解説付!)
- USDM(要求記述)、MBD(モデルベース開発)、システムズエンジニアリング、AWS Greengrass(新世代エッジエンジニアのための技術講座)など、ソフトウェア開発に関わる知識がギュッと凝縮、困った時のお助けアイテムとしても長期で活用出来る
- ソフトウェア開発に関わる無料お試しコンテンツも充実
まとめ
https://member.eureka-box.com/products/10/categories/2150178948/posts/2158350243
SPL開発に向いている製品は、
- 仕向けの数が多い
- 仕向け毎の違いが少ない
- 製品毎の機能の差異が少ない
- 技術革新が起きにくい
という特徴を持つ製品です。
SPL開発では、ソフトウェア開発でもシステム開発でも、さらにはどの成果物でも、コピー&ペーストして無計画に再利用するのではなく、「コア資産を変更せずに組み込む」という再利用方法を取ります。これにより、のちの変更の影響箇所をコア資産に限定することができます。
デジタル人材が不足している今の時代、特にソフトウェア開発の現場では「上流技術」のスキルを持つ人が必要とされています。
そのスキルが効率よく身につくように設計されたのが「オンライン学習のEureka Box(ユーリカボックス)」
Eureka Boxの運営企業であるエクスモーションは、日本を代表する大手自動車メーカー、医療機器メーカー等、ソフトウェア開発の支援を実際に行っている企業だからこそ、現場で活かせる学びに焦点をあてたプログラムに構成されています。
「Eureka Box(ユーリカボックス)」を是非ご活用ください。