2010年1月30日土曜日

共通性と可変性,スコーピング

プロダクトラインはソフトウェア工学の集大成と位置づけられています.既存の技術をある観点で統合しています.そのため,プロダクトラインに特有の技術は実のところあまり多くありません.

今回説明する共通性(commonality)と可変性(variability)は,プロダクトラインを統合する観点であり,共通性・可変性分析と呼ばれる技術は,数少ないプロダクトライン特有の技術です.

前回のチュートリアルで,プロダクトラインの目的は大量個別生産であり,それを実現するために共通部分をプラットフォームにするという話をしました.したがって何が共通で何が変化しうるかを見極めることが,プロダクトラインの成功のために重要な鍵の一つとなるのは,自然のことでしょう.

たとえば Apple の iPod シリーズを考えてみましょう.iPod には iPod classic, iPod shuffle, iPod nano, iPod touch といった製品群があります.さらに iPhone や iPad も仲間に入るでしょう.

よくカタログ等で,次の表のように機能と製品の対応関係を表すことが一般的だと思います.


この表を製品マップ(product map)といいます.この製品マップでは,横に製品,縦に機能が並んでいます(縦横逆に書いてもかまいません).

プロダクトラインの世界では,機能という言葉ではなく,フィーチャー(feature)という言葉を用います.フィーチャーは「ソフトウェアシステム(群)の顕著または特有のユーザに見える観点,品質,または特性」で,おおむね機能だけでなく品質要求も含んだ概念だと思ってください.iPod の品質要求の例としては,音楽再生時間などが挙げられます.

このように製品とフィーチャーの観点から見たとき,あるフィーチャーが (1) 全ての製品に備わっている,もしくは同一の値を持っている場合(たとえばオーディオ)と,(2) 1つまたは一部の製品に備わっている,もしくは製品によって値が異なる場合(たとえばディスプレイ)があることがわかります.前者の場合そのフィーチャーは全製品で共通であり,後者の場合は可変であるといいます.フィーチャーが共通であるか可変であるかを識別することを共通性・可変性分析といいます.

共通性と可変性を表現する方法は製品マップだけではありません.最もメジャーなのはフィーチャーモデルでしょう.他にもさまざまなモデルが存在します.総称としては可変性モデルです.

プロダクトラインを作る際に,どのような製品を提供し,それぞれの製品でどのような機能を提供するかを決めることは非常に重要です.このようにプロダクトラインがカバーする範囲を決めることをスコーピング(scoping)といいます.スコーピングにはいくつか種類があり,ここで取り上げたのは製品ポートフォリオスコーピング(product portfolio scoping)といいます.

よくプロダクトラインは戦略的再利用だといわれることが多いのですが,スコーピングはまさにこの戦略の中核にあたります.スコーピングの成否がプロダクトラインの命運を分ける要因の一つになります.この重要性ゆえに,僕はこのあたりの研究に取り組むことにしたわけです.

だんだん本題に近くなってきました.また次回,お楽しみに.

つづく

参考文献
"Feature-Oriented Domain Analysis (FODA) Feasibility Study," 
Kyo C. Kang, Sholom G. Cohen, James A. Hess, William E. Novak, A. Spencer Peterson
Technical Report CMU/SEI-90-TR-21 ESD-90-TR-222, November 1990 

http://selab.postech.ac.kr/
150ページ以上にわたる超大作の論文です.第1著者の Kang 先生はプロダクトラインの世界の重鎮の1人ですが,その地位を確立したのがこの論文です.


iPod, iPhone, iPad およびその派生製品は Apple の登録商標です.