软件配置管理过程
海恒达远信息技术有限公司
2003年6月7日
1、前言
目的
本文的目的是描述配置管理的所有活动。文档中涉及到的角色均以粗体表示,以便各角色更明确自己的工作。本文档可以帮助我们规范化公司的配置管理过程。
文档概述
第一部分:描述本文档的范围和目的,以及配置管理过程涉及到的角色。
第二部分:详细描述配置管理过程的活动。
有关的角色及职责
角色 职责描述
配置管理管理员 管理配置管理的各种角色,负责配置管理系统的维护工作,提供工具技术上的支持。(公司所有项目配备一个配置管理管理员)
项目设计师/项目主管 对本项目的配置管理过程进行管理,并提供有关支持。
开发人员 对自己编写的文档和代码进行管理
测试负责人 负责测试环境的搭建,测试过程的执行,确保测试文档正常的配置管理过程
2、配置管理活动
资源准备
目的
准备配置管理工作需要的一切资源,主要是人员和设备资源。
过程活动
过程活动
角色和职责
说明
确定主要的角色,如集成负责人,测试负责人,部署负责人
项目主管和项目设计师来指定人员;
不一定要在项目启动时指定,确保工作开始之前到位即可
准备必需的设备资源。如准备一台空间足够的数据库服务器
项目设计师提出服务器的要求;
项目主管确保服务器按要求准备好;
配置管理培训
目的
对配置管理过程的参与人员进行培训,以确保过程的顺利进行。培训的对象包括项目组所有人员。
过程活动
过程活动
角色和职责
说明
培训“Seavision的配置管理过程”
公司对项目组人员进行培训
如果大家对此过程都已熟悉,则没有必要培训,目的是确保所有参与人员都了解公司的配置管理过程和使用工具
培训有关工具的使用,如CVS工具,ANT工具
公司对项目组人员进行培训
标识
目的
识别产品的结构和产品,并以某种形式提供对它们的存取。
过程活动
过程活动
角色和职责
说明
约定入库的文件
项目主管和项目设计师组织大家一起来约定配置管理管理的对象
公司要求开发过程中产生的所有文档,源程序,数据库,配置参数等,都置于配置管理之下,
需要制定配置清单
按时检查配置项是否入库
项目主管按计划检查配置项是否入库
确保按照计划产生响应的产出物
为项目开辟一个目录
配置管理管理员在服务器上为该项目建立一个项目组
项目统一命名
建立目录结构
项目主管和项目设计师提供目录结构;配置管理管理员来建立到服务器上;
公司具有统一的目录结构
设定权限
项目主管和项目设计师提供开发团队每人的参与权限;配置管理管理员来设定权限;
保证项目的保密性
权限设置的一般要求
下面是权限设置的一些基本要求:
项目主管和项目设计师可以访问本项目的所有资源,而对其他项目不可访问。
开发人员对自己参与的模块有访问权限,对其他与自己无关的模块没有访问权限。例如一个系统由A,B,C,D四个模块组成,如果B与A和D没有任何关系,B组内人员对A和D就设置为无访问权限。
不同组别的人员对与自己无关的目录没有访问权限,如测试人员对源代码没有访问权限。
为了避免不必要的混乱,对于一些特殊的目录数据,要求对一部分人设置为只读。比如,集成文件,只有集成人员才有编辑权限,而其他人员只需要读取就可以;对于数据库设计文件,编码人员只要求只读。
控制
目的
控制开发产品的版本,并将配置管理贯穿到软件开发过程中。
过程活动
过程活动
角色和职责
说明
输入工作文件
所有的参与人员按时将自己的数据放到服务器合适的目录下
小组内需要建立有关的约定。如,文件的命名和上传的频率。
版本管理
根据开发要求,所有人员管理好自己数据的版本演变,并记录有帮助的日志
集成负责人负责项目的版本
开发过程管理
开发人员,集成负责人,测试负责人,和部署负责人在不同阶段完成自己的工作。
开发过程中,不同的角色在特定的阶段上完成规定的工作
版本管理
版本包括文件的版本和项目的版本。文件的版本就是每次修改文件时产生的修改版本。
下面这个示意图演示了配置管理库中文件file1产生和版本变化的过程:
配置库
第一次提交 修改/提交 。。。
用户
文件版本的产生
项目的版本是在特定的点上(如里程碑处)得到的这一时刻的项目快照。举一个简单的例子:一次产品打包由A、B、C、D四个文件得到,下面图形体现了每次打包与文件版本之间的关系。
A B C D
Build1 构建产品
Release1 第一次发布
Release2 第二次发布
项目的版本是某一时刻的项目快照
3.更改页
更改内容
时间
更改人
备注