(前NTTデータ フェロー システム科学研究所長)山本 修一郎
複数のソフトウェアプロダクトで共通に利用できる機能を、予め資産化して再利用する技術にソフトウェアプロダクトラインがある。
今回は、ClementsとNorthrop[1]に基づいて、ソフトウェアプロダクトラインにおける要求工学について紹介する。
ソフトウェアプロダクトライン
特有の市場領域もしくはミッションについての指定されたニーズを満足するように、コア資産として事前に開発された共通管理機能集合(Common Managed Features)を共有するソフトウェアシステムの集合が、ソフトウェアプロダクトライン(Software Product Line, SPL)である(図1)。
図1 ソフトウェアプロダクトライン
従来の再利用とソフトウェアプロダクトライン
従来からソフトウェアの再利用については検討されていた。筆者が最初に書いた国際会議論文[2]は、再利用のためのソフトウェア設計支援システムについてのものだった。その前年の1985年に電電公社が民営化された際に、真藤社長から「ソフトウェアも造船のようにモジュール化すべきだ」という指示があって、ソフトウェア再利用の研究に着手することなったことを思い出す。その頃の研究所ではとなりの研究室で、部品管理システムを開発していて、小規模ソフトウェア部品の登録を推奨していた。
従来のソフトウェア再利用技術には、表1に示すように、小規模再利用部品、再利用開発、部品による開発、再構成アーキテクチャ、システム更改、標準化などがある。
小規模部品による再利用では、再利用が偶発的で再利用の効果が低いという問題がある。これに対して、ソフトウェアプロダクトラインでは、再利用が計画的であり、複数システムでの再利用を前提に資産を開発するので、効果が高い。
類似資産を流用して、特定のシステムを開発した場合、システム開発を効率化できる。しかし、開発したシステムの保守が個別化するという問題がある。これに対して、ソフトウェアプロダクトラインでは、再利用のためにコア資産を開発するとともに、コア資産に基づいて開発されたプロダクト群の全体を統合的に管理できる。
部品に基づく開発では、部品が組み込まれるソフトウェアのアーキテクチャや製造計画は前提ではない。また部品の亜種を、個別的に管理することになるので、再利用の管理的側面が欠落しているという問題がある。これに対して、ソフトウェアプロダクトラインでは、プロダクトラインアーキテクチャを前提に、変動機構を持つ部品を構築・結合するだけでなく、変動する汎用部品を資産ベースで保守するなど、再利用の管理的側面を重視している。
再構成アーキテクチャでは、複数システムでの再利用を前提に参照アーキテクチャを開発しておき、必要に応じて再構成するため、参照アーキテクチャから具体化された複数の異なるアーキテクチャ実体を維持管理することになる。これに対して、ソフトウェアプロダクトラインでは、プロダクトラインアーキテクチャは、プロダクトごとに必要な変動を支援する単一資産としての共通アーキテクチャをひとつだけ管理する。
システム更改では、現行のアーキテクチャ、コンポーネントに基づいて、プロダクトの新版を開発するので、再利用の一種である。しかし、システム更改では、新版が開放されると、旧版は維持管理の対象外になってしまう。これに対して、ソフトウェアプロダクトラインでは、同時に複数のプロダクトが共存でき、先行プロダクトも価値ある要素として維持管理される。
ソフトウェアプロダクトの標準化では、アーキテクチャ設計が技術標準に従っていることを監査するとともに、相互運用性の推進や、保守経費を低減するために、個々のアーキテクチャが満たすべき制約を提示している。これに対して、ソフトウェアプロダクトラインでは、特定のアーキテクチャに対する制約ではなく、ソフトウェアプロダクトラインが全体で準拠すべき標準を提示している。
表1 従来の再利用とソフトウェアプロダクトラインの比較(クリックで拡大)
プロダクトライン開発活動
プロダクトラインの開発では、コア資産開発、プロダクト開発、管理という3種類の活動がある(表2)。
アプリケーション開発で再利用される資産を開発する活動がコア資産開発である。プロダクトラインの基礎となる資産がコア資産である。コア資産には、要求、アーキテクチャ、再利用コンポーネント、ドメインモデル、予算計画、テスト計画、テスト項目、作業計画、プロセス定義などが含まれる。
アプリケーション開発資産からコア資産を作成することもある。コア資産開発はドメイン開発と呼ばれることもある。
コア資産を用いてアプリケーションを開発する活動がプロダクト開発である。コア資産へ再利用資産を提供することもある。プロダクト開発は、アプリケーション開発と呼ばれることもある。
ソフトウェアプロダクトラインの管理活動には、技術管理と組織管理がある。技術管理では、コア資産とプロダクトの開発を管理する。組織管理では、ソフトウェアプロダクトライン運営の全体を管理する。
表2プロダクトライン開発活動(クリックで拡大)
続きは本誌でご覧頂けます。→本誌を購入する
ご購入のお申込みは電話(03-3507-0560)でも承っております。
- 60:要求とアーキテクチャ
- 61:要求と保守・運用
- 62:オープンソースソフトウェアと要求
- 63:要求工学のオープンな演習の試み
- 64:Web2.0と要求管理
- 65:ソフト製品開発の要求コミュニケーション
- 66:フィードバック型V字モデル
- 67:日本の要求定義の現状と要求工学への期待
- 68:活動理論と要求
- 69:ビジネスゴールと要求
- 緊急:今、なぜ第三者検証が必要か
- 71:BABOK2.0の知識構成
- 72:比較要求モデル論
- 73:第18回要求工学国際会議
- 74:クラウド時代の要求
- 75:運用要求定義
- 76:非機能要求とアーキテクチャ
- 77:バランス・スコアカードの本質
- 78:ゴール指向で考える競争戦略ストーリー
- 79:要求変化
- 80:物語指向要求記述
- 81:要求テンプレート
- 82:移行要求
- 83:要求抽出コミュニケーション
- 84:要求の構造化
- 85:アーキテクチャ設計のための要求定義
- 86:BABOKとREBOK
- 87:要求文の曖昧さの摘出法
- 88:システムとソフトウェアの保証ケースの動向
- 89:保証ケースのためのリスク分析手法
- 90:サービス保証ケース手法
- 91:保証ケースのレビュ手法
- 92:要求工学手法の再利用
- 93:SysML要求図をGSNと比較する
- 94:保証ケース作成上の落とし穴
- 95:ISO 26262に基づく安全性ケースの適用事例
- 96:大規模複雑なITシステムの要求
- 97:要求の創造
- 98:アーキテクチャと要求
- 99:保証ケース議論分解パターン
- 100:保証ケースの議論分解パターン[応用編]
- 101:要求発展型開発プロセスの事例
- 102:参照モデルに対する保証ケース
- 103:参SEMATの概要
- 104:参SEMATの活用
- 105:SEMATと保証ケース
- 106:Assure 2013の概要
- 107:要求の完全性
- 108:要求に基づくテストの十分性
- 109:システムの安全検証知識体系
- 110:機能要求の分類
- 111:IREB
- 112:IREB要求の抽出・確認・管理
- 113:IREB要求の文書化
- 114:安全要求の分析
- 115:Archimate 2.0のゴール指向要求
- 116:ゴール指向要求モデルの保証手法
- 117:要求テンプレートに基づく要求の作成手法
- 118:ビジネスゴールのテンプレート
- 119:持続可能性要求
- 120:操作性要求
- 121:安全性証跡の追跡性
- 122:要求仕様の保証性
- 123:システミグラムとドメインクラス図
- 124:機能的操作特性
- 125:セキュリティ要求管理
- 126:ソフトウェアプロダクトライン要求
- 127:システミグラムと安全分析
- 128:ITモダナイゼーションとITイノベーションにおける要求合意
- 129:ビジネスモデルに基づく要求
- 130:ビジネスゴール構造化記法
- 131:保証ケース導入上の課題
- 132:要求のまとめ方
- 133:要求整理学
- 134:要求分析手法の適切性
- 135:CROS法の適用例
- 136:保証ケース作成支援ツールの概要