软件配置管理(Software Configuration Management,简称:SCM),又称软件形态管理、或软件建构管理,简称软件形管。界定软件的组成项目,对每个项目变更进行管控(版本控制),并维护不同项目之间的版本关系,以使软件在开发过程中任一时间的内容都可以被追溯,包括某几个具有重要意义的数个组合,例如某一次交付给客户的软件内容。
SCM的简称已经扩展为“源代码配置管理”(source configuration management)以及“软件修改及配置管理”
(software change and configuration management)[1]。不过,“配置”一词一般还是会指系统管理员才能进行的变更。
SCM的目标一般包括以下几项:
- 配置识别:识别配置、配置项目和基准。
- 配置控管:导入变更控管流程。该流程通常由变更控制委员会来执行,其主要的职责是核准或拒绝有悖任何基准的所有变更请求。
- 配置状态报告:记录和呈报与开发过程状态相关的所有必要信息。
- 配置审核:确保这些配置包含所有预期内容,且备有完整的规定文件(包括要求、结构规范和用户手册)。
- 建构管理:管理用于建构的流程和工具。
- 流程管理:确保遵循企业组织的开发流程。
- 环境管理:管理承载系统的软硬件。
- 团队合作:促进流程中团队彼此间的交互。
- 缺陷追踪:确保可溯及每个缺陷的源头。
随着云计算的引进,SCM工具的用途有时已互相集成。SCM工具本身转变为虚拟设施,可以在虚拟机上执行并保存状态和版本。这些工具能管理并为云端虚拟资源(包括虚拟设备、存储设备和软件包)建立模型。如今,因为现在已经可以动态的激活虚拟服务器和相关资源,SCM管理人员的角色和职责已经与开发人员合并[2]。
软件配置管理(SCM)在运算领域的应用可以追溯至1950年代。当时,原先用于硬件开发和生产控制的CM(配置管理)概念,转而应用于软件开发。早期的软件都有实体,如打孔卡、打孔带、磁带和其他介质。第一个软件配置管理需经由人为操作。随着编程语言及其复杂性不断进展,涉及配置管理和其他方法的软件工程由于时程、预算和质量等因素而成为主要隐忧。多年来的实践经验,为软件开发流程和工具提供定义并奠定基础。而这些工具最终成为管理软件变更的系统[3]。业界普遍的做法,即是采用开放或专有方式(如修订控制系统)来作为解决方案。随着电脑的使用越来越普及,可处理大型任务范畴的系统也因应而生,包括需求管理、设计替代方案、质量控管等。随后,工具均遵循企业组织的守则,如软件工程学院建立的能力成熟度模型(CMM)。
Gartner and Forrester Research
"1988 "A Guide to Understanding Configuration Management in Trusted Systems" National Computer Security System (via Google (页面存档备份,存于互联网档案馆))
- 828-2012 IEEE Standard for Configuration Management in Systems and Software Engineering. 2012. ISBN 978-0-7381-7232-3. doi:10.1109/IEEESTD.2012.6170935.
- Aiello, R. (2010). Configuration Management Best Practices: Practical Methods that Work in the Real World (1st ed.). Addison-Wesley. ISBN 0-321-68586-5.
- Babich, W.A. (1986). Software Configuration Management, Coordination for Team Productivity. 1st edition. Boston: Addison-Wesley
- Berczuk, Appleton; (2003). Software Configuration Management Patterns: Effective TeamWork, Practical Integration (1st ed.). Addison-Wesley. ISBN 0-201-74117-2.
- Bersoff, E.H. (1997). Elements of Software Configuration Management. IEEE Computer Society Press, Los Alamitos, CA, 1-32
- Dennis, A., Wixom, B.H. & Tegarden, D. (2002). System Analysis & Design: An Object-Oriented Approach with UML. Hoboken, New York: John Wiley & Sons, Inc.
- Department of Defense, USA (2001). Military Handbook: Configuration management guidance (rev. A) (MIL-HDBK-61A). Retrieved January 5, 2010, from http://www.everyspec.com/MIL-HDBK/MIL-HDBK-0001-0099/MIL-HDBK-61_11531/ (页面存档备份,存于互联网档案馆)
- Futrell, R.T. et al. (2002). Quality Software Project Management. 1st edition. Prentice-Hall.
- International Organization for Standardization (2003). ISO 10007: Quality management systems – Guidelines for configuration management.
- Saeki M. (2003). Embedding Metrics into Information Systems Development Methods: An Application of Method Engineering Technique. CAiSE 2003, 374–389.
- Scott, J.A. & Nisse, D. (2001). Software configuration management. In: Guide to Software Engineering Body of Knowledge. Retrieved January 5, 2010, from http://www.computer.org/portal/web/swebok/htmlformat (页面存档备份,存于互联网档案馆)
- Paul M. Duvall, Steve Matyas, and Andrew Glover (2007). Continuous Integration: Improving Software Quality and Reducing Risk. (1st ed.). Addison-Wesley Professional. ISBN 0-321-33638-0.