SCM 是指在软件系统中确定和定义构件(源代码、可执行程序、文档等),在整个生命周期中控制发布和变更,记录和报告构件的状态和变更请求,并定义完整的、正确的系统构件的过程
以下几个方面功能
配置标识:产品的结构、产品的构件及其类型,为其分配唯一的标识符,并以某种形式提供对它们的存取
版本控制:通过建立产品基线,控制软件产品的发布和在整个软件生命周期中对软件产品的修改。例如,它将解决哪些修改会在该产品的最新版本中实现的问题
状态统计:记录并报告构件和修改请求的状态,并收集关于产品构件的重要统计信息。例如,它将解决修改这个错误会影响多少个文件的问题
审计和审查:确认产品的完整性并维护构件间的一致性,即确保产品是一个严格定义的构件集合。例如,它将解决目前发布的产品所用的文件的版本是否正确的问题
生产:对产品的生产进行优化管理。它将解决最新发布的产品应由哪些版本的文件和工具来生成的问题
过程管理:确保软件组织的规程、方针和软件周期得以正确贯彻执行。它将解决要交付给用户的产品是否经过测试和质量检查的问题
小组协作:控制开发统一产品的多个开发人员之间的协作。例如,它将解决是否所有本地程序员所做的修改都已被加入新版本的产品中的问题
要求
唯一地标识每个软件项的版本;
标识共同构成一个完整产品的特定版本的每一软件项的版本;
控制由两个或多个独立工作的人员同时对一个给定软件项的更新;
按要求在一个或多个位置对复杂产品的更新进行协调;
标识并跟踪所有的措施和更改