软件配置管理(SCM)简介qclrudse
一、引言qclrudse
软件开发过程中随着工作的进展会产生许多信息,如:需求分析说明、设计说明、源代码、可执行码、用户手册、测试用例、测试结果和这些内容形成的相应的技术文档;以及合同、计划、会议记录、报告等管理文档。另一方面,软件开发过程中出现变更是不可避免的。面对如此庞大且变动中的信息集合,如何使其有序高效地产生、存放、查找和利用成为软件工程项目十分突出的问题。如果没有一套严谨、科学的管理办法,出现混乱和差错几乎是必然的。软件配置管理正是为解决这个问题而提出的,它为软件开发提供了一套管理办法和活动原则,成为贯穿软件开发始终的重要质量保证活动。qclrudse
二、软件配置管理的概念qclrudse
要想掌握一种技术,首先要深刻理解他的概念。那么什么是软件配置管理呢?这个名词英文是Software Configuration Management,通常我们将它缩写为SCM。我们可以从以下几个角度理解和掌握它的真正含义:qclrudse
(1)《ISO/IEC 12207(1995)信息技术--软件生存期过程》:配置管理过程是在整个软件生存期中实施管理和技术规程的过程,它标识、定义系统中软件项并制定基线;控制软件项的修改和发行;记录和报告软件项的状态和修改申请;保证软件项的完整性、协调性和正确性;以及控制软件项的储存、装载和交付。qclrudse
(2)《ISO 9000-3(1997)质量管理和质量保证标准--第3部分:ISO 9001:1994 在计算机软件开发、供应、安装和维护中的使用指南》:软件配置管理是一个管理学科,它对配置项的开发和支持生存期给予技术上和管理上的指导。配置管理的应用取决于项目的规模、复杂程度和风险大小。qclrudse
(3)巴比齐(W.Babich):软件配置管理能协调软件开发,使得混乱减少到最小。软件配置管理是一种标识、组织和控制修改的技术,目的是最有效地提高生产率。qclrudse
(4)《GB/T 11457(1995)软件工程术语》:软件配置管理是标识和确定系统中配置项的过程,在系统整个生存周期内控制这些项的投放和更动,记录并报告配置的状态和更动要求,验证配置项的完整性和正确性。qclrudse
一言以蔽之,配置管理是门通过一系列技术、方法和手段来维护产品的历史、鉴别和定位产品独有的版本、在产品开发和发布阶段控制变化,从而使管理制度化、有效减少重复性工作、保证产品的质量和效率的科学。 qclrudse
qclrudse
三、软件配置管理术语qclrudse
软件配置管理是软件工程学科中涉及概念较多的一项内容,为了便于说明,下面给出一些相关术语的定义。qclrudse
(1)项目委托单位 project entrust organizationqclrudse
指为产品开发提供资金并通常也是(但有时也未必)确定产品需求的单位或个人。qclrudse
(2)项目承办单位 project undertaking organizationqclrudse
指为项目委托单位开发、购置或选用软件产品的单位或个人。qclrudse
(3)软件开发单位 software development organizationqclrudse
软件开发单位是指直接或间接受项目委托单位委托而直接负责开发软件的单位或个人。qclrudse
(4)用户 userqclrudse
指实际全胜软件来完成某项计算、控制或数据处理等任务的单位或个人。qclrudse
(5)软件 softwareqclrudse
指计算机程序及其有关的数据和文档,也包括固化了的程序。qclrudse
(6)重要软件 critical softwareqclrudse
指其故障会影响到人身安全、会导致重大经济损失或社会损失的软件。qclrudse
(7)软件生存周期 software life cycleqclrudse
指从软件系统设计对软件系统提出应用需求开始,经过开发,产生出一个满足需求的计算机软件系统,然后投入运行,直至该软件系统退役为止。其间经历系统分析与软件定义、软件开发以及系统的运行与维护等三个阶段。其中软件开发阶段一般又分成需求分析、概要设计、详细设计、编码与单元测试、组装与集成测试、系统测试以及安装与验收等七个阶段。qclrudse
(8)软件开发库 software development libraryqclrudse
指在软件生存周期的某一个阶段期间,存放与该阶段软件开发工作有关的计算机可读信息和人工可读信息的库。qclrudse
(9)软件受控库 software controlled libraryqclrudse
指在软件生存周期的某一个阶段结束时,存放作为阶段产品而释放的、与软件开发工作有关的计算机可读信息和人工可读信息的库。软件配置管理就是对软件受控库中的各软件项进行管理,因此软件受控库也叫做软件配置管理库。qclrudse
(10)软件产品库 software product libraryqclrudse
指在软件生存周期的系统测试阶段结束后,存放最终产品而后交付给用户运行或在现场安装的软件的库。qclrudse
(11)接口控制 interface controlqclrudse
指描述有关由一个或多个部门提供的两个或两个以上的配置项接口的所有功能特性和物理特性的过程。在实现之前,要确保对这些功能特性和物理特性所建议的修改已经过评审和批准。qclrudse
(13)功能基线 functional baselineqclrudse
指在系统分析与软件定义阶段结束时,经过正式评审和批准的系统设计规格说明书中对待开发系统的规格说明;或是指经过项目委托单位和项目承办单位双方签字同意的协议书或合同中所规定的对待开发软件系统的规格说明;或是由下级申请经上级同意或直接由上级下达的项目任务书中所规定的对待开发软件系统的规格说明。功能基线是最初批准的功能配置标识。qclrudse
(13)指派基线 allocated baselineqclrudse
指在软件需求分析阶段结束时,经过正式评审和批准的软件需求的规格说明。指派基线是最初批准的指派配置标识。qclrudse
(14)产品基线 product baselineqclrudse
指在软件组装与系统测试阶段结束时,经过正式评审的批准的有关所开发的软件产品的全部配置项的规格说明。产品基线是最初批准的产品配置标识。qclrudse
(15)软件配置 software configurationqclrudse
指一个软件产品在软件生存周期各个阶段所产生的各种形式(机器可读或人工可读)和各种版本的文档、程序及其数据的集合。该集合中的每一个元素称为该软件产品软件配置中的一个配置项(configuration item)。qclrudse
(16)释放 releaseqclrudse
指在软件生存周期的各个阶段结束时,由该阶段向下阶段提交该阶段产品的过程。它也指将系统测试阶段结束时所获得的最终产品向用户提交的过程。后面这个过程也叫做交付(delivery)。qclrudse
(17)配置控制委员会 configuration control boardqclrudse
一组负责评估和审批配置项的变更的人员,以确保所有的变更都是经过审核的。qclrudse
(18)配置标示qclrudse
配置管理的一个要素,由为系统所选的配置项及纪录它们功能和物理特性的技术文档组成;经核准的配置项的技术文档是由说明书、图、表等组成的。qclrudse
(19)配置控制qclrudse
配置管理的一个要素,由评估、协调、批准或不批准,和对正式创建配置标识的配置项实施变更等活动组成。qclrudse
(20)配置状态统计qclrudse
配置管理的一个要素,由为有效管理所需的记录和报告信息组成。这些信息包括经核准的配置标识表、需要变更的配置状态和实施经审核的变更状态组成。qclrudse
四、常用缩写qclrudse
CCB configuration control board 配置控制委员会qclrudse
CI configuration item 配置项qclrudse
CM configuration management 配置管理qclrudse
CMP configuration management 配置管理计划qclrudse
CR change request 变更请求qclrudse
FCA functional configuration audit 功能配置审核qclrudse
GUI graphical user interface 图形用户界面qclrudse
PCA physical configuration audit 物理配置审核qclrudse
SCM software configuration management 软件配置管理qclrudse
五、软件配置管理的任务qclrudse
软件配置管理是软件质量保证的重要一环,其主要责任是控制变化,同时,也负责配置项和软件的版本标识、软件配置的设计、以及配置中所有变化的报告。可以认为,软件配置管理的工作是要解决下列问题:qclrudse
(1) 采用什么方式去表示和管理数量不少的程序、文档等的各种版本?qclrudse
(2) 在软件产品交付用户之前和交付之后如何控制变更?实现有效的变更?qclrudse
(3) 谁有权批准变更以及安排变更的优先级?qclrudse
(4) 用什么方法估计变更可能引起的其它问题?qclrudse
这些问题的解决正是软件配置管理应完成的任务:配置标识、版本管理、变更管理、配置审核及配置报告。qclrudse
六、配置管理工具qclrudse
1、 太平洋公司代理的MKS公司开发的产品qclrudse
(1) Source Integrity(SI)--版本管理工具qclrudse
(2) Track Integrity--问题跟踪、变更管理工具qclrudse
2、 Rational公司的产品qclrudse
(1) ClearCase--版本控制工具qclrudse
(2) ClearQuery--变更管理工具qclrudse
3、 在国内,使用最多的版本管理工具可能就是微软的Studio Package中带的VSSqclrudse
4、 较早被使用的版本管理工具--PVCSqclrudse
七、结束语qclrudse
配置管理的过程实际是软件开发过程中质量管理的精髓所在,版本管理提高了开发者的工作效率,而变更控制则提高了整个开发团队的工作效率。两者的紧密结合,将为软件开发项目提供一道坚实的质量防火墙,使软件开发项目的质量管理过程规范而有效。
一、引言qclrudse
软件开发过程中随着工作的进展会产生许多信息,如:需求分析说明、设计说明、源代码、可执行码、用户手册、测试用例、测试结果和这些内容形成的相应的技术文档;以及合同、计划、会议记录、报告等管理文档。另一方面,软件开发过程中出现变更是不可避免的。面对如此庞大且变动中的信息集合,如何使其有序高效地产生、存放、查找和利用成为软件工程项目十分突出的问题。如果没有一套严谨、科学的管理办法,出现混乱和差错几乎是必然的。软件配置管理正是为解决这个问题而提出的,它为软件开发提供了一套管理办法和活动原则,成为贯穿软件开发始终的重要质量保证活动。qclrudse
二、软件配置管理的概念qclrudse
要想掌握一种技术,首先要深刻理解他的概念。那么什么是软件配置管理呢?这个名词英文是Software Configuration Management,通常我们将它缩写为SCM。我们可以从以下几个角度理解和掌握它的真正含义:qclrudse
(1)《ISO/IEC 12207(1995)信息技术--软件生存期过程》:配置管理过程是在整个软件生存期中实施管理和技术规程的过程,它标识、定义系统中软件项并制定基线;控制软件项的修改和发行;记录和报告软件项的状态和修改申请;保证软件项的完整性、协调性和正确性;以及控制软件项的储存、装载和交付。qclrudse
(2)《ISO 9000-3(1997)质量管理和质量保证标准--第3部分:ISO 9001:1994 在计算机软件开发、供应、安装和维护中的使用指南》:软件配置管理是一个管理学科,它对配置项的开发和支持生存期给予技术上和管理上的指导。配置管理的应用取决于项目的规模、复杂程度和风险大小。qclrudse
(3)巴比齐(W.Babich):软件配置管理能协调软件开发,使得混乱减少到最小。软件配置管理是一种标识、组织和控制修改的技术,目的是最有效地提高生产率。qclrudse
(4)《GB/T 11457(1995)软件工程术语》:软件配置管理是标识和确定系统中配置项的过程,在系统整个生存周期内控制这些项的投放和更动,记录并报告配置的状态和更动要求,验证配置项的完整性和正确性。qclrudse
一言以蔽之,配置管理是门通过一系列技术、方法和手段来维护产品的历史、鉴别和定位产品独有的版本、在产品开发和发布阶段控制变化,从而使管理制度化、有效减少重复性工作、保证产品的质量和效率的科学。 qclrudse
qclrudse
三、软件配置管理术语qclrudse
软件配置管理是软件工程学科中涉及概念较多的一项内容,为了便于说明,下面给出一些相关术语的定义。qclrudse
(1)项目委托单位 project entrust organizationqclrudse
指为产品开发提供资金并通常也是(但有时也未必)确定产品需求的单位或个人。qclrudse
(2)项目承办单位 project undertaking organizationqclrudse
指为项目委托单位开发、购置或选用软件产品的单位或个人。qclrudse
(3)软件开发单位 software development organizationqclrudse
软件开发单位是指直接或间接受项目委托单位委托而直接负责开发软件的单位或个人。qclrudse
(4)用户 userqclrudse
指实际全胜软件来完成某项计算、控制或数据处理等任务的单位或个人。qclrudse
(5)软件 softwareqclrudse
指计算机程序及其有关的数据和文档,也包括固化了的程序。qclrudse
(6)重要软件 critical softwareqclrudse
指其故障会影响到人身安全、会导致重大经济损失或社会损失的软件。qclrudse
(7)软件生存周期 software life cycleqclrudse
指从软件系统设计对软件系统提出应用需求开始,经过开发,产生出一个满足需求的计算机软件系统,然后投入运行,直至该软件系统退役为止。其间经历系统分析与软件定义、软件开发以及系统的运行与维护等三个阶段。其中软件开发阶段一般又分成需求分析、概要设计、详细设计、编码与单元测试、组装与集成测试、系统测试以及安装与验收等七个阶段。qclrudse
(8)软件开发库 software development libraryqclrudse
指在软件生存周期的某一个阶段期间,存放与该阶段软件开发工作有关的计算机可读信息和人工可读信息的库。qclrudse
(9)软件受控库 software controlled libraryqclrudse
指在软件生存周期的某一个阶段结束时,存放作为阶段产品而释放的、与软件开发工作有关的计算机可读信息和人工可读信息的库。软件配置管理就是对软件受控库中的各软件项进行管理,因此软件受控库也叫做软件配置管理库。qclrudse
(10)软件产品库 software product libraryqclrudse
指在软件生存周期的系统测试阶段结束后,存放最终产品而后交付给用户运行或在现场安装的软件的库。qclrudse
(11)接口控制 interface controlqclrudse
指描述有关由一个或多个部门提供的两个或两个以上的配置项接口的所有功能特性和物理特性的过程。在实现之前,要确保对这些功能特性和物理特性所建议的修改已经过评审和批准。qclrudse
(13)功能基线 functional baselineqclrudse
指在系统分析与软件定义阶段结束时,经过正式评审和批准的系统设计规格说明书中对待开发系统的规格说明;或是指经过项目委托单位和项目承办单位双方签字同意的协议书或合同中所规定的对待开发软件系统的规格说明;或是由下级申请经上级同意或直接由上级下达的项目任务书中所规定的对待开发软件系统的规格说明。功能基线是最初批准的功能配置标识。qclrudse
(13)指派基线 allocated baselineqclrudse
指在软件需求分析阶段结束时,经过正式评审和批准的软件需求的规格说明。指派基线是最初批准的指派配置标识。qclrudse
(14)产品基线 product baselineqclrudse
指在软件组装与系统测试阶段结束时,经过正式评审的批准的有关所开发的软件产品的全部配置项的规格说明。产品基线是最初批准的产品配置标识。qclrudse
(15)软件配置 software configurationqclrudse
指一个软件产品在软件生存周期各个阶段所产生的各种形式(机器可读或人工可读)和各种版本的文档、程序及其数据的集合。该集合中的每一个元素称为该软件产品软件配置中的一个配置项(configuration item)。qclrudse
(16)释放 releaseqclrudse
指在软件生存周期的各个阶段结束时,由该阶段向下阶段提交该阶段产品的过程。它也指将系统测试阶段结束时所获得的最终产品向用户提交的过程。后面这个过程也叫做交付(delivery)。qclrudse
(17)配置控制委员会 configuration control boardqclrudse
一组负责评估和审批配置项的变更的人员,以确保所有的变更都是经过审核的。qclrudse
(18)配置标示qclrudse
配置管理的一个要素,由为系统所选的配置项及纪录它们功能和物理特性的技术文档组成;经核准的配置项的技术文档是由说明书、图、表等组成的。qclrudse
(19)配置控制qclrudse
配置管理的一个要素,由评估、协调、批准或不批准,和对正式创建配置标识的配置项实施变更等活动组成。qclrudse
(20)配置状态统计qclrudse
配置管理的一个要素,由为有效管理所需的记录和报告信息组成。这些信息包括经核准的配置标识表、需要变更的配置状态和实施经审核的变更状态组成。qclrudse
四、常用缩写qclrudse
CCB configuration control board 配置控制委员会qclrudse
CI configuration item 配置项qclrudse
CM configuration management 配置管理qclrudse
CMP configuration management 配置管理计划qclrudse
CR change request 变更请求qclrudse
FCA functional configuration audit 功能配置审核qclrudse
GUI graphical user interface 图形用户界面qclrudse
PCA physical configuration audit 物理配置审核qclrudse
SCM software configuration management 软件配置管理qclrudse
五、软件配置管理的任务qclrudse
软件配置管理是软件质量保证的重要一环,其主要责任是控制变化,同时,也负责配置项和软件的版本标识、软件配置的设计、以及配置中所有变化的报告。可以认为,软件配置管理的工作是要解决下列问题:qclrudse
(1) 采用什么方式去表示和管理数量不少的程序、文档等的各种版本?qclrudse
(2) 在软件产品交付用户之前和交付之后如何控制变更?实现有效的变更?qclrudse
(3) 谁有权批准变更以及安排变更的优先级?qclrudse
(4) 用什么方法估计变更可能引起的其它问题?qclrudse
这些问题的解决正是软件配置管理应完成的任务:配置标识、版本管理、变更管理、配置审核及配置报告。qclrudse
六、配置管理工具qclrudse
1、 太平洋公司代理的MKS公司开发的产品qclrudse
(1) Source Integrity(SI)--版本管理工具qclrudse
(2) Track Integrity--问题跟踪、变更管理工具qclrudse
2、 Rational公司的产品qclrudse
(1) ClearCase--版本控制工具qclrudse
(2) ClearQuery--变更管理工具qclrudse
3、 在国内,使用最多的版本管理工具可能就是微软的Studio Package中带的VSSqclrudse
4、 较早被使用的版本管理工具--PVCSqclrudse
七、结束语qclrudse
配置管理的过程实际是软件开发过程中质量管理的精髓所在,版本管理提高了开发者的工作效率,而变更控制则提高了整个开发团队的工作效率。两者的紧密结合,将为软件开发项目提供一道坚实的质量防火墙,使软件开发项目的质量管理过程规范而有效。
![]() |
Austin Liu 刘恒辉
Project Manager and Software Designer E-Mail:lzhdim@163.com Blog:https://lzhdim.cnblogs.com 欢迎收藏和转载此博客中的博文,但是请注明出处,给笔者一个与大家交流的空间。谢谢大家。 |