1 概述
1.1 软件配置管理是一种标识、组织和控制修改的技术,软件配置管理应用于整个软件工程过程。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从某种角度讲,SCM的目的是使错误降为最小并最有效地提高生产效率。 **
1.2 历史:20世纪60年代末70年代初,配置管理的概念源于美国空军,Leon Presser撰写了一篇名为“Change and Configuration Control”的论文,提出了配置管理的概念。1975年Leon Presser开发了配置管理工具:Change and Configuration Control (CCC)。逐渐发展,代表性:Marc Rochkind的SCCS(Source Code Control System)和Walter Tichy的RCS (Revision Control System)。 **
1.3 软件配置管理定义:**
1.3.1 IEEE: 软件配置管理由适用于所有软件开发项目的最佳工程实践组成,无论是采用分阶段开发,还是采用快速原型进行开发,甚至包括对现有软件产品进行维护.**
1.3.2 SCM :is a set of activities designed to control change by identifying the work products that are likely to change, establishing relationships among them, defining mechanisms for managing different versions of these work products, controlling the changes imposed, and auditing and reporting on the changes made。**
1.3.3 软件配置管理是贯穿于整个软件过程中的保护性活动,它被设计用来:(1) 标识变化;(2) 控制变化;(3) 保证变化被适当的发现;(4) 向其他可能有兴趣的人员报告变化。**
1.3.4 通过执行版本控制、变更控制等规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性,配置管理是对工作成果的一种有效保护。配置管理是否有成效取决于三个要素:人、规范、工具。**
2 基本概念
2.1 最终软件版本产品:文档、程序和数据的集合,是软件生产商交付给客户的软件产品,是用户能够直接使用的软件产品。**
2.2 软件配置:一个软件产品在生存期各个阶段的不同形式和不同版本的程序、文档及相关数据的集合,或者说是配置项的集合。**
2.3 软件配置项:软件配置管理的对象,一个软件配置项是项目中一个特定的、可文档化的工作产品集。软件配置是一个集合,该集合中的每一个元素称为该软件产品软件配置中的一个配置项(Software Configuration Item,SCI)。任何配置管理系统的基础都是存储和管理配置项。在软件开发过程中产生的信息有3种:计算机程序(源程序及目标程序);描述计算机程序的文档(包括技术文档和用户文档);数据结构及数据。**
2.4 基线:指一个(或一组)配置项在项目生命周期的不同时间点上通过正式评审而进入正式受控的一种状态。基线是软件生命周期中各开发阶段的一个特定点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果。**
2.4.1 里程碑 (Milestone)只是一个阶段标记,基线是一个阶段软件工作产品,基线与里程碑一般表现为一对一的关系。里程碑是检查点 (Check Point),检查点不一定是里程碑,因为检查点还可以是时间、计划和事件。**
2.4.2 基线分类:
1**指派基线:**又称为分配基线,指在软件需求分析阶段结束时,经过正式评审和批准的软件需求的规格说明,指派基线是最初批准的指派配置标识。
2**产品基线:**指在软件组装与系统测试阶段结束时,经过正式评审的批准的有关所开发的软件产品的全部配置项的规格说明,产品基线是最初批准的产品配置标识。
3功能基线:在系统分析和软件定义阶段结束时,经过正式评审和批准的系统设计规格说明中对被开发软件系统的规格说明;经过项目委托单位和项目承办单位双方签字同意的协议书或合同中所规定的对被开发软件系统的规格说明;由下级申请及上级同意或直接由上级下达的项目任务书中所规定的对待开发软件系统的规格说明。
2.5 配置控制委员会:Software Configuration Control Board, SCCB)负责管理软件配置项变更的组织。
2.5.1 具体责任:评估变更;批准变更请求;在生命周期内规范变更申请流程;对变更进行反馈;与项目管理层沟通。**
3 SCM目标
软件配置管理是在贯穿整个软件生命周期中建立和维护项目产品的完整性。
目标 1: 软件配置管理的各项工作是有计划进行的。
目标 2: 被选择的项目产品得到识别,控制并且可以被相关人员获取。
目标 3: 已识别出的项目产品的更改得到控制。
目标 4: 使相关组别和个人及时了解软件基准的状态和内容。