組込みシステムの開発のほとんどは派生製品開発の連続となっている。このような派生製品を効率的に開発する方法論としてプロダクトライン開発と派生開発が知られている。プロダクトライン開発は,製品間の共通性と相違性を分析し,相違性を吸収する機構を備えたソフトウェアアーキテクチャを定義し,そのアーキテクチャで用いられるコンポーネントをコア資産として開発,再利用する計画駆動の開発手法である。プロダクトライン開発は軌道に乗れば品質,コスト,納期の大きな改善が期待できる反面,その立ち上げにはコストが嵩みがちである。それに対して,派生開発は,既存製品に対する追加/変更要求の実現に寄与する部分の追加/変更設計および実装を行う変更駆動の開発手法である。派生開発は度重なる追加/変更による複雑さの増大やアーキテクチャの崩壊に対応できる技術ではないが,導入障壁は小さく,我が国産業界での導入事例も多く報告されている。
そこで本研究では,導入障壁の小さい派生開発で派生製品の開発を続け,その過程において既存ソフトウェア資産の理解とアーキテクチャの定義,コア資産の開発を継続し,プロダクトライン開発の部分的適用の段階を経て,最終的には全体的適用の段階に移行するプロセスを提唱した。その移行の段階では,派生開発とプロダクトライン開発の異なるパラダイムが併走する中,ソフトウェア資産の管理を行う必要がある。そのためのコア資産管理手法も提唱した。
派生開発,プロダクトライン開発に限らず,一般のソフトウェア開発は不確実性がある中での意思決定の連続である。本研究では,ソフトウェア開発における不確実性を脅威ととらえ,その影響と対策を開発の初期段階で計画する不確実性フレームワークを提唱した。派生開発からプロダクトライン開発への移行もまた不確実性の中での意思決定活動であり,同フレームワークを移行管理に適用する方法論もあわせて提唱した。
|