软件项目的配置管理课件.ppt
《软件项目的配置管理课件.ppt》由会员分享,可在线阅读,更多相关《软件项目的配置管理课件.ppt(114页珍藏版)》请在三一办公上搜索。
1、2023/5/13,1,软件项目的配置管理,2023/5/13,2,8.1 软件配置及其管理的概念8.2 配置管理活动和流程8.3 配置管理需求8.4 版本管理8.5 变更管理8.6 配置状态监测与报告8.7 基于配置管理的软件项目管理8.8 配置管理的技术手段和工具,第八章 目录,2023/5/13,3,8.1 软件配置及其管理的概念8.2 配置管理活动和流程8.3 配置管理需求8.4 版本管理8.5 变更管理8.6 配置状态监测与报告8.7 基于配置管理的软件项目管理8.8 配置管理的技术手段和工具,第八章 目录,2023/5/13,4,8.1.1 CMM2的配置管理概念8.1.2 IEE
2、E的配置管理定义8.1.3 配置管理概述8.1.4 配置管理活动的作用,8.1 软件配置及其管理的概念,2023/5/13,5,配置的概念,配置的概念来自硬件软件工程师是如何处理接口的?广而言之:软件的变化可以发生在一秒钟内软件的变化可以发生在每一秒钟软件开发过程下一秒钟是不确定的情况将会怎样?怎么办?,2023/5/13,6,软件项目开发管理的新需求,你在一家小公司做软件工程师,开始的时候,你只有一个人,配了2个助手。你们研究了一种算法(例如:图象压缩、数据加密等),编写了一个实现模块。有一天老板看到了你的演示,认为很有市场潜力,可以结合进公司正在给某行业用户正在准备开发的系统中,成为该系统
3、的核心技术或一个别人没有的卖点。下一周,你的队伍增加到14(你的老板准备就此豪赌一把了),与你3个人的小组不同的是,公司从其他部门为你配备了系统分析师,还有文档编制员、测试员。你的核心模块已经被大量的用户功能所包装,成为一个行业应用系统,并开始给用户试用,这是你的系统的第一版。3个月后,公司决定把系统升级到第二版,除增加了许多新的功能外,公司决定支持多平台,同时,为了提高系统的性能和效率,准备采用第三方厂家的中间件,取代自己做的接口。第一版的缺陷修改,也要反映到第二版中。第2版经过2个多月的开发,最终推向了市场。公司的这个产品不但被用户所欢迎,也被一家大公司所看中(就像IBM收购了Lotus和
4、Rational、Informix一样),你们的产品,正好可以填补这家大公司产品线的空缺,你所在的公司被这家公司买去了。,2023/5/13,7,公司为你的项目组派来了产品经理、项目经理。公司决定这个产品的测试,由公司总部独立的测试部门承担。同时,公司决定把项目组增加到50人,其中有20多人并不在你所在的城市。在新公司里,产品管理、项目管理、测试、质量等等,都与你过去的环境和做法不同,特别不同的是,公司准备开发的第3版系统与公司原有的产品要进行融合,使他们看上去是一家出来的不同的兄弟和姐妹。与软件的第1版、第2版相比,你的项目管理有什么不同?随着这个产品的演变,项目发生了四个变化:(1)系统的
5、复杂性发生了很大变化;(2)用于开发该系统的项目环境发生了很大变化;(3)在不同的项目生命周期内,项目控制本身的要求和力度发生了很大变化;(4)由于组织的变化,管理流程、人员、方式发生了很大变化。前二类变化要求项目的组织和管理适应系统扩展的需要,后二种变化则要求项目管理具有适应性和灵活性。,2023/5/13,8,缺乏管理所造成的问题,软件开发人员之间缺乏必要的交流产品升级和维护所必需的程序和文档非常混乱开发过程中的人员流动经常发生因管理不善致使未经测试的软件加入到产品中项目开发状态不清楚软件生产达不到规模化,2023/5/13,9,软件配置管理SCM(Software Configurati
6、on Management),软件配置管理(SCM)是指在开发过程中各阶段,管理 计算机程序演变的学科,它作为软件工程的关键元素,已经成为软件开发和维护的重要组成部分 SCM提供了结构化的,有序化的,产品化的管理软件工程的方法。它涵盖了软件生命周期的所有领域并影响所有数据和过程。配置管理是指用于控制系统一系列变化的学科。通过一系列技术,方法和手段来维护产品的历史,鉴 别和定位产品独有的版本,并在产品的开发和发布阶段 控制变化。通过有序管理和减少重复性工作,配置管理保证了生 产的质量和效率。,2023/5/13,10,我们知道,在软件建立时,变更是不可避免的,而变更加剧了项目中软件开发者之间的混
7、乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。因此,从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。SCM通过以下方法,强化软件的可靠性和质量:(1)提供用于识别和控制文档、代码、接口、数据库的结构框架,适用于软件开发生命周期的所有阶段;(2)全面支撑某一特定开发及维护工作方法,能够适应各种类型的需求、标准、政策、组织机构以及相关的管理策略;(3)针对特定的基线状态、变更控制、测试、发布版本或审查活动,生成相应的管理信息和产品信息。因此,从某种意义上讲,SCM本质上是变更的管理。SCM使软件产品和过程
8、的变更变为受控的和可预见的,它要求并在适当的工具支持下能够做到这样几点:(1)谁做的变更?(2)软件有什么变更?(3)什么时间做的变更?(4)为何要变更?,2023/5/13,11,软件项目的配置管理,随着计算机软件的发展,软件开发已由最初的“程序设计阶段”经历了“软件系统阶段”进而演变为后来的“软件工程阶段”,软件的复杂性日益增大。此时,如果仍然把软件看成一个单一的个体,就无法解决所面临的问题,于是配置的概念逐渐引入软件领域,人们越来越重视软件配置的管理工作。不懂软件项目的配置管理,就不懂软件开发管理不对软件项目进行配置管理,就没有进行软件项目开发管理,2023/5/13,12,软件配置管理
9、是CMM2中6个关键过程域的第6个关键域。CMM2认为,SCM 的目的是为了建立和维护软件开发过程中各种制品的完整性和一致性,包括以下内容:对软件产品配置的标志和识别系统地控制对处于配置管理下的各种软件制品的修改和更新维护软件开发过程中的各种制品的一致性和可跟踪性,8.1.1 CMM2的配置管理概念,2023/5/13,13,SCM 的目标,目标1:软件配置管理活动被定义和计划目标2:软件开发过程中的制品被识别、控制和管理目标3:对于处于配置管理下的软件制品的修改被控制目标4:与软件制品相关的项目组和成员应该被通知制品的目前状态和被修改的信息,从对配置目的的定义可以看出,CMM2的配置管理应包
10、括这样一些活动:标识给定时间点的软件配置(即所选择的工作产品及其描述),系统地控制这些配置的更改,并在软件生命周期中保持这些配置的完整性和可跟踪性。CMM2认为,受控于配置管理的工作产品,包括交付给用户的软件产品(如:代码等),以及生成软件产品所需要的有关项(如:项目管理文件)。CMM2的配置管理活动最主要的内容是:建立软件基线库,该库存储开发的软件基线。通过软件配置管理的更改控制和配置审核功能,系统地控制基线变更和由软件基线库生成的软件产品版本。,2023/5/13,14,要达到 CMM 规定的 SCM要求所需具备的能力具有对软件基线产品有管理权限的组织已经建立,例如:软件配置管理委员会;协
11、调和实现软件配置管理的组织已经建立;为进行软件配置管理所需要的各项资源已经分配;软件配置管理组织里的成员已经接受了软件配置目标、流程、方法方面的培训;软件项目组或是其他的相关的部门经过培训,可以执行他们的软件配置管理活动;,2023/5/13,15,CMM 中对SCM 规定的活动,根据文档化的流程,项目软件配置管理计划已准备完毕;文档化的已获批准的软件配置管理计划可用作以后软件配置管理活动的基础;软件配置管理库已经创建,并可用作进入基线的软件制品的存贮库;处于软件配置管理下的软件制品被标志和识别;对于配置项的变更请求和问题报告被初始化、计划、评审、批准并根据文化化的流程对其进行跟踪;,2023
12、/5/13,16,对于进入基线的制品的修改必须遵循文档化的流程;发布的产品必须从软件配置库中取出,并且产品发布的流程须依照文档化的流程和规定;根据文档化的流程和规定,软件配置项的状态被记录和跟踪;记录软件配置管理活动和软件基线内容的报告被建立,并通知受到影响的项目组和个人;根据文档化的流程进行软件制品基线的评审;,CMM 中对SCM 规定的活动,2023/5/13,17,组织规定和相关责任,项目级配置管理项目配置经理(Project Configuration Manager)与软件配置管理计划变更控制委员会(Change Control Board)组织级配置管理组织配置管理库(Organi
13、zational Configuration Management Cell)负责项目完成后的软件配置管理活动管理组织级的文档,2023/5/13,18,IEEE标准729-1983就配置管理的内容进行了规范的定义:(1)标识:识别产品的结构、产品的构件及其类型,为其分配唯一的标识符,并以某种形式提供对它们的存取。(2)控制:通过建立产品基线,控制软件产品的发布和在整个软件生命周期中对软件产品的修改。例如,它将解决哪些修改会在该产品的最新版本中实现的问题。(3)状态统计:记录并报告构件和修改请求的状态,并收集关于产品构件的重要统计信息。例如,它将解决修改这个错误会影响多少个文件的问题。(4)审
14、计和审查:确认产品的完整性并维护构件间的一致性,即确保产品是一个严格定义的构件集合。例如,它将解决目前发布的产品所用的文件的版本是否正确的问题。(5)生产:对产品的生产进行优化管理。它将解决最新发布的产品应由哪些版本的文件和工具来生成的问题。(6)过程管理:确保软件组织的规程、方针和软件周期得以正确贯彻执行。它将解决要交付给用户的产品是否经过测试和质量检查的问题。(7)小组协作:控制开发统一产品的多个开发人员之间的协作。例如,它将解决是否所有本地程序员所做的修改都已被加入到新版本的产品中的问题。,8.1.2 IEEE的配置管理定义,2023/5/13,19,CMM2的定义比较抽象,IEEE的定
15、义就比较具体。结合各体系的定义和要求,我们下面具体来讨论配置管理的概念。,8.1.3 配置管理功能概述,2023/5/13,20,配置标识或者又称为配置需求,包括标识软件系统的结构,标识独立部件,并使它们是可访问的。配置标识的目的,是在整个生命周期中标识系统各部件并提供对软件过程及其软件产品的跟踪能力。它回答:什么是受控的?配置变更控制包括在软件生命周期中控制软件产品的发布和变更,目的是建立确保软件产品质量的机制。它回答:受控产品怎样变更?谁控制变更?何时接受,恢复,验证变更?配置状态统计包括记录和报告变更过程,目标是不间断记录所有基线项的状态和历史,并进行维护,它解决以下问题:系统已经做了什
16、么变更?此问题将会对多少个文件产生影响?配置变更控制是针对软件产品,状态统计针对软件过程。因此,二者的统一就是对软件开发(产品、过程)的变更控制。配置审核将验证软件产品的构造是否符合需求、标准、或合同的要求,目的是根据SCM的过程和程序,验证所有的软件产品已经产生并有正确标识和描述,所有的变更需求都已解决。它回答:系统和需求是否吻合?是否所有变更都是在版本控制下?,SCM的四大功能领域,2023/5/13,21,SCM从应用层次上可以从低到高分为三级:版本控制、以开发者为中心、过程驱动。版本控制主要应用于个人独立开发或小组开发,它可以控制任何文件的版本、实现分支和归并功能、进行文本比较、标记注
17、释和版本报告信息,主要工具有MS的Visual SourceSafe及Intersolv PVCS。以开发者为中心主要应用于部门级开发,它可用于软件维护、不断增加的开发任务、并行开发、QA及测试,它面向大型团队、利于交流、能最大限度地利用人力资源,主要工具为Rational ClearCase及MKS Source Integrity。过程驱动主要使用于企业级开发,着重解决新的工具引入、IT审核、管理报告、复杂的生命周期、应用工具包、集成解决方案、资料库等问题,实现真正规范的团队开发,主要工具为Platinum Technology CCC/Harvest。,SCM的三个应用层次,2023/5
18、/13,22,SCM 中的专业术语,配置(Configuration)与配置项(Configuration Item)在软件开发过程中生成各种制品的总和叫做这个项目的软件配置 Roger S.Pressman,1997计算机程序,包括源代码和可执行程序与计算机程序相对应的各种文档计算机数据,包括计算机程序中包含的数据和系统初始化数据,2023/5/13,23,SCM 中的专业术语,基线项目开发过程的制品经过正式评审并被相关人员一致同意,可以作为以后项目开发的基础。对已经确定为基线的制品的修改必须要通过正式的变更控制流程。在软件工程环境中,基线是指在软件开发过程中的里程碑,这些里程碑的标志是一项
19、或多项经过正式的技术评审并一致认同的软件制品的提交。,2023/5/13,24,SCM 中的专业术语,配置数据库(软件制品基线库)项目建立和访问软件制品库,这个制品库主要用来对保存配置项和一些与软件配置管理相关的记录。目前比较好的配置管理工具:Clearcase(Rational),Notes/Domino(Lotus),PVCS(Merant)and VSS(Microsoft).,2023/5/13,25,配置管理库(1),基线库的结构(VOB),2023/5/13,26,配置管理库的具体实现项目文件夹项目文件件是项目开发过程中由项目组创建和维护的制品归档库。软件配置管理负责管理和控制项目
20、文件夹,并对文件夹中的内容进行评审;项目经理负责监督项目的软件配置管理执行;软件质量工程师负责对项目文件夹的内容进行评审;,配置管理库,2023/5/13,27,配置管理库,项目文件夹的内容项目开发过程中的所有信息,包括文档、工作制品和各种周报、月报、评审等;与外部的交流信息,例如与客户、第三方的通讯交流记录等;其他交流会议记录,例如:重要的Email,传真,信件等;,2023/5/13,28,配置管理库,权限管理 项目组内部的权限管理与分配 对其他项目组的开放权限管理与分配 对其他用户或是第三方的权限管理与分配,2023/5/13,29,8.1.4 配置管理活动的作用,配置管理与质量管理 在
21、质量体系的诸多支持活动中,配置管理处在支持活动的中心位置。质量管理虽然也有过程的验证,但配置管理只要定义的配置项够细,则它可以管理软件开发的全过程,细到每一个模块、每一个文档、每一条工程记录的变化。因此,配置管理从基础层开始,有机地把其它支持活动结合起来,形成一个整体,相互促进,相互影响,有力地保证了质量体系的实施。,2023/5/13,30,配置管理给项目组带来的好处,(1)节约费用 缩短开发周期 减少施工费用(2)有利于知识库的建立 代码对象库 业务及经验库(3)规范管理 量化工作量考核 规范测试(4)加强协调与沟通,2023/5/13,31,8.1 软件配置及其管理的概念8.2 配置管理
22、活动和流程8.3 配置管理需求8.4 版本管理8.5 变更管理8.6 配置状态监测与报告8.7 基于配置管理的软件项目管理8.8 配置管理的技术手段和工具,第八章 目录,2023/5/13,32,8.2.1 主要配置管理活动8.2.2 项目经理的配置管理流程,8.2 配置管理活动和流程,2023/5/13,33,8.2.1 主要配置管理活动,标志配置项变更控制版本控制评审统计软件编译、连接和发放管理,2023/5/13,34,RUP描述的配置管理的主要活动如下图所示:,对于一个软件项目组来说,开展一个项目组的配置管理,大致可以分为以下步骤:,对于一个软件项目组来说,开展一个项目组的配置管理,大
23、致可以分为以下步骤:(1)拟订项目的配置管理计划;(2)创建项目的配置管理环境;(3)进行项目的配置管理活动,包括:标识配置项;管理基线和发布活动;监测与报告配置状态;管理变更请求。(1)和(2)可以看成配置管理的准备,(3)是配置管理的具体实施。配置管理的具体实施,在RUP定义为四个管理活动。,2023/5/13,35,配置项(Software Configuration Item,SCI)识别,对于配置项,可以给出一个比较简单的定义,既软件过程的输出信息可以分为三个主要类别:(1)计算机程序(源代码和可执行程序)(2)描述计算机程序的文档(针对技术开发者和用户)(3)数据(包含在程序内部或
24、外部)。这些项包含了所有在软件过程中产生的信息,总称为软件配置项。”在CMM2中,除上述3个配置项以外,还包括项目管理的有关文件、信息记录等。由此可见,配置项的识别是配置管理活动的基础,也是制定配置管理计划的重要内容。,2023/5/13,36,配置项(Software Configuration Item,SCI)识别,软件配置管理认为软件的开发过程是一个不断变化着的过程,为了在不严重阻碍合理变化的情况下来控制变化,软件配置管理引入了“基线(Base Line)”这一概念。IEEE对基线的定义是这样的:“已经正式通过审核批准的某规约或产品,它因此可作为进一步开发的基础,并且只能通过正式的变化
25、控制过程改变。”所以,根据这个定义,我们在软件的开发流程中,也可以把所有需要加以控制的配置项分为基线配置项和非基线配置项两类,例如:基线配置项可能包括所有的设计文档和源程序等;非基线配置项可能包括项目的各类计划和报告等。有关配置项的内容,我们将在后面,专门花一节的篇幅,进行讨论。,2023/5/13,37,配置项的标识和控制,所有配置项都应按照相关规定统一编号,按照相应的模板生成,并在文档中的规定章节(部分)记录对象的标识信息。在引入软件配置管理工具进行管理后,这些配置项都应以一定的目录结构保存在配置库中。所有配置项的操作权限应由配置管理员严格管理,基本原则是:基线配置项向软件开发人员开放读取
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 项目 配置管理 课件
链接地址:https://www.31ppt.com/p-4746325.html