软件配置管理 ================== 配置管理(CM)的目的,在使用配置识别、配置控制、配置状态报告及配置审计来达到建立和维护产品(工作成果)的完整性。 涉及到需求变更,代码管理,版本管理,变更管理及配置审计等。 标识所选定的工作产品配置,组成工作产品特定时间点的基线。 * 控制配置项的变更 * 建立或提供规格说明书,以便从配置管理系统构造出工作产品 * 维护基线的完整性 * 提供正确的状态和当前配置数据给开发人员、最终用户及客户。 建立基线 -------------------- 识别配置项 -------------- 配置项为组成基线的实体单元,包含需求,设计,代码,构建脚本,编译工具及版本,测试方案,测试用例及测试结果等。 选择以下作为配置项 :: 1,交付给客户的产品,例如二进制安装文件,帮助手册等。 2,内部的工作产物,例如代码和设计文档。 3,获取的产品,例如购买的数据库或开源的动态库或操作系统。 4,编译工具和其他环境等。编译工具gcc 4.4.3 给配置项赋予一个唯一的标识,识别每一个配置项的重要特征,包括作者,文档类型,编程语言, 最小可销售的市场特性以及配置项的服务目的。 建立配置管理系统 ------------------ 建立和维护对工作产品的配置管理和变更管理系统。例如采用subverison, jira等软件组合成为配置管理和变更管理系统。 并且配置管理系统包含变更申请数据。 建立或发布基线 ------------------ 定义:一个经过评审和认可的规格说明书或产品, 将来的开发将以此为基础,只有通过正规的变更控制程序才可以改变它。 建立或发布供内部使用和交付给客户的基线。 例如根据项目阶段建立基线,研发过程中每周创建研发基线来协调研发和测试的进度。 工作成果包含基线以及基线描述。 实践上有两种基线方式: 1, 按产出物进行基线化。每个项目有很多产出物,然后有多个产出物的基线,这样就需要有一个基线对照表来识别最新的项目基线。 2, 按项目进行基线,项目进行到某个阶段进行评审认可,然后对整个项目产出建立项目基线。 因为后续开发一般基于基线的需求设计及代码进行修改,第一种方式的基线各种文档冲突或不一致可能性比较大。因此需定期建立整体基线。 追踪并控制变更 ---------------------- 追踪变更申请 `````````````` 需求变更,因缺陷对代码进行变更等等。并记录变更的状态,例如缺陷有Open,Accept,Fixed,Close等状态. 控制配置项的变更 `````````````````` 控制配置项的变更,例如需求变更需要经过批准,审查是否造成额外的影响,在项目后期,审查变得更为严格 建立并维护基线的完整性 ----------------------- 用于记录和审计基线的完整性。 建立配置管理记录 --------------------- 工作产物包括 :: 1. 配置项的修订历史记录 2. 变更过程的记录 3. 变更请求的记录 4. 配置项的状态 5. 不同基线间的差异 实施配置审计 ----------------- 例如结项时验证需求,测试用例,以及测试结果是否符合需求等 工作成果包括以下内容: * 1,配置审计结果 * 2,针对不符合要求的行动,例如审计不通过继续跟踪修改等 多个模块开发如接口发生变化需要评审才能修改。项目开发中可以修改接口,如项目以产品形式对外发布,接口只能新增。 关键在于配置审计,项目的配置审计必须定期进行(建议每月),参加人员包括需求人员,开发人员,集成人员,测试人员及SQA。 参加人员必须包括具体功能的开发一线人员,因为项目成果主要有他们来产出。