软件项目管理与团队实践48_第1页
软件项目管理与团队实践48_第2页
软件项目管理与团队实践48_第3页
软件项目管理与团队实践48_第4页
软件项目管理与团队实践48_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八章 软件项目的配置管理18.1 软件配置及其管理的概念8.2 配置管理活动和流程8.3 配置管理需求8.4 版本管理8.5 变更管理8.6 配置状态监测与报告8.7 基于配置管理的软件项目管理第八章2配置的概念配置的概念来自硬件软件工程师是如何处理接口的?广而言之:软件的变化可以发生在一秒钟内软件的变化可以发生在每一秒钟软件开发过程下一秒钟是不确定的情况将会怎样?怎么办?3软件项目开发管理的新需求你在一家小公司做软件工程师,开始的时候,你只有一个人,配了2个助手。你们研究了一种算法(例如:图象压缩、数据加密等),编写了一个实现模块。有一天老板看到了你的演示,认为很有市场潜力,可以结合进公司

2、正在给某行业用户正在准备开发的系统中,成为该系统的核心技术或一个别人没有的卖点。下一周,你的队伍增加到14(你的老板准备就此豪赌一把了),与你3个人的小组不同的是,公司从其他部门为你配备了系统分析师,还有文档编制员、测试员。你的核心模块已经被大量的用户功能所包装,成为一个行业应用系统,并开始给用户试用,这是你的系统的第一版。3个月后,公司决定把系统升级到第二版,除增加了许多新的功能外,公司决定支持多平台,同时,为了提高系统的性能和效率,准备采用第三方厂家的中间件,取代自己做的接口。第一版的缺陷修改,也要反映到第二版中。第2版经过2个多月的开发,最终推向了市场。公司的这个产品不但被用户所欢迎,也

3、被一家大公司所看中(就像IBM收购了Lotus和Rational、Informix一样),你们的产品,正好可以填补这家大公司产品线的空缺,你所在的公司被这家公司买去了。 4公司为你的项目组派来了产品经理、项目经理。公司决定这个产品的测试,由公司总部独立的测试部门承担。同时,公司决定把项目组增加到50人,其中有20多人并不在你所在的城市。在新公司里,产品管理、项目管理、测试、质量等等,都与你过去的环境和做法不同,特别不同的是,公司准备开发的第3版系统与公司原有的产品要进行融合,使他们看上去是一家出来的不同的兄弟和姐妹。 与软件的第1版、第2版相比,你的项目管理有什么不同? 随着这个产品的演变,项

4、目发生了四个变化: (1)系统的复杂性发生了很大变化; (2)用于开发该系统的项目环境发生了很大变化; (3)在不同的项目生命周期内,项目控制本身的要求和力度发生了很大变化; (4)由于组织的变化,管理流程、人员、方式发生了很大变化。 前二类变化要求项目的组织和管理适应系统扩展的需要,后二种变化则要求项目管理具有适应性和灵活性。5缺乏管理所造成的问题软件开发人员之间缺乏必要的交流产品升级和维护所必需的程序和文档非常混乱开发过程中的人员流动经常发生因管理不善致使未经测试的软件加入到产品中项目开发状态不清楚软件生产达不到规模化 6软件配置管理SCM(Software Configuration M

5、anagement) 软件配置管理(SCM)是指在开发过程中各阶段,管理 计算机程序演变的学科,它作为软件工程的关键元素,已经成为软件开发和维护的重要组成部分 SCM提供了结构化的,有序化的,产品化的管理软件工程的方法。它涵盖了软件生命周期的所有领域并影响所有数据和过程。配置管理是指用于控制系统一系列变化的学科。 通过一系列技术,方法和手段来维护产品的历史,鉴别和定位产品独有的版本,并在产品的开发和发布阶段控制变化。 通过有序管理和减少重复性工作,配置管理保证了生产的质量和效率。7SCM通过以下方法,强化软件的可靠性和质量:(1)提供用于识别和控制文档、代码、接口、数据库的结构框架,适用于软件

6、开发生命周期的所有阶段;(2)全面支撑某一特定开发及维护工作方法,能够适应各种类型的需求、标准、政策、组织机构以及相关的管理策略;(3)针对特定的基线状态、变更控制、测试、发布版本或审查活动,生成相应的管理信息和产品信息。 因此,从某种意义上讲,SCM本质上是变更的管理。 SCM使软件产品和过程的变更变为受控的和可预见的,它要求并在适当的工具支持下能够做到这样几点:(1)谁做的变更?(2)软件有什么变更?(3)什么时间做的变更?(4)为何要变更?8软件项目的配置管理 在软件开发过程中,变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更

7、正确实现并向其他有关人员报告变更。 因此,从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。不懂软件项目的配置管理,就不懂软件开发管理不对软件项目进行配置管理,就没有进行软件项目开发管理9软件配置管理是CMM2中6个关键过程域的第6个关键域。CMM2认为,SCM 的目的是为了建立和维护软件开发过程中各种制品的完整性和一致性,包括以下内容:对软件产品配置的标志和识别系统地控制对处于配置管理下的各种软件制品的修改和更新维护软件开发过程中的各种制品的一致性和可跟踪性8.1.1 配置管理概念 10SCM 中的专业术语配置项(Configuration I

8、tem) 在软件开发过程中生成各种制品的总和叫做这个项目的软件配置 Roger S. Pressman, 1997配置项包括:计算机程序,包括源代码和可执行程序与计算机程序相对应的各种文档计算机数据,包括计算机程序中包含的数据和系统初始化数据软件开发过程数据与文件11SCM 中的专业术语基线项目开发过程的制品经过正式评审并被相关人员一致同意,可以作为以后项目开发的基础时,称为基线。对已经确定为基线的制品的修改必须要通过正式的变更控制流程。在软件工程环境中,基线成为软件开发过程中的里程碑,这些里程碑的标志是一项或多项经过正式的技术评审并一致认同的软件制品的提交。12SCM 中的专业术语配置数据库

9、(软件制品基线库)项目建立和访问软件制品库,这个制品库主要用来对保存配置项和一些与软件配置管理相关的记录。目前比较好的配置管理工具有:Clearcase (Rational)Notes/Domino(Lotus)PVCS (Merant)VSS (Microsoft)13配置管理库基线库的结构(VOB)Project Root DirectoryProject Planning Phase DocumentsRequirements Analysis Phase DocumentsDesign Phase DocumentsCode, Unit Test & Integration Phase

10、 DocumentsSystem Test Phase DocumentsPhase DeliverablesPhase DeliverablesProduct SoftwareTest Software Product Software RelatedTest Software RelatedSource CodeObjective CodeExecutive CodeDOCDATAABBBBCode14配置管理库的具体实现项目文件夹项目文件件是项目开发过程中由项目组创建和维护的制品归档库。软件配置管理负责管理和控制项目文件夹,并对文件夹中的内容进行评审;项目经理负责监督项目的软件配置管理执

11、行;软件质量工程师负责对项目文件夹的内容进行评审;项目文件夹的内容项目开发过程中的所有信息,包括文档、工作制品和各种周报、月报、评审等; 与外部的交流信息,例如与客户、第三方的通讯交流记录等;其他交流会议记录,例如:重要的Email,传真, 信件等;配置管理库15IEEE标准就配置管理的内容进行了规范的定义:(1)标识:识别产品的结构、产品的构件及其类型,为其分配唯一的标识符,并以某种形式提供对它们的存取。(2)控制:通过建立产品基线,控制软件产品的发布和在整个软件生命周期中对软件产品的修改。例如,它将解决哪些修改会在该产品的最新版本中实现的问题。(3)状态统计:记录并报告构件和修改请求的状态

12、,并收集关于产品构件的重要统计信息。例如,它将解决修改这个错误会影响多少个文件的问题。(4)审计和审查:确认产品的完整性并维护构件间的一致性,即确保产品是一个严格定义的构件集合。例如,它将解决目前发布的产品所用的文件的版本是否正确的问题。8.1.2 配置管理16(5)生产:对产品的生产进行优化管理。它将解决最新发布的产品应由哪些版本的文件和工具来生成的问题。(6)过程管理:确保软件组织的规程、方针和软件周期得以正确贯彻执行。它将解决要交付给用户的产品是否经过测试和质量检查的问题。(7)小组协作:控制开发统一产品的多个开发人员之间的协作。例如,它将解决是否所有本地程序员所做的修改都已被加入到新版

13、本的产品中的问题。8.1.2 配置管理17配置标识或者又称为配置需求,包括标识软件系统的结构,标识独立部件,并使它们是可访问的。配置标识的目的,是在整个生命周期中标识系统各部件并提供对软件过程及其软件产品的跟踪能力。它回答:什么是受控的? 配置变更控制包括在软件生命周期中控制软件产品的发布和变更,目的是建立确保软件产品质量的机制。它回答:受控产品怎样变更?谁控制变更?何时接受,恢复,验证变更?配置状态统计包括记录和报告变更过程,目标是不间断记录所有基线项的状态和历史,并进行维护,它解决以下问题:系统已经做了什么变更?此问题将会对多少个文件产生影响?配置变更控制是针对软件产品,状态统计针对软件过

14、程。因此,二者的统一就是对软件开发(产品、过程)的变更控制。配置审核将验证软件产品的构造是否符合需求、标准、或合同的要求,目的是根据SCM的过程和程序,验证所有的软件产品已经产生并有正确标识和描述,所有的变更需求都已解决。它回答:系统和需求是否吻合?是否所有变更都是在版本控制下? 8.1.3 SCM的四大功能领域18SCM从应用层次上可以从低到高分为三级:版本控制、以开发者为中心、过程驱动。版本控制主要应用于个人独立开发或小组开发,它可以控制任何文件的版本、实现分支和归并功能、进行文本比较、标记注释和版本报告信息,主要工具有MS的Visual SourceSafe及Intersolv PVCS

15、。 以开发者为中心主要应用于部门级开发,它可用于软件维护、不断增加的开发任务、并行开发、QA及测试,它面向大型团队、利于交流、能最大限度地利用人力资源,主要工具为Rational ClearCase及MKS Source Integrity。过程驱动主要使用于企业级开发,着重解决新的工具引入、IT审核、管理报告、复杂的生命周期、应用工具包、集成解决方案、资料库等问题,实现真正规范的团队开发,主要工具为Platinum Technology CCC/Harvest。SCM的三个应用层次 198.1.4 配置管理活动的作用配置管理与质量管理在质量体系的诸多支持活动中,配置管理处在支持活动的中心位置

16、。质量管理虽然也有过程的验证,但配置管理只要定义的配置项够细,则它可以管理软件开发的全过程,细到每一个模块、每一个文档、每一条工程记录的变化。因此,配置管理从基础层开始,有机地把其它支持活动结合起来,形成一个整体,相互促进,相互影响,有力地保证了质量体系的实施。 20配置管理给项目组带来的好处 (1)节约费用 缩短开发周期 减少施工费用 (2)有利于知识库的建立 代码对象库 业务及经验库(3)规范管理 量化工作量考核 规范测试 (4)加强协调与沟通 218.2.1 主要配置管理活动8.2.2 项目经理的配置管理流程8.2 配置管理活动和流程228.2 主要配置管理活动 标志配置项变更控制版本控

17、制评审统计软件编译、连接和发放管理23RUP描述的配置管理的主要活动如下图所示:对于一个软件项目组来说,开展一个项目组的配置管理,大致可以分为以下步骤: (1)拟订项目的配置管理计划;(2)创建项目的配置管理环境;(3)进行项目的配置管理活动,包括:标识配置项;管理基线和发布活动;监测与报告配置状态;管理变更请求。(1)和(2)可以看成配置管理的准备,(3)是配置管理的具体实施。配置管理的具体实施,在RUP定义为四个管理活动。24配置项(Software Configuration Item,SCI)识别 对于配置项,可以给出一个比较简单的定义,既软件过程的输出信息可以分为三个主要类别: (1

18、)计算机程序(源代码和可执行程序) (2)描述计算机程序的文档(针对技术开发者和用户) (3)数据(包含在程序内部或外部)。 这些项包含了所有在软件过程中产生的信息,总称为软件配置项。”在CMM2中,除上述3个配置项以外,还包括项目管理的有关文件、信息记录等。 由此可见,配置项的识别是配置管理活动的基础,也是制定配置管理计划的重要内容。25配置项(Software Configuration Item,SCI)识别 软件配置管理认为软件的开发过程是一个不断变化着的过程,为了在不严重阻碍合理变化的情况下来控制变化,软件配置管理引入了“基线(Base Line)”这一概念。 IEEE对基线的定义是

19、这样的:“已经正式通过审核批准的某规约或产品,它因此可作为进一步开发的基础,并且只能通过正式的变化控制过程改变。”所以,根据这个定义,我们在软件的开发流程中,也可以把所有需要加以控制的配置项分为基线配置项和非基线配置项两类,例如:基线配置项可能包括所有的设计文档和源程序等;非基线配置项可能包括项目的各类计划和报告等。 26配置项的标识和控制 所有配置项都应按照相关规定统一编号,按照相应的模板生成,并在文档中的规定章节(部分)记录对象的标识信息。在引入软件配置管理工具进行管理后,这些配置项都应以一定的目录结构保存在配置库中。所有配置项的操作权限应由配置管理员严格管理,基本原则是:基线配置项向软件

20、开发人员开放读取权限;非基线配置项向项目经理、配置控制委员会及相关人员开放。27工作空间管理 在引入了软件配置管理工具之后,所有开发人员都会被要求把工作成果存放到由软件配置管理工具所管理的配置库(存储池)中去,或是直接工作在软件配置管理工具提供的环境之下(根据配置管理构架提供的控制方式不同而不同)。 每个开发人员按照任务的要求,在不同的开发阶段,工作在不同的工作空间上。 比较理想的情况是把整个配置库视为一个统一的工作空间,然后再根据需要把它划分为个人(私有)、团队(集成)和全组(公共)这三类工作空间(分支),从而更好的支持将来可能出现的并行开发的需求。 28版本控制 版本控制是软件配置管理的核

21、心功能。所有置于配置库中的元素都应自动予以版本的标识,并保证版本命名的唯一性。版本在生成过程中,自动依照设定的使用模型自动分支、演进。除了系统自动记录的版本信息以外,为了配合软件开发流程的各个阶段,我们还需要定义、收集一些元数据来记录版本的辅助信息和规范开发流程,并为今后对软件过程的度量做好准备。当然如果选用的工具支持的话,这些辅助数据将能直接统计出过程数据,从而方便我们软件过程改进(Software Process Improvement,SPI)活动的进行。 对于配置库中的各个基线控制项,应该根据其基线的位置和状态来设置相应的访问权限。一般来说,对于基线版本之前的各个版本都应处于被锁定的状

22、态,如需要对它们进行变更,则应按照变更控制的流程来进行操作。 29变更控制 变更管理的一般流程是:(1)(获得)提出变更请求;(2)由CCB审核并决定是否批准;(3)(被接受)分配请求,修改人员提取配置项,进行修改;(4)复审变化;(5)提交修改后的配置项;(6)建立测试基线并测试;(7)重建软件的适当版本;(8)复审(审计)所有配置项的变化;(9)发布新版本。 在这样的流程中,配置管理员通过软件配置管理工具来进行访问控制和同步控制,而这两种控制则是建立在前面所描述的版本控制和分支策略的基础上的。 30状态报告 配置状态报告应该包括下列主要内容: (1)配置库结构和相关说明; (2)开发起始基

23、线的构成; (3)当前基线位置及状态; (4)各基线配置项集成分支的情况; (5)各私有开发分支类型的分布情况; (6)关键元素的版本演进记录; (7)其它应报告的事项。 31配置审计 配置审计的主要作用是作为变更控制的补充手段,来确保某一变更需求已被切实实现。在某些情况下,它被作为正式的技术复审的一部分,但当软件配置管理是一个正式的活动时,该活动由SQA人员单独执行。总之,软件配置管理的对象是软件研发活动中的全部开发资产。所有这一切都应作为配置项纳入管理计划统一进行管理,从而能够保证及时的对所有软件开发资源进行维护和集成。因此,软件配置管理的主要任务也就归结为以下几条: (1)制定项目的配置

24、计划; (2)对配置项进行标识; (3)对配置项进行版本控制; (4)对配置项进行变更控制; (5)定期进行配置审计; (6)向相关人员报告配置的状态。 32变更请求管理活动 33变更请求的状态转移 34配置项状态统计配置项状态统计,由项目配置经理定期地对项目配置项的状态进行收集和统计,主要包括以下统计信息:项目制品进入基线库的创建时间变更请求的详细描述所有问题(Problem Report)报告的描述变更请求的状态Baseline Status Accounting Form (BSAF)Archive Status Accounting Form (ASAF)Change/Problem Status Accounting Form (C/PSAF)35提供图形化的项目状况36SCM的度量和度量准则 SCM 提供软件产品的状态统计。统计包括寻找软件开发的瓶颈和解决办法,并据此衡量软件产品的成熟度。 度量准则:平均严重程度,严重程度级的分布,平均关闭时间,严重程度的图示,各配置项或子系统的图示37SCM的度量和度量准则软件产品成熟度数据要求:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论