软件配置管理

软件配置管理（Software Configuration Management，简称：SCM），又称软体形态管理、或软体建构管理，简称软体形管。界定软体的组成项目，对每个项目变更进行管控（版本控制），并维护不同项目之间的版本关联，以使软体在开发过程中任一时间的内容都可以被追溯，包括某几个具有重要意义的数个组合，例如某一次交付给客户的软体内容。
SCM的简称已经扩展为「原始码配置管理」（source configuration management）以及「软体修改及配置管理」 
（software change and configuration management）。不过，「配置」一词一般还是会指系统管理员才能进行的变更。

**目的**
SCM的目标一般包括以下几项：- 配置识别：识别配置、配置项目和基准。- 配置控管：导入变更控管流程。该流程通常由变更控制委员会来执行，其主要的职责是核准或拒绝有悖任何基准的所有变更请求。- 配置状态报告：记录和呈报与开发过程状态相关的所有必要资讯。- 配置稽核：确保这些配置包含所有预期内容，且备有完整的规定文件（包括要求、结构规范和使用者手册）。- 建构管理：管理用于建构的流程和工具。- 流程管理：确保遵循企业组织的开发流程。- 环境管理：管理承载系统的软硬体。- 团队合作：促进流程中团队彼此间的互动。- 缺陷追踪：确保可溯及每个缺陷的源头。
随着云端运算的引进，SCM工具的用途有时已互相整合。SCM工具本身转变为虚拟设施，可以在虚拟机上执行并保存状态和版本。这些工具能管理并为云端虚拟资源（包括虚拟设备、储存设备和软体套件）建立模型。如今，因为现在已经可以动态的启用虚拟伺服器和相关资源，SCM管理人员的角色和职责已经与开发人员合并。

**历史**
软体配置管理（SCM）在运算领域的应用可以追溯至1950年代。当时，原先用于硬体开发和生产控制的CM（配置管理）概念，转而应用于软体开发。早期的软体都有实体，如打孔卡、打孔带、磁带和其他媒介。第一个软体配置管理需经由人为操作。随着程式语言及其复杂性不断进展，涉及配置管理和其他方法的软体工程由于时程、预算和品质等因素而成为主要隐忧。多年来的实践经验，为软体开发流程和工具提供定义并奠定基础。而这些工具最终成为管理软体变更的系统。业界普遍的做法，即是采用开放或专有方式（如修订控制系统）来作为解决方案。随着电脑的使用越来越普及，可处理大型任务范畴的系统也因应而生，包括需求管理、设计替代方案、品质控管等。随后，工具均遵循企业组织的守则，如Software Engineering Institute建立的能力成熟度模型（CMM）。

**参见**
版本控制
*变更管理 (工程)
*软体生命周期管理
*版本控制软件比较
*Continuous configuration automation
*List of revision control software
*Infrastructure as Code

**参考文献**

**延伸阅读**
  isbn = 978-0-7381-7232-3- Aiello, R. (2010). Configuration Management Best Practices: Practical Methods that Work in the Real World (1st ed.). Addison-Wesley. 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. 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/ date=20210320165326 - 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 date=20121008233037 - Paul M. Duvall, Steve Matyas, and Andrew Glover (2007). Continuous Integration: Improving Software Quality and Reducing Risk. (1st ed.). Addison-Wesley Professional. 0-321-33638-0.

**外部连结**
 SCM and ISO 9001 by Robert Bamford and William Deibler, SSQC date=20210308193736 - Use Cases and Implementing Application Lifecycle Management  date=20210424215958 - Parallel Development Strategies for Software Configuration Management date=20210424163352