【研究室】ソフトウェアプロダクトライン開発(SPL)は可変性の分析・モデル化でコア資産を再利用

【研究室】ソフトウェアプロダクトライン開発(SPL)は可変性の分析・モデル化でコア資産を再利用

【研究室】ソフトウェアプロダクトライン開発(SPL)は可変性の分析・モデル化でコア資産を再利用

ソフトウェアプロダクトライン開発(SPL)においては、「アーキテクチャ」を中心とした技術的観点からソフトウェアの再利用の可能性を考慮してPLスコープを決定することが重要|可変性の分析
PL開発におけるコア資産のメンテナンス性は、可変性を如何にうまく捉えるかによって大きく変わります。なぜなら、開発する資産がスコープに含まれる製品に対して柔軟に対応できるためには、それらの製品間の差異、すなわち可変性を考慮した設計・実装を行う必要があるため、その入力として可変性が適切に分析されている必要があるからです。ゆえにPL開発では、対象とする製品群に存在する可変性を特定・管理することが極めて重要なのです。通常はPLスコープを決定した後に、以下の順序で可変性の分析を行います。
1.  可変性の特定
2.  可変パターンの分析(モデル化)
以下では、個々の手順について概要を説明します。

SPL「プロダクトライン開発」は可変性の分析・モデル化でコア資産を再利用 | フィーチャマトリクス

可変性、すなわちPLスコープに含まれる製品間の差異を特定するには、製品マップ(製品-フィーチャマトリクスとも呼ばれる)を利用すると効果的です。これは下図のような2次元の表で、片側の軸に製品を列挙し、反対側の軸に製品間の差異を生み出す要因を列挙します。ここで差異を生み出す要因とは、単に機能だけでなく、非機能要件やハードウェア構成、利用する実装技術や設計制約等、様々なものを指します。そして、両軸の交差点に、対象の製品がその項目に対応しているかどうかを記入します。単に○×の場合もあれば、値や方式などを記入しても構いません。ここでの目的は、どのような違いが製品間に存在するかを特定することにあります。
SPL「プロダクトライン開発」は可変性の分析・モデル化でコア資産を再利用

「プロダクトライン開発」は可変性の分析・モデル化でコア資産を再利用

可変性が特定できたら、それらがどのように変化しうるのか、また可変性間の関係(依存/相互依存/排他関係)があるのかを分析し、モデル化します。可変性のモデル化技法にも幾つかの種類がありますが、ここでは最も代表的なフィーチャモデルについて紹介します。
フィーチャモデルは、製品を特徴づける要素(=フィーチャ)間の関係を、ツリー上のダイアグラムを用いてモデル化するための記法です。FODA(Feature-Oriented Domain Analysis)手法に端を発し、現在ではSPLの可変性モデルの代名詞となっていると言ってもよいでしょう。フィーチャモデルには様々な拡張記法がありますが、UMLのように統一されているわけではないので、使用する際には注意が必要です。
以下に、液晶置時計PLのフィーチャモデルの例を示します。このPLのスコープに含まれる製品には、以下の可変性があるとします。
  • 表示はアナログ/デジタルの2種類で、製品で固定(切替は不可)。
  • アラーム機能のある製品とない製品がある。
  • アナログ表示では、秒針のある製品とない製品がある。
  • アラーム機能を持つアナログ表示製品には、アラーム針がある。
  • デジタル表示では、12時間/24時間の2種類があり、製品で固定(切替は不可)。
  • アラーム機能がある場合、少なくとも電子音/メロディ音のどちらかのアラーム音を出力する。
この時、この液晶置時計PLのフィーチャモデルは以下のようになります(図の左側)。ツリー上のノードに当たる部分がフィーチャで、これは前述の製品マップに記載された「差異を生み出す要因」と対応させることができます。つまり、製品マップを使って可変性を特定した後、それぞれの可変性の間の関係を調べていくことで、フィーチャモデルを作成することができます。
「プロダクトライン開発」は可変性の分析・モデル化でコア資産を再利用 | フィーチャモデル
このフィーチャモデルには、オプションや代替といった可変性がモデル化されていますが、個々の製品仕様に合わせて各可変性を「決定」すると、図の右側のような、当該製品で必要なフィーチャのみが残ったツリーになります。このように、可変性を決定して製品固有のフィーチャツリーを作り出すことを、「導出(Derivation)」と言います。
「プロダクトライン開発」は可変性の分析・モデル化でコア資産を再利用 | フィーチャモデル
このようにして可変性を特定・管理することで、これらの可変性を考慮した柔軟性と再利用性の高いソフトウェアの設計・実装ができるようになります。加えて、可変性の決定に基づいてコア資産から製品用資産を導出することで、高い品質を維持したまま効率よくコア資産を再利用することができます。

【研究室】SPL(ソフトウェアプロダクトライン)は可変性の分析・モデル化でコア資産を再利用|pagetop