ソフトウェアプロダクトラインパターン

 ソフトウェアプロダクトライン(SPL: Software Product Line)とは,共通の特性を持ち,特定の市場やミッションのために,共通のコア資産から規定された方法で作られる,ソフトウェア中心システムの集合を指す[10][11].

 ここで,ソフトウェアプロダクトラインパターンを紹介する前に,簡単に用語を整理しておく[12].コア資産(core asset)とは,プロダクトラインの基盤を形成する成果物(artifact)のことを指す.コア資産は,複数の製品系列に対して適用可能なように,あらかじめ共通部分と可変部分を織り込んで構築される.可変ポイント(variation point)とは,コア資産において,特定の製品系列に固有な部分とすべての製品系列に共通な部分との分岐点を指す.バリアント(variant)とは,可変ポイントに対する選択肢を指す.共通可変分析(commonality and variability analysis)とは,特定の製品系列の固有部分とすべての製品系列に共通の部分を分析し決定することを指す.

 また,フィーチャー(feature)とは,ソフトウェアシステムにおける,突出したまたは他と明確に区別でき目に見える側面,品質,特徴のことを指す[13].この定義は,The American Heritage Dictionaryからの引用である.補足すると,フィーチャーとは,プロダクトが提供するサービス,操作性や性能などの非機能要求などのそのプロダクトの代表的な特性のことである.フィーチャーモデリング(feature modeling)とは,プロダクトライン型開発において,ドメインの共通/可変部分を抽出するための代表的な手法を指す[14]. フィーチャーモデリングと他のさまざまなモデリング技術を融合させ,プロダクトラインの構築,運用,進化への研究が取り組まれている.フィーチャーマトリクス(feature matrix)とは,フィーチャーとコア資産の要素との対応関係をトレースしやすくするための情報をマトリクス形式で記述した仕様のことを指す.

 ここでは,プロダクトライン開発に特化した5つのパターンを紹介する.

パターン 2.1

プロダクトラインに移行すべきかを判断しよう
Launch Product Line

開発プロセスをプロダクトラインに移行すべきかどうかを,製品ライフサイクルに基づいて判断することで,投資対効果を高める.

問題

解法

トレードオフ

-利点

-欠点

関連するパターン

 コア資産に移行する場合には,コア資産は今すぐリファクタリングしよう (パターン6.1) が利用できる.

パターン 2.2

コア資産を浄化しよう
Detox Core Assets

肥大化したコア資産をスリムにして価値を高める.

問題

解法

トレードオフ

-利点

-欠点

関連するパターン

 コア資産の品質が不適切な場合には,コア資産を浄化しても効果が得られないケースがあるので,「石ころ」に投資してはいけない (パターン2.3)を参照のこと.

パターン 2.3

「石ころ」に投資してはいけない
Don’t Invest in Stone

既存のコア資産の中から投資リスクが高いものを除外する.

問題

解法

トレードオフ

-利点

-欠点

関連するパターン

 SPLコア資産パターン全般を適用する前に,本パターンの適用を検討すべきである.

パターン 2.4

レガシーの現状を分析しよう
Analyze Legacy Software Assets

長期に渡って改造を繰り返してきたレガシーソフトウェア資産を再生し高品質なコア資産を構築したい.

問題

解法

パターン集のトップへ戻る ページのトップへ戻る