SCM(Software Configuration Management,软件配置管理)是一种标识、组织和控制修改的技术。它应用于整个软件生存期。
SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。
凡是纳入配置管理范畴的工作成果统称为配置项,配置项主要有两大类:一类是属于产品的组成部分,例如需求文档、设计文档、源代码、测试用例等等;另一类是在管理过程中产生的文档,例如各种计划、报告等。
每个配置项的主要属性有名称、标识符、文件状态、版本、作者、日期等。配置项及历史纪录反映了软件的演化过程。
版本控制的目的是按照一定的规则保存配置项的所有版本,避免发生版本丢失或混乱等现象。配置项的状态有三种:“草稿”、“正式发布”和“正在修改” 。
配置项的版本号与配置项的状态紧密相关:
(1) 处于“草稿”状态的配置项的版本号格式为:0.YZ
(2) 处于“正式发布”状态的配置项的版本号格式为:X.Y。
一般只是Y值递增,当Y值到达一定的范围时X值才发生变化。
(3) 处于“正在修改”状态的配置项的版本号格式为:X.YZ。
一般只增大Z值,当配置项修改完毕,状态重新变成“正式发布”时,将Z值变为0,增加X.Y值。
基线是配置管理中的要求,分需求基线、开发基线、测试基线和发布基线。
基线(baseline)是软件开发中某一阶段的一个快照,这个阶段有明确的、稳定的输出产物(软件文档、程序源码等),且经过评审和批准,是进一步开发的基础。建立基线后,后续基于此的变更需要走正式的变更流程,直到建立下一个基线。所以要求该阶段的输出成果值得建立基线,要求它们是明确和稳定的。
建立基线后,项目负责SCM的人需要通知相关人员基线已经形成,存放在哪里。软件版本的对外发布,需要从基线中发布。
那如何打基线呢?
通常版本控制软件都有实现打基线的功能,比如SVN。
在项目管理中,打基线主要是在项目进入下一个阶段时把上一阶段的源码、文档等打个标识,从而作为下一阶段的开始。
在程序发布时打基线也是尤为重要,如果每次发布新版本时都打一个基线,那么可以做到版本回滚、查找特定版本的BUG、比较版本之间的差异、发布老版本等等。
基线管理类似于版本管理,但基线是某一阶段所有输出的一个快照,而不仅仅是某一项,如源码。
比如有:
baseline1 需求V2.0 设计v1.0
baseline2 需求V2.0 设计v2.0
baseline3 需求V2.0 设计v3.0
版本可以用SVN管理,基线可以通过excel进行记录,即某一基线对应的源码版本、文档版本等。