软件配置管理(Software Configuration Management,简称:SCM),又称软件形态管理、或软件建构管理,简称软件形管。界定软件的组成项目,对每个项目变更进行管控(版本控制),并维护不同项目之间的版本关系,以使软件在开发过程中任一时间的内容都可以被追溯,包括某几个具有重要意义的数个组合,例如某一次交付给客户的软件内容。
SCM的目标一般包括以下几项:
配置识别:识别配置、配置项目和基准。
随着云计算的引进,SCM工具的用途有时已互相集成。SCM工具本身转变为虚拟设施,可以在虚拟机上运行并保存状态和版本。这些工具能管理并为云端虚拟资源(包括虚拟设备、存储设备和软件包)创建模型。如今,因为现在已经可以动态的激活虚拟服务器和相关资源,SCM管理人员的角色和职责已经与开发人员合并。
软件配置管理(SCM)在运算领域的应用可以追溯至1950年代。当时,原先用于硬件开发和生产控制的CM(配置管理)概念,转而应用于软件开发。早期的软件都有实体,如卡片、磁带和其他介质。第一个软件配置管理需经由人为操作。随着编程语言及其复杂性不断进展,涉及配置管理和其他方法的软件工程由于时程、预算和质量等因素而成为主要隐忧。多年来的实践经验,为软件开发流程和工具提供定义并奠定基础。而这些工具最终成为管理软件变更的系统。业界普遍的做法,即是采用开放或专有方式(如修订控制系统)来作为解决方案。随着电脑的使用越来越普及,可处理大型任务范畴的系统也因应而生,包括需求管理、设计替代方案、质量控管等。随后,工具均遵循企业组织的守则,如软件工程学院创建的能力成熟度模型。