ソフトウェア構成管理

ソフトウェア構成管理（ソフトウェアこうせいかんり、、SCM）は、ソフトウェア開発プロジェクトをその成果物を通して制御・管理する方法論である。ソースコードや文書などの成果物の変更履歴を管理し、製品のバージョンやリビジョンに個々の成果物のどのバージョンが対応しているかを識別し、任意のバージョンの製品を再現可能とする。
バージョン管理システムは SCM のためのツールであるが、バージョン管理システムそのものを SCM と呼ぶこともある。しかし、一般にソフトウェア構成管理はバージョン管理とは等価ではなく、バージョン管理を制御するマネジメント的要素が含まれる。
歴史.
当初、ソフトウェア構成管理(SCM)は単に "CM"（構成管理）と呼ばれており、本来はハードウェア開発と製造制御のためのものだった。以下では主にSCMツールの登場を時系列に並べる。
用語.
SCMを意味する用語は非常に様々でシステムによって異なる。また、論争の種にもなっている。
研究者だけでなく、ツールベンダーも顧客の囲い込みを狙って、故意に他と異なる用語を使ったり、頭字語の意味を違う言葉の略であるとしたりする。
国際規格では、ISO/IEC TR 15846:1998 Information technology -- Software life cycle processes -- Configuration Managementが標準技術文書(technical report)として1998年に発行している。しかし試用のち、2007年に廃止している。軍関連のソフトウェア開発部門での利用はあったが、他の分野では詳細すぎて仕立て(tailoring)の出発点としては重すぎるとの背景があった。
目的.
SCMの一般的な目的は次の通り:
構成管理ツール.
構成管理ツールの動作には「PUSH型」と「PULL型」がある。以下その違いを説明する。