1.什么是软件配置管理
2.配置管理的任务
配置管理的任务如下图所示:
(1)定义配置项:软件配置项(SCI)即软件配置管理的对象。软件开发过程中产生的所有信息构成软件配置,它们是:代码(源代码、目标代码)以及数据结构(内部数据、外部数据)、文档(技术文档、管理文档、需方文档)、报告,其中每一项称为配置项,软件配置项是配置管理的基本单位。同时,开发过程中使用的环境,如操作系统、各种支撑软件、配置管理工具,也可纳入软件配置管理范围。
(2)标识配置项:正确标识软件配置项对整个管理活动非常重要,对软件开发过程中的所有软件项目赋予唯一的标识符,便于对其进行状态控制和管理。
配置标识包括:文档标识、代码标识、运行文件标识。
典型的命名规则是RUP法。
(3)定义基线:基线标志着软件开发过程一个阶段的结束,任一软件配置项,一旦形成文档并审议通过,即成为基线。基本的作用在于把各阶段的工作划分得更明确,使本来连续的工作在这些点上断开,以便检验和肯定阶段成果。
(4)定义软件配置库:软件配置库内容因涵盖开发的全过程,应包括如表所示的软件项:
表 软件开发过程与软件配置库
模型、文档库 | 代码库 | 运行库 |
软件分析设计 | 软件实现 | 软件运行 |
软件分析设计模型 | 源代码 | 可执行代码 |
软件分析设计文档 | 目标代码 | 使用数据 |
测试数据 | ||
软件开发环境 | 软件运行环境 |
基线技术将项目实施配置管理的存储库分为3类:开发库、受控库、产品库。
①开发库:存放在开发过程中按照要求生成的各种技术文档、源代码、可执行代码和使用的数据,为开发人员的活动提供支持。
② 受控库:存放基线产品即项目转阶段经评审通过的和已经批准的软件工作产品和软件产品。
③产品库:存放项目正式交付用户的最终产品和最终运行环境。
(5)控制配置:配置控制的定义是为了明确配置管理在具体实现时所执行的配置规程,主要包括入库控制和变更控制。
(6)配置审计:包含了物理和功能上的审计。包括以下活动:① 验证每个软件配置项的正确性、一致性、完备性、有效性、可追踪性;② 在软件生存期内应定期配置审计工作;③定期进行软件备份,应保证备份介质的安全性和可用性。
(7)配置状态报告:提供软件开发过程的历史记录,内容包括配置管理项的现行状态及何时因何故发生了何事(入库、更动)。配置管理人员应定期或在需要时提交配置状态报告。配置状态报告包含了整个软件生命周期中对基线所有变更的可追踪性。
3.实施软件配置管理的优点
4.配置软件管理实施的流程
1.规划、调整网络开发环境
一个规划良好的开发环境,是实施配置管理系统的前提。此阶段要对配置管理系统做出规划,主要考虑以下问题:
- 网络的带宽、拓扑结构
- 服务器的选择、命名规范
- 存储区的定位
- 开发人员及组的命名规约等。
2.设计配置管理库
根据项目开发的要求,设计开发资源的存储模式,良好的存储模式有利于减轻管理上的负担,增强配置管理库的访问性能,同时便于控制访问权限,保护软件资产。
3.定义配置管理系统的角色
需要确定与配置管理相关的所有角色,包括他们的相应的活动。在开发过程中,一个开发人员可能兼任多种角色,但一项任务在同一时刻只能由一个角色来执行。
一般配置管理中的角色主要包括:
- 配置管理员
- 软件开发人员
- 集成人员
- QA人员
4.制定配置管理流程
配置管理实施的一个重要阶段,主要目的是根据项目开发的需要,制定相应的配置管理流程,以更好地支持开发,主要活动包括:
- 定制并行开发策略。合理的并行开发策略应该具有以下特点:协调项目的复杂性和需求,统一创建分支类型和元数据,为开发过程中的变更集成制定有效的规范,适时反映开发过程中方法和需求的变化:
- 发布版本管理。软件开发过程中的一个关键活动是提取工件的相关版本,以形成软件系统的阶段版本或发布版本,一般将其称为稳定基线。一个稳定基线代表新开发活动的开始,而一系列定制良好的活动之后又会产生一个新的稳定基线。有效地利用此项功能,在项目开发过程中可以至始至终管理、跟踪部件版本间的关联。
5.相关人员的培训
实施配置管理系统,相关人员需要接受培训:
- 管理员培训:针对配置管理员,主要学习配置管理工具管理相关内容:
- 开发人员培训:针对开发人员,主要学习配置管理工具与开发相关的常用操作
- 管理流程培训:针对全体人员,目的是了解配置管理策略和流程,以及如何与开发管理、项目管理相结合。
5.软件配置管理与CMMI
能力成熟度集成模型(Capability Maturity Model Integration)是由美国卡耐基·梅隆大学的软件工程研究所(SEI)组织开发,并于2002年发布的一种规范、实用的途径来管理软件过程的模型.CMMI通过指导软件开发人员的活动来改进软件过程,以达到软件过程可复用性、可定量管理、可有效控制的目的.软件配置管理是CMMI可重复级的一个关键过程域(Key Process Area,KPA),其目的是在整个项目的软件生命周期中,保持软件产品的完整性和可追踪性,这包含了对改变的控制和所有能影响到改变的软件因素的管理.作为过程实现、过程优化的一部分,配置管理是实现软件过程的基本保证,它还是基于重用的软件开发的管理手段,所以成为软件过程管理的核心.CMMI模型清晰地描述了SCM,并说明了SCM 的目的和所要达到的目标,具体描述了某级成熟度下软件过程在该方面所应达到的一组目标和实现这些目标的一组关键实践(Key Pradice).这些关键实践被划分为5类,分别为完成该组目标所需的承诺、执行能力、执行的活动、度量分析以及验证.使企业在实施软件配置管理时能知道到底要做什么,团队的配置管理现状如何评估,在哪些方面还可以进行改进等问题能得到具体的答案。