资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,配置管理,CM-Configuration Management,主要内容,一,.,配置管理的概念,二,.,配置管理活动和流程,三,.,配置管理的技术手段和工具,一,.,配置管理的概念,1.,配置管理的定义,2.,配置管理功能概述,3.,配置管理中的专业术语,4.,配置管理给项目组带来的好处,1,为什么需要配置管理,忽视软件配置管理可能导致的混乱现象:,标识混乱,版本混乱,不能协同工作,已经解决的缺陷过后又出现错误,找不到最新修改了的源程序,找不到编程序的人,1.1,配置管理的定义,配置管理,(Configuration Management,,,CM),是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。配置管理的目标是记录软件产品的演化过程,确保软件开发者在软件生命中各个阶段都能得到精确的产品配置。,1.1.1,配置管理的通俗的解释,“,软件配置管理是围绕软件资产的管理。,”,1.1.2,软件项目配置管理的重要性,随着计算机软件的发展,软件开发已由最初的“程序设计阶段”经历了“软件系统阶段”进而演变为后来的“软件工程阶段”,软件的复杂性日益增大。此时,如果仍然把软件看成一个单一的个体,就无法解决所面临的问题,于是配置的概念逐渐引入软件领域,人们越来越重视软件配置的管理工作。,不懂软件项目的配置管理,就不懂软件开发管理,不对软件项目进行配置管理,就没有进行软件项目开发管理,1.2,配置管理功能概述,SCM,的四大功能领域,SCM,的三个应用层次,1.2.1 SCM,的四大功能领域,配置标识,配置变更控制,配置状态统计,配置审核,1.2.2,SCM,的三个应用层次,SCM,从应用层次上可以从低到高分为三级:,版本控制,以开发者为中心,过程驱动,1.3 SCM,中的专业术语,配置与配置项,配置数据库,基线,变更控制,配置审计,工作产品,软件产品,1.3.1,配置项,配置,(Configuration),与配置项,(CI),计算机程序,包括源代码和可执行程序,与计算机程序相对应的各种文档,计算机数据,包括计算机程序中包含的数据和系统初始化数据,1.3.2,基线,基线,项目开发过程的制品经过正式评审并被相关人员一致同意,可以作为以后项目开发的基础。对已经确定为基线的制品的修改必须要通过正式的变更控制流程。,在软件工程环境中,基线是指在软件开发过程中的里程碑,这些里程碑的标志是一项或多项经过正式的技术评审并一致认同的软件制品的提交。,1.3.3,配置数据库,配置数据库(配置库),项目建立和访问软件配置库,这个配置库主要用来对保存配置项和一些与软件配置管理相关的记录。,1.4,配置管理给项目组带来的好处,节约费用 缩短开发周期 减少施工费用,有利于知识库的建立 代码对象库,业务及经验库,规范管理 量化工作量考核 规范测试,加强协调与沟通,二,.,配置管理活动和流程,标识配置项,版本控制,变更控制,评审,统计,软件编译、连接和发放管理,2.1,标识配置项,标志配置项,对于配置项,可以给出一个比较简单的定义,既软件过程的输出信息可以分为三个主要类别:,(,1,)计算机程序(源代码和可执行程序),(,2,)描述计算机程序的文档(针对技术开发者和用户),(,3,)数据(包含在程序内部或外部)。,这些项包含了所有在软件过程中产生的信息,总称为软件配置项。”,除上述,3,个配置项以外,还包括项目管理的有关文件、信息记录等。,2.1.1,确定配置项,(,范例,),1,、系统规格说明,2,、软件项目计划,3,、软件需求规格说明书,a.,图形分析模型,b.,处理规格说明,c.,原型,d.,数学规格说明,4,初步用户手册,5,设计规格说明书,a.,数据设计描述,b.,体系结构设计描述,c.,模块设计描述,d.,接口设计描述,e.,对象描述(采用面向对象技术时),6,源代码清单,7,、,测试规格说明,a.,测试计划和步骤,b.,测试用例和记录的结果,8,、操作和安装手册,9,、可执行程序,a.,模块可执行代码,b.,连接的模块,10,、数据库描述,a.,模式和文件结构,b.,初始内容,11,、联机用户手册,12,、维护文档,a.,软件问题报告,b.,维护请求,c.,工程变更指令,13.,软件工程标准和规程,2.1.2,配置标识,(,一,),配置标识是软件生命周期中划分选择各类配置项、定义配置项的种类、为它们分配标识符的过程。配置项标识的重要内容就是对配置项进行标识和命名。,2.1.2,配置标识,(,二,),原则,1.,标识唯一,2.,同类配置项的标识方法统一,3.,可追溯性,4.,容易记忆,2.2,版本控制,版本控制是软件配置管理的核心功能。所有置于配置库中的元素都应自动予以版本的标识,并保证版本命名的唯一性。版本在生成过程中,自动依照设定的使用模型自动分支、演进。除了系统自动记录的版本信息以外,为了配合软件开发流程的各个阶段,我们还需要定义、收集一些元数据来记录版本的辅助信息和规范开发流程,并为今后对软件过程的度量做好准备。,对于配置库中的各个基线控制项,应该根据其基线的位置和状态来设置相应的访问权限。一般来说,对于基线版本之前的各个版本都应处于被锁定的状态,如需要对它们进行变更,则应按照变更控制的流程来进行操作,。,2.3,变更控制,变更管理的一般流程是:,(,1,)(获得)提出变更请求;,(,2,)由,CCB,审核并决定是否批准;,(,3,)(被接受)分配请求,修改人员提取配置项,进行修改;,(,4,)复审变化;,(,5,)提交修改后的配置项;,(,6,)建立测试基线并测试;,(,7,)重建软件的适当版本;,(,8,)复审(审计)所有配置项的变化;,(,9,)发布新版本。,在这样的流程中,配置管理员通过软件配置管理工具来进行访问控制和同步控制,而这两种控制则是建立在前面所描述的版本控制和分支策略的基础上的。,2.4,配置管理流程,配置管理中所涉及到的角色,配置管理的基本功能,配置管理的流程,2.1,配置管理中所设计到的角色,PM,CCB,CMO,DEV,SIO,2.3,配置管理工作的流程图,2.4,项目中配置管理具体操作流程,三,.,配置管理工具,常用的配置管理工具,各配置管理工具的比较,3.1,为什么要有配置管理工具,?,软件配置管理过程十分繁杂,管理对象错综复杂,如果是采用人工的办法不仅费时费力,还容易出错,产生大量的废品。,3.2,最早期的配置管理工具,CCC,SCCS(Source Code Control System),RCS(,Revision Control,System),3.3,流行的配置管理工具,Clear Case,Firefly,CVS,SVN,VSS,3.4,各配置管理工具的比较,并行开发支持,异地开发支持,跨平台开发支持,与开发工具集成,运行性能,易用性,安全性,3.4.1,各配置管理工具的比较,3.4.2,各配置管理工具的比较,3.4.3,各配置管理工具的比较,3.4.4,各配置管理工具的比较,
展开阅读全文