软件配置管理(SCM)简介

发表于:2008-09-22来源:作者:点击数: 标签:管理SCMscm简介软件
关键字:软件配置管理 SCM 一、引言 软件开发过程中随着工作的进展会产生许多信息,如: 需求分析 说明、设计说明、源代码、可执行码、用户手册、 测试用例 、测试结果和这些内容形成的相应的技术文档;以及合同、计划、会议记录、报告等管理文档。另一方面
关键字:软件配置管理 SCM

一、引言


软件开发过程中随着工作的进展会产生许多信息,如:需求分析说明、设计说明、源代码、可执行码、用户手册、测试用例、测试结果和这些内容形成的相应的技术文档;以及合同、计划、会议记录、报告等管理文档。另一方面,软件开发过程中出现变更是不可避免的。面对如此庞大且变动中的信息集合,如何使其有序高效地产生、存放、查找和利用成为软件工程项目十分突出的问题。如果没有一套严谨、科学的管理办法,出现混乱和差错几乎是必然的。软件配置管理正是为解决这个问题而提出的,它为软件开发提供了一套管理办法和活动原则,成为贯穿软件开发始终的重要质量保证活动。


二、软件配置管理的概念


要想掌握一种技术,首先要深刻理解他的概念。那么什么是软件配置管理呢?这个名词英文是Software Configuration Management,通常我们将它缩写为SCM。


我们可以从以下几个角度理解和掌握它的真正含义:


(1)《ISO/IEC 12207(1995)信息技术--软件生存期过程》:配置管理过程是在整个软件生存期中实施管理和技术规程的过程,它标识、定义系统中软件项并制定基线;控制软件项的修改和发行;记录和报告软件项的状态和修改申请;保证软件项的完整性、协调性和正确性;以及控制软件项的储存、装载和交付。


(2)《ISO 9000-3(1997)质量管理和质量保证标准--第3部分:ISO 9001:1994 在计算机软件开发、供应、安装和维护中的使用指南》:软件配置管理是一个管理学科,它对配置项的开发和支持生存期给予技术上和管理上的指导。配置管理的应用取决于项目的规模、复杂程度和风险大小。(3)巴比齐(W.Babich):软件配置管理能协调软件开发,使得混乱减少到最小。软件配置管理是一种标识、组织和控制修改的技术,目的是最有效地提高生产率。


(4)《GB/T 11457(1995)软件工程术语》:软件配置管理是标识和确定系统中配置项的过程,在系统整个生存周期内控制这些项的投放和更动,记录并报告配置的状态和更动要求,验证配置项的完整性和正确性。一言以蔽之,配置管理是门通过一系列技术、方法和手段来维护产品的历史、鉴别和定位产品独有的版本、在产品开发和发布阶段控制变化,从而使管理制度化、有效减少重复性工作、保证产品的质量和效率的科学。


三、软件配置管理术语


软件配置管理是软件工程学科中涉及概念较多的一项内容,为了便于说明,下面给出一些相关术语的定义。


(1)项目委托单位 project entrust organization 指为产品开发提供资金并通常也是(但有时也未必)确定产品需求的单位或个人。


(2)项目承办单位 project undertaking organization 指为项目委托单位开发、购置或选用软件产品的单位或个人。


(3)软件开发单位 software development organization 软件开发单位是指直接或间接受项目委托单位委托而直接负责开发软件的单位或个人。


(4)用户 user 指实际全胜软件来完成某项计算、控制或数据处理等任务的单位或个人。


(5)软件 software 指计算机程序及其有关的数据和文档,也包括固化了的程序。


(6)重要软件 critical software 指其故障会影响到人身安全、会导致重大经济损失或社会损失的软件。


(7)软件生存周期 software life cycle 指从软件系统设计对软件系统提出应用需求开始,经过开发,产生出一个满足需求的计算机软件系统,然后投入运行,直至该软件系统退役为止。其间经历系统分析与软件定义、软件开发以及系统的运行与维护等三个阶段。其中软件开发阶段一般又分成需求分析、概要设计、详细设计、编码与单元测试、组装与集成测试系统测试以及安装与验收等七个阶段。


(8)软件开发库 software development library 指在软件生存周期的某一个阶段期间,存放与该阶段软件开发工作有关的计算机可读信息和人工可读信息的库。


(9)软件受控库 software controlled library 指在软件生存周期的某一个阶段结束时,存放作为阶段产品而释放的、与软件开发工作有关的计算机可读信息和人工可读信息的库。软件配置管理就是对软件受控库中的各软件项进行管理,因此软件受控库也叫做软件配置管理库。


(10)软件产品库 software product library 指在软件生存周期的系统测试阶段结束后,存放最终产品而后交付给用户运行或在现场安装的软件的库。


(11)接口控制 interface control 指描述有关由一个或多个部门提供的两个或两个以上的配置项接口的所有功能特性和物理特性的过程。在实现之前,要确保对这些功能特性和物理特性所建议的修改已经过评审和批准。


(12)功能基线 functional baseline 指在系统分析与软件定义阶段结束时,经过正式评审和批准的系统设计规格说明书中对待开发系统的规格说明;或是指经过项目委托单位和项目承办单位双方签字同意的协议书或合同中所规定的对待开发软件系统的规格说明;或是由下级申请经上级同意或直接由上级下达的项目任务书中所规定的对待开发软件系统的规格说明。功能基线是最初批准的功能配置标识。


(13)指派基线 allocated baseline 指在软件需求分析阶段结束时,经过正式评审和批准的软件需求的规格说明。指派基线是最初批准的指派配置标识。


(14)产品基线 product baseline 指在软件组装与系统测试阶段结束时,经过正式评审的批准的有关所开发的软件产品的全部配置项的规格说明。产品基线是最初批准的产品配置标识。


(15)软件配置 software configuration 指一个软件产品在软件生存周期各个阶段所产生的各种形式(机器可读或人工可读)和各种版本的文档、程序及其数据的集合。该集合中的每一个元素称为该软件产品软件配置中的一个配置项(configuration item)。


(16)释放 release 指在软件生存周期的各个阶段结束时,由该阶段向下阶段提交该阶段产品的过程。它也指将系统测试阶段结束时所获得的最终产品向用户提交的过程。后面这个过程也叫做交付(delivery)。


(17)配置控制委员会 configuration control board 一组负责评估和审批配置项的变更的人员,以确保所有的变更都是经过审核的。

原文转自:http://www.ltesting.net