コードの再利用
チームが自分達で作ったコンポーネントを再利用する。あくまでも日和見的再利用であって、計画的ではないので、インタフェースの調整などに工数を取られる可能性がある。
あるプログラムの以前のバージョンを出発点として、次のバージョンを開発する作業も、一種のコードの再利用である。
コードの再利用の一形態として、既存のプログラムからコードを一部または全部抜き出して新しいプログラムにコピーすることがある。企業は素早く開発するためにこの手法を使うことがあるが、このようなコピー・アンド・ペーストによるプログラミングを多用すると、後で重複コード問題に悩まされることになる。
再利用を素早く容易に、プログラミングの正常なプロセスの一部として、より体系的に行えるようにする研究が多くの研究者によって行われてきた。オブジェクト指向プログラミングもそのような目的で生み出されたもので、定式化された再利用手法として一般化した。同様な目的で後に開発されたものとしてジェネリックプログラミングがある。
さらに新しい手段として自動プログラミングがある。これはプログラムがユーザーが設定した一連のパラメータに基づいてある種のプログラムを生成するものである。類似の概念にメタプログラミングもある。
派生開発を整理し、コア資産を作成する開発手法。コア資産が、再利用可能なソフトウェア資産である。
コア資産から製品群が導出可能であることをバリアビリティと呼ぶ。
バリアビリティを表現する最も一般的な方法はフィーチャモデリングであり、フィーチャモデルはプロダクトラインエンジニアリングの重要な特徴である。