ソフトウェアプロダクトライン開発(そふとうぇあぷろだくとらいんかいはつ)情報システム用語事典

software product line development / ソフトウェア製品系列開発

» 2009年10月27日 00時00分 公開

 同種同系列のソフトウェア製品を効率的に生産するために、共用・再利用のためのソフトウェア資産を整備し、これに基づいて個別プロダクトを作り出すスタイルの開発アプローチのこと。

 ソフトウェアプロダクトライン開発はソフトウェアの製品系列を量産するために行われる、組織的かつ体系的なソフトウェア再利用の活動である。ソフトウェア資産の再利用は古くから広く行われてきたが、場当たり的な流用はソフトウェア生産性向上にそれほど寄与しないばかりか、管理されないバリエーションや重複の増大、コードの複雑化、アーキテクチャの不整合などの問題を生む。

 プロダクトライン開発では、プロダクトラインを形成するプロダクト群で共通に利用する範囲を明確に定義したうえでコア資産を構築し、これを再利用基盤として個別プロダクトを生産する。論者や方法論によって異同はあるが、再利用資産を構築するプロセスをドメインエンジニアリング、そこから個別プロダクトを作るプロセスをアプリケーションエンジニアリングという。

 ドメインエンジニアリングではすべてのプロダクトに共通する部分とプロダクトごとに変化し得る部分を区別して、要求定義・仕様決定・実装を行う。ここで作られるコア資産は、プログラムコードだけではなく、要求や設計、モデルなど、目的に応じて多様な内容・形態で保持・管理される。また、コア資産の背景にあるアーキテクチャは、想定されるすべてのプロダクトに共通して利用できる汎用性のあるものとして定義されなければならない。さらにコア資産の内容は市場・顧客のニーズや要求の変化に応じて、リファクタリングし続けることも大切である。

 一方、アプリケーションエンジニアリングでは具体的な要求に基づいて、プロダクトの開発を行う。このとき、基本的な仕様はドメインエンジニアリングの成果物であるコア資産で決まっており、要求定義も事前に想定された項目・属性について行うだけで、プロダクト(要求仕様、設計仕様、プログラム)を得ることが期待できる。

 このように事前にコア資産を整備しておくことで、個別プロダクトの派生モデルを効率的に生産するのがプロダクトライン開発である。

 プロダクトライン開発はドメイン分析ソフトウェア工場などを前身として、1990年代から研究・適用が始まった。当初は組み込み系ソフトウェアなどのエンジニアリング分野で活用される例が多かったが、エンタープライズ系ソフトウェアでの利用も報告されるようになっている。

参考文献

▼『ジェネレーティブ プログラミング』 クシシュトフ・チャルネッキ、ウールリシュ・W・アイセンアッカー=著/津田義史、今関剛、朝比奈勲=訳/翔泳社/2008年4月(『Generative Programming: Methods, Tools, and Applications』の邦訳)

▼『ソフトウェアプロダクトライン――ユビキタスネットワーク時代のソフトウェアビジネス戦略と実践』 ポール・C・クレメンツ、リンダ・M・ノースロップ=著/前田卓雄=訳/日刊工業新聞社/2003年9月(『Software Product Lines: Practice and Patterns』の邦訳)

▼『ソフトウェアプロダクトラインエンジニアリング――ソフトウェア製品系列開発の基礎と概念から技法まで』 クラウス・ポール、ギュンター・ベックレ、フランク・ヴァン・デル・リンデン=著/林好一、吉村健太郎、今関剛=訳/エスアイビー・アクセス/2009年1月(『Software Product Line Engineering: Foundations, Principles, and Techniques』の邦訳)


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ