第18章 项目配置管理
1考情分析
根据考试大纲,本章要求考生掌握以下几个方面的知识点:
(1)信息系统项目相关文档及其管理
信息系统项目相关文档:信息系统项目相关文档含义、信息系统项目相关文档种类。
信息系统项目相关文档管理的规则和方法。
(2)配置管理
配置管理有关概念:配置项、配置库、配置管理系统、基线。
制定配置管理计划:配置管理计划编制工作的基本步骤、配置管理计划的主要内容。
配置管理的主要活动:制定配置管理计划、配置标识、配置控制、配置状态报告、配置审计、发布管理与交付。
1.1本章重点

2考点精讲
2.1 配置管理相关概念
1. 配置项
(1)GB/T 11457-2006对配置项的定义:“为配置管理设计的硬件、软件或二者的集合,在配置管理过程中作为一个单个实体来对待。”配置项除了硬件、软件之外还包括项目计划书、需求文档、设计文档、源代码等,它们经评审和检查通过后进入配置管理。
(2)配置项状态和配置项版本号
配置项状态分为“草稿”“正式”和“修改”三种。配置项刚建立时,状态为“草稿”。配置项通过评审后,状态变为“正式”。此后如更改配置项,状态变为“修改”。当配置项修改完毕并重新通过评审时,状态又变为“正式”。
处于“草稿”状态的配置项的版本号格式为:0.YZ。YZ数字范围为01-99。随着草稿的不断完善,“YZ”的取值应递增。“YZ”的初值和增幅由开发者自己把握。
处于“正式发布”状态的配置项的版本号格式为:X.Y,X为主版本号,取值范围为1~9,Y为次版本号,取值范围为1~9。配置项第一次“正式发布”时,版本号为1.0。如果配置项的版本升级幅度比较小,一般只增大Y值,X值保持不变。只有当配置项版本升级幅度比较大时,才允许增大X值。
处于“正在修改”状态的配置项的版本号格式为:X.YZ。配置项正在修改时,一般只增大Z值,X.Y值保持不变。当配置项修改完毕,状态重新成为“正式发布”时,将Z值设置为0,增加X.Y值。
2. 配置基线
配置基线由一组配置项组成,这些配置项构成一个相对稳定的逻辑实体。基线中的配置项被“冻结”了,不能再被任何人随意修改。对基线的变更必须遵循正式的变更控制程序。基线相当于开发过程中的里程碑,一个产品可以有多个基线,也可以只有一个基线。交付给外部顾客的基线一般称为发行基线,内部开发使用的基线一般称为构造基线。
3. 配置库
配置库可以分为开发库、受控库、产品库三种类型。
(1)开发库(动态库、程序员库、工作库):保存正在开发的配置实体。
(2)受控库(主库):管理基线。
(3)产品库(静态库、产品库、软件仓库):最终产品。
2.2 配置管理主要活动
1.制定配置管理计划
配置管理计划是对如何开展项目配置管理工作的规划,应该形成文件并在整个项目生命周期内处于受控状态。配置控制委员会负责审批该计划。
配置管理计划的主要内容包括:配置管理活动;实施这些活动的规范和流程;实施这些活动的进度安排;负责实施这些活动的人员或组织,以及他们与其他组织的关系。
2.配置控制
配置控制即配置项和基线的变更控制,包括以下任务:标识和记录变更申请,分析和评价变更,批准或否决申请,实现、验证和发布已修改的配置项。下面是基于配置库的变更控制实例。

基于配置库的变更控制
现以某软件产品升级为例,简述其流程。
(1)将待升级的基线(假设版本号为V2.1)从产品库中取出,放入受控库。
(2)程序员将欲修改的代码段从受控库中检出(Check out),放入自己的开发库中进行修改。代码被Check out后即被“锁定”,以保证同一段代码只能同时被一个程序员修改,如果甲正对其修改,乙就无法Check out。
(3)程序员将开发库中修改好的代码段检入(Check in)受控库。Check in后,代码的“锁定”被解除,其他程序员可以Check out该段代码了。
(4)软件产品的升级修改工作全部完成后,将受控库中的新基线存入产品库中(软件产品的版本号更新为V2.2,旧的V2.1版并不删除,继续在产品库中保存)。
3. 配置状态报告
配置状态报告也称配置状态统计,任务是有效记录和报告管理配置所需的信息,目的是及时、准确地给出配置项的当前状况,供相关人员了解,以加强配置管理工作。配置状态报告应包含以下内容:
每个受控配置项的标识和状态。
每个变更申请的状态和已批准的修改实施状态。
每个基线的当前和过去版本的状态以及各版本的比较。
其他配置管理过程活动的记录。
4.配置审计
配置审计也称为配置审核或配置评价。工作主要集中在两个方面,一是功能配置审计,即验证配置项的实际功效与其信息系统需求是一致的;二是物理配置审计,审计配置项的完整性(配置项的物理存在是否和预期一致)。
5. 发布管理和交付
发布管理和交付活动主要任务是:有效控制软件产品和文档的发行和交付,在软件产品的生存期内妥善保存代码和文档的母拷贝。主要活动包括:存储、复制、打包、交付、重建。
3章节问答
1.软件开发项目中,为何特别强调版本管理?
答:
(1)在项目开发过程中,绝大部分的配置项都要经过多次的修改才能最终确定下来。对配置项的任何修改都将产生新的版本。由于我们不能保证新版本一定比旧版本好,所以不能抛弃旧版本。
(2)版本控制的目的是按照一定的规则保存配置项的所有版本,避免发生版本丢失或混淆等现象,并且可以快速准确地查找到配置项的任何版本。
2.配置管理过程的主要参与人员与职责是?
答:
(1)项目经理(PM,Project Manager)。项目经理是整个信息系统开发和维护活动的负责人,他根据配置控制委员会的建议,批准配置管理的各项活动并控制它们的进程。其具体工作职责如下:
制定项目的组织结构和配置管理策略;
批准、发布配置管理计划;
决定项目起始基线和软件开发工作里程碑;
接受并审阅配置控制委员会的报告。
(2)配置控制委员会(CCB,Configuration Control Board)。负责指导和控制配置管理的各项具体活动的进行,为项目经理的决策提供建议。其具体工作职责如下:
批准配置项的标志,以及软件基线的建立;
制定访问控制策略;
建立、更改基线的设置,审核变更申请;
根据配置管理员的报告决定相应的对策。
(3)配置管理员(CMO,Configuration Management Officer)。根据配置管理计划执行各项管理任务,定期向CCB提交报告,并列席CCB的例会,其具体工作职责如下:
①软件配置管理工具的日常管理与维护;
②提交配置管理计划;
③各配置项的管理与维护;
④执行版本控制和变更控制方案;
⑤完成配置审计并提交报告;
⑥对开发人员进行相关的培训;
⑦识别开发过程中存在的问题并制定解决方案。
(4)开发人员(Dev,Developer)。开发人员的职责就是根据项目组织确定的配置管理计划和相关规定,按照配置管理工具的使用模型来完成开发任务。
3.配置库的分类与作用是?
答:
(1)配置库主要分为开发库、受控库、产品库。
(2)配置库的作用:记录与配置相关的所有信息;利用库中的信息可评价变更的后果;可利用库中的信息查询,例如:哪些客户已提取了某个特定的系统版本?运行一个给定的系统版本需要什么硬件和系统的哪些版本?一个系统到目前已生成了多少版本,何时生成的?如果某一特定的构件变更了,会影响到系统的哪些版本?一个特定的版本曾提出过哪几个变更请求?一个特定的版本有多少已报告的错误?
4.下表是《ISO/IEC12207:1995信息技术—软件生存周期过程》中关于软件配置管理过程的规定,可供参考。
