1/1目录第一部分软件配置管理第一章软件配置管理概述1.概述2.软件配置管理a)SCM概念b)配置管理的功能c)配置管理的实施3.SCM的意义第二章SCM的基本概念1.配置管理的基本概念2.什么是配置管理a)版本控制b)变更控制c)变更请求管理d)基线管理e)构建管理f)发布管理g)状态报告h)配置审核3.产品经理可以得到什么好处呢?4.开发人员和测试人员可以得到什么好处呢?5.结束语PDF文件使用pdfFactoryPro试用版本创建第三章过程支持第一节软件配置管理过程及其关键活动一.角色责职1.项目经理(ProjectManager,PM):2.配置控制委员会(ConfigurationControlBoard,CCB):3.配置管理员(ConfigurationManagementOfficer,CMO):4.开发人员(Developer,DEV):二.过程描述1.项目计划阶段:2.项目开发维护阶段:三.关键活动1.配置项(SoftwareConfigurationItem,SCI)识别2.配置项的标识和控制3.工作空间管理4.版本控制5.变更控制6.状态报告7.配置审计第二节如何构造软件企业的配置管理方案1.引言2.组建配置管理方案构造小组3.对目标机构进行了解、评估4.配置管理工具及其提供商评估5.制订实施计划6.定义配置管理流程7.试验项目的实施8.全面实施9.结束语PDF文件使用pdfFactoryPro试用版本创建第三节SCM的最佳实践第四节软件配置管理实施体会第三章基于CMM的SCM1.CMM(软件能力成熟度模型)与SCM(软件配置管理)2.基于CMM/CMMI的配置管理a)配置管理内容的逻辑关系b)配置和配置项c)基线d)基线、配置、配置项的关系e)变更管理f)配置库管理g)配置报告h)配置审计i)项目实施指南j)10配置管理部署模型第四章配置管理系统中的概念1.简介2.CM体系用户的有关问题3.配置管理系统概念光谱图4.配置管理系统的未来5.结论6.附录:CM体系总览7.配置管理的商业模型PDF文件使用pdfFactoryPro试用版本创建第五章配置管理工具评估/选择过程1SCMtool比较VSSCVSClearCase2如何选择配置管理工具功能是否符合实际需求,是否符合团队特点性能是否满意费用是否可以接受售后服务如何第六章实用配置管理系统及工具JBCMClearCase1.RationalClearCase介绍2.ClearCase的功能和特点3.ClearCase的组件4.ClearCase结构与设置5.ClearCase四大功能详述VSS1.前言2.一些有用的设置3.什么情况下会出现并行开发4.文件共享(sharefiles)的概念5.分支操作(branching)6.文件归并(mergefiles)PDF文件使用pdfFactoryPro试用版本创建评说VSS8.总结9.说明CVS1.CVSNT的安装及配置2.WinCVS的配置与使用方法第二部分相关资源第一章一些相关概念1.基线的理解2.配置状态报告及申计3.配置管理标识规范4.配置管理经验5.经验谈:第二章相关问题1.软件配置管理2.CVS工具常见问题第三章配置管理流程1概要1.1内容1.2适用范围1.3术语和缩略语2相关人权责PDF文件使用pdfFactoryPro试用版本创建项目经理(ProjectManager,PM)2.2配置控制委员会(ConfigurationControlBoard,CCB)2.3配置管理员(ConfigurationManagementOfficer,CMO)2.4程序库管理员(ProgramLibrarian,PL)2.5开发人员(Developer)2.6测试人员(Tester)2.7软件质量保证员(SoftwareQualityAssurance,SQA)3实施细则3.1CCB的成立3.2确定配置策略3.3制定配置管理计划3.4配置项标识规则3.5配置库管理3.6配置项和基线管理3.7配置变更控制3.8配置状态报告3.9配置审核3.10发行管理第四章解析本土化软件配置管理1.迅速发展的软件配置管理2.配置管理的三大误区3.人--为何如此重要?a)配置管理员应该做什么b)你是合格的配置管理员吗PDF文件使用pdfFactoryPro试用版本创建)配置管理员的困惑d)配置管理员的最佳实践4.实施--从老板的角度思考a)什么是成功的配置管理b)配置管理流程再造c)选择合适的配置管理工具d)正确实施配置管理工具5.配置管理的未来结束语前言本书是收集网上有关软件配置管理资料,经过整理而来。阅读时,没有顺序之限制,可以跳阅。PDF文件使用pdfFactoryPro试用版本创建第一部分软件配置管理第一章软件配置管理概述1概述没有任何一个行业像计算机工业发展的如此迅速。在今天的软件产业更是如此,技术和产品的更新日新月异令,所有技术人员和管理人员都感到明显的压力,这种压力集中体现在两个方面:提高产品质量,缩短面市时间。现在软件产品的开发,对市场投放速度的要求成倍增长;Internet/Intranet应用的发展改变着软件的开发,传递,和分发方式;不断提高的软件质量的要求,使越来越多的软件机构感到规范开发迫切性;多平台,多操作系统,多开发工具,多对象类型,多计算机语言等,使复杂的软件开发环境更加难以控制。我国信息技术产业的蓬勃发展促使各种先进技术和产品在国内被广泛的应用,为国内的软件开发注入了活力。然而,值得注意的是,各种先进的操作系统,开发工具等在带来效益的同时,也使得我们的开发环境日益复杂化而难以管理。而无组织的开发环境,会导致潜在问题的产生,这些问题一般难以发现,直至出现影响整个系统的致命错误,但此时往往又为时晚矣。软件工程使软件开发从手工作坊上升到团队开发模PDF文件使用pdfFactoryPro试用版本创建式,其开发工作围绕着软件生命周期的分析设计、开发、测试、运行维护四个阶段进行。通过使用软件工程的方法及工具,可以避免开发过程中许多可能出现的错误,提高软件的可重用性,降低软件测试和维护中的工作量,从而大大提高软件产品的质量,缩短开发周期。在团队开发的模式中,软件开发管理就显得更加重要,其管理的好坏将直接影响到软件产品的质量。如果缺乏对软件开发的统一管理,势必造成以下问题的出现:●由于开发经费及开发时间的限制,不可能一次开发就解决所有问题,许多问题有待维护阶段解决,因此带来的是软件产品的不断升级,而维护和升级所必需的文档往往非常混乱;●开发商开发过程缺乏规范化的管理,即使有源程序文档也由于说明不详细而不能对产品进行进一步的功能扩充,用户不得不再投入大量的经费去开发新产品,浪费大量的人力、物力和时间;●在软件的团队式开发中,人员流动在所难免,如管理不善,有些人员的流动将对开发产生致命的影响。特别是软件开发管理人员或核心成员的流失,有可能造成无法确定软件产品中各模块所处的状态及阶段,使软件产品的版本出现混乱,甚至可能泄漏公司的核心机密;●管理不善致使没经测试的软件加入到产品中,不但影响产品的质量,有时还会导致致命的错误,造成不可挽回的损失;PDF文件使用pdfFactoryPro试用版本创建●用户与开发商没有有效的沟通手段,用户投入了开发费用后,得到的是有关可执行程序以及一堆杂乱无章的文档,即使是较好的文档,对不熟悉开发过程的专业人员来说也无从下手,更谈不上日后的维护和升级,用户的利益无法保证;●软件生产达不到规模化,无法生产出软件企业内部的软件标准构件仓库,使应用软件产品总处于一种低水平、重复开发的状态,不但时间得不到保证,而且成本也无法降低,使产品没有市场竞争力。这些问题在实际开发中表现为,项目组成员沟通困难,软件重用率低下,开发人员各自为政,代码冗余度高,文档不健全等;造成的结果是:数据丢失,开发周期漫长,产品可靠性差,质量低劣,软件维护困难,用户抱怨使用不便,项目风险增加等。2软件配置管理缺乏软件开发管理,会导致种种问题的出现,这些问题使得最终开发出来的软件产品的质量难以保证,应用难以稳定。那么,怎样进行软件开发管理才能生产出高质量的软件产品呢?在ISO9000质量管理和质量保证标准中,制定了《在软件开发、供应和维护中的使用指南》标准,该标准除对软件生命周期的各个阶段做了严格的规定外,还在其质量体系中规定了与阶段无关的支持活动,其中软件配置管理(SoftwareConfigurationManagement,简称SCM)被放在PDF文件使用pdfFactoryPro试用版本创建首位。2.1SCM概念早在七十年代初期加利福利亚大学的LeonPresser教授就撰写了一篇论文,提出控制变更和配置的概念,之后在1975年,他成立了一家名为SoftTool的公司,开发了自己的配置管理工具:CCC,这也是最早的配置管理工具之一。之后,随着软件开发规模的逐渐增大,越来越多的公司和团队意识到了软件配置管理的重要性,而相应的软件配置管理工具也如雨后春笋一般,纷纷涌现,比较有代表性的有:MarcRocking的SCCS(SourceCodeControlSystem)和WalterItchy的RCS(RevisionControlSystem),这两种工具对日后的配置管理工具的发展做出了重大的贡献,目前绝大多数广泛使用的配置管理工具基本上都是基于这两者的设计思想和体系架构。什么是软件配置管理呢?软件配置管理有多种定义,在1986年出版的WayneBabyish《SoftwareConfigurationManagement:CoordinatingforTeamProductivity》一书中把软件配置管理描述为对软件开发组所建立的软件的修改进行标识、组织和控制的艺术,其目标是减少错误,提高生产力。这个定义比较简单,而在1993年出版的SteveMcConnell的《CodeComplete》一书中,从另一个角度对软件配置管理进行了定义:配置管理能够系统地处理变更,从而使得软件系统可以随时保持其完整性。配置管理又可称PDF文件使用pdfFactoryPro试用版本创建为'变更控制',可以用来评估提出的变更请求,跟踪变更,并保存系统在不同时间的状态。软件配置管理是一套规范、高效的软件开发基础结构。作为管理软件开发过程有效的方法,SCM早已被发达国家软件产业的发展和实践所证明。SCM可以系统地管理软件系统中的多重版本;全面记载系统开发的历史过程,包括为什么修改,谁作了修改,修改了什么;管理和追踪开发过程中危害软件质量以及影响开发周期的缺陷和变化。SCM对开发过程进行有效地管理和控制,完整、明确地记载开发过程中的历史变更,形成规范化的文档,不仅使日后的维护和升级得到保证,而且更重要的是,这还会保护宝贵的代码资源,积累软件财富,提高软件重用率,加快投资回报。SCM是通往ISO9000和SEICMM标准的一块基石。在软件开发团队中,正确地采用、实施软件配置管理系统,必将提高生产力,增强对整个项目的控制,改善软件产品的质量,从容面对快速面市和产品质量的双重压力。软件配置管理系统的实施,一般来讲要考虑两个方面的因素:流程和工具。流程和工具是相辅相成的,流程起决定性作用,它确定了管理的规则和方法,工具用来将变更存储在一个中央存储库中,可以重现任一时期的历史版本,一个好的工具可以提高效率,是贯彻实施流程的必要手