1
 软件工程
1.10.4.3 8.4.3 配置管理

8.4.3 配置管理

软件配置管理,又称为软件形态管理或软件建构管理,简称软件形管(SCM)。界定软件的组成项目,对每个项目的变更进行管控(版本控制),并维护不同项目之间的版本关联,以使软件在开发过程中任一时间的内容都可以被追溯。软件配置管理,贯穿于整个软件生存周期,它为软件研发提供了一套管理办法和活动原则。软件配置管理无论是对软件企业管理人员还是研发人员,都具有重要的意义。

1.识别配置项

软件配置管理首先需要识别软件配置项(Software Configuration Item,SCI),Pressman 对SCI给出了一个比较简单的定义:“软件过程的输出信息可以分为3个主要类别:计算机程序(源代码和可执行程序)、描述计算机程序的文档(针对技术开发人员和用户),以及数据(包含在程序内部或外部)。这些项包含了所有在软件过程中产生的信息,总称为软件配置项。”由此可见,软件配置项的识别是配置管理活动的基础,也是制订配置管理计划的重要内容。一般来说,软件配置项的范围包括以下4项。

(1)技术文档:《项目开发计划》、《需求分析报告》、《软件设计书》、《质量保证计划》、《概要设计书》、《详细设计书》、《测试用例》、《测试报告》、《总结报告》等。

(2)程序:阶段产品、源程序、释放产品等。

(3)工具:自动设计工具、维护工具等。

(4)交互文档:与用户或项目组内交互产生文档《用户需求说明书》。

软件配置管理过程中,对每个软件配置项的主要属性(如名称、标识符、文件状态、版本、作者、日期等)进行标识,并且所有配置项都被保存在配置库中,确保不会混淆、丢失。软件配置项及其历史记录反映了软件的演化过程。

整个配置库可视为一个统一的工作空间,并且可以根据不同权限的要求继续划分为个人(私有)、团队(集成)和全组(公共)这三类子空间,从而更好地支持将来可能出现的并行开发的需求。

2.版本控制

版本控制是全面实行软件配置管理的基础,可以保证软件技术状态的一致性,版本标志的目的是便于对版本加以区分、检索和跟踪,以表明各个版本之间的关系。一个版本是软件系统的一个实例,在功能和性能上与其他版本有所不同,或是修正、补充了前一版本的某些不足。实际上,对版本的控制就是对版本的各种操作控制,包括检入检出控制、版本的分支和合并、版本的历史记录和版本的发行。

版本控制的软件配置项状态有三种:“草稿”、“正式发布”和“正在修改”,使用户能够通过对适当版本的选择,组装成各种各样、不同功能模块的模型,同时,在开发过程、不同阶段要建立各种状态报告,记录所有软件配置项及变更请求的状态。

3.变更控制

在软件开发过程中,进行变更控制是很有可能发生的。然而,要实行有效的变更控制是比较困难的。对代码的一点小小的修改都有可能导致一个巨大的错误,当然也有可能是修补一个巨大的漏洞或增加一些很有用的功能。变更控制的实现应该由配置库管理人员负责,在对变更要求审核批准后,提取配置库中需要修改的SCI,经过复审后,提交修改后的SCI并重建软件版本。