软件配置管理知识.ppt

上传人:小飞机 文档编号:6349191 上传时间:2023-10-19 格式:PPT 页数:69 大小:4.31MB
返回 下载 相关 举报
软件配置管理知识.ppt_第1页
第1页 / 共69页
软件配置管理知识.ppt_第2页
第2页 / 共69页
软件配置管理知识.ppt_第3页
第3页 / 共69页
软件配置管理知识.ppt_第4页
第4页 / 共69页
软件配置管理知识.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《软件配置管理知识.ppt》由会员分享,可在线阅读,更多相关《软件配置管理知识.ppt(69页珍藏版)》请在三一办公上搜索。

1、软 件 配 置 管 理 知 识,课程描述及必要知识准备,课程描述介绍软件配置管理的基本概念和方法,并讨论如何运用到软件开发过程,开发出高质量的产品,必要知识准备必要的软件开发经验软件开发管理经验,课程摘要,为什么要进行软件配置管理?什么是软件配置管理?什么是配置项?版本与版本标识什么是基线?如何实现并行开发管理?分支与合并如何进行集成、测试期间的Build?基线的变更管理,为什么要进行软件配置管理?,复杂的软件系统及开发过程开发的系统越来越大,功能越来越复杂众多软件开发人员多种文件对象和类型需求各种文档设计模型源代码目标代码Web 组件测试脚本、测试用例多种版本多种平台多个开发地点,所有方面都

2、要考虑并需要进行正确管理!,以往软件开发过程中的问题,版本难以控制资源变化频繁导致失控配置审核问题项目开发中的组织管理问题项目组成员之间沟通不够文档与程序严重脱节无法有效地管理和跟踪变更测试工作不规范对软件版本的发布缺乏有效的管理施工周期过长,且开发人员必须亲临现场无法构建企业内部的软件标准构件仓库(即财富库),造成的后果,重要数据丢失开发周期漫长开发成本增加产品可靠性差软件重用率低下无法开展规范化测试工作缺乏软件开发历史数据积累,无法为日后借鉴维护和升级困难施工成本增加用户抱怨使用不便,满意度低项目风险增加,传统做法,手工保持版本!,程序员的问题,我要更改文件,但不知哪个是最新的?如果能知道

3、最后修改了哪几行以及原因,对我帮助很大经常在构造(MAKE)时,会用错文件的版本多人修改同一文件时,有些人的修改被冲掉了我的程序文件被误删了,我曾尝试恢复,但是失败了,这导致我只能重新编写,有什么办法可以防止类似的事情发生我和同事共同开发一个项目,程序出了错,我花了一个星期终于查出来了,结果发现同事上个星期明显修改了其中的一个程序也没有通知我。有什么办法能让我少花点力气在这种事情上,项目经理的问题,调试过程中,项目成员经常为一些问题“扯皮”,搞不清楚到底是谁造成的错误我们项目保存版本的方法是将文件复制一份,重新命名,比如加上人名、时间后缀。但是这样对于一些大文件耗费的磁盘空间太大项目版本太多,

4、有些版本太旧,查看不方便估计项目成员的工作成果比较困难交付给用户使用的产品(软件包)“缺斤少两”,用户在安装的时候发现许多问题,实施软件配置管理的益处,加强了开发过程控制,加强了产品质量的可控性节约费用缩短开发周期减少施工费用有利于知识库的建立代码对象库业务及经验库规范管理量化工作量考核规范测试加强协调与沟通,什么是软件配置管理?,Software Configuration Management,简称SCM:Configuration management is the practice of handling changes systematically so that a system

5、can maintain its integrity over time.Another name for it is“change control.”It includes techniques for evaluating proposed changes,tracking changes,and keeping copies of the system as it existed at various points in time.配置管理能够系统地处理变更,从而使得软件系统可以随时保持其完整性。配置管理又可称为“变更控制”,可以用来评估提出的变更请求,跟踪变更,并保存系统在不同时间的状

6、态。Steve McConnellCode CompleteMicrosoft Press,1993,什么是软件配置管理?,另外一个定义:Configuration management is the art of identifying,organizing,and controlling modifications to the software being built by a programming team.The goal is to maximize productivity by minimizing mistakes.对软件开发组所建立的软件的修改进行标识、组织和控制的艺术,

7、其目标是减少错误,提高生产力。Wayne BabichSoftware Configuration Management:Coordination for Team Productivity Addison-Wesley,1986.,什么是软件配置管理?,另外一个定义:标识和确定系统中配置项的过程,在系统整个生存周期内控制这些项的发布和变更,记录并报告配置的状态和变更要求,验证配置项的完整性和正确性。IEEE Std 610.12-1990 电气和电子工程师协会,什么是软件配置管理?,作用:在质量体系的诸多支持活动中,配置管理处在支持活动的中心位置,它有机地把其它支持活动结合起来,形成一个整体

8、,相互促进,相互影响,有力地保证了质量体系的实施。目的:软件配置管理的目的是建立和维护在项目的整个软件生存周期中软件项目产品的完整性。主要内容包括:及时地确定软件的配置,系统地控制软件配置的变更,保证整个软件生命周期软件配置的完整性和可追溯性。,什么是软件配置管理?,总结:软件配置管理,贯穿于整个软件生命周期,它为软件研发提供了一套管理办法和活动原则。软件配置管理无论是对于软件企业管理人员还是研发人员都着重要的意义。软件配置管理可以提炼为三个方面的内容。Version Control-版本控制Change Control-变更控制Process Support-过程支持,相关工具介绍,版本控制

9、工具CVS(Free)Microsoft SourceSafeBorland StarTeam配置管理工具Merant PVCSRational ClearCaseTelelogic CM SynergyCA CCC/HarvestHansky FireflyJBCM,比喻#1,A Vault保险库,一个你的全部软件资产保险库,一个好的软件配置管理系统就像一个软件资产的保险库提供一个公共的软件资产库能存储各种类型的文件严格的权限管理适用于各种规模和人数的开发项目 提供必须的、完善的安全管理机制,存储库Repository,存储库是一个中央数据库,存放各种版本文件、目录、交付对象、源数据及其关联

10、对象存储库位于网络中的SCM服务器上,并能够通过所有客户端进行访问存储库用于存储全部的控制版本的组件、元素、分支和元数据,需求,Repository,设计,代码,测试数据,.,项目经理,设计人员,开发、测试人员,软件开发库、软件受控库,软件开发库指在软件生命周期的某一个阶段期间,存放与该阶段软件开发工作有关的计算机可读信息和人工可读信息的库软件受控库指在软件生命周期的某一个阶段结束时,存放作为阶段产品而释放的、与软件开发工作有关的计算机可读信息和人工可读信息的库。软件配置管理就是对软件受控库中的各软件项进行管理,因此软件受控库也叫配置管理库。软件受控库通常用于保存基线,开发库,受控库,第一阶段

11、结束,第二阶段结束,团队开发模式,Check out,Get(参考),Check out,Check in,Check in,Local Workspace,Local Workspace,Repository on SCM server,A,B,每个开发人员会有多个工作空间,每个开发人员为了完成不同任务会有多个工作空间,BugfixWorkspaceD:WSbugfix,DevelopmentWorkspaceD:WSdev,Legacy ReleaseWorkspaceD:WSrel1.0,工作空间的最佳实践,不要共享个人的工作空间要在各自的工作空间内进行工作要经常进行同步(合并)要养成经

12、常Check in的习惯,比喻#2,A Photo Album相册,软件“相册”,在一生中我们会拍很多照片来记录每一刻每张照片都是凝固的生活瞬间所有照片组成相册记录了一个人一生的历史,配置管理系统按照同样的道理对所有配置项进行管理,杂乱的照片,相册,Tower Clock 1885,Time Machine 1985,Tower Clock 1955,Apollo 13,Marry&doc 1885,Not Marry&doc 1935,Marry&doc 1985,Not Marry&doc 1937,软件同样有历史,一个软件随着时间变化也在不断变化软件配置管理系统能记录:What chan

13、ged foo.c changed from v1.5 to v1.6Who changed it TomWhen it changed Fri,Jun 25 13:53:35 pm变更系统能记录:Why it changed fixed a bug in the GUI软件配置管理系统和变更系统能帮助开发人员清楚地掌握软件任何时间的变化情况,团队开发:版本控制,记录软件在生命周期内的所有变更情况记录任何软件变更的历史Who WhatWhenWhy 保存任何生效变更的版本在版本控制下能任意回到历史过程中的任何一个版本,什么是配置项?,软件配置管理的对象是软件配置项(Software Confi

14、guration Item,缩写SCI)软件配置是指一个软件产品在软件生命周期各个阶段所产生的各种形式(机器可读或人工可读)和各种版本的文档、程序及其数据的集合。该集合中的每一个元素称为该软件配置中的一个配置项。中国国家标准计算机软件配置管理计划规范与合同、过程、计划和产品有关的文档及数据源代码、目标代码和可执行代码相关产品,包括软件工具、库内可复用软件、外购软件及顾客提供的软件等,什么是版本?,版本-Version亦称配置标识,是指某一特定对象的具体实例的潜在存在这里的某一特定对象是指由版本维护工具管理的软件组成单元,如:源代码;具体实例则是指软件开发人员从软件库中恢复出来的某软件组成单元具

15、有一定内容和属性的一个真实拷贝。版本记录了配置项的演化过程。,版本,发布后的版本如:WIndows2000 Professional、J2SDK v.1.2.2、Digital UNIX V4.0D、开发中的版本,原始系统,PC版,Digital版,SUN版,大型机版,UNIX版,VMS版,工作站版,版本的演变,串行演变,版本树,并行演变,版本标识,版本标识由版本的命名规则决定数字顺序形版本标识例如:符号命名版本标识例如:X86/WinNT/DB Server属性版本标识例如:J2SDK.v.1.2.3:10/31/2000-18:00,native threads,正交版本标识,什么是基线?

16、,基线(Baseline)一个配置项在其生命周期的某一特定时间被正式标明、固定并经正式批准的一个版本,无论媒体是什么。ISO/IEC 12207 基线形成一般是在软件生命周期各阶段末尾的特定点,亦称里程碑时间点。作用基线的作用是把各阶段的工作划分得更加明确,使得本来连续的工作在这些点上断开,使之便于检验和确认阶段开发成果,使后续工作在确认后的基准上进行。特性具有明确标识具有明确内容经正式审批严格控制变更,什么是基线?,0,1,3,0,0,1,2,0,1,2,3,1,2,Baseline,REL 1.0,Element,Util.c util.h test.c test.h,比喻#3,Time

17、Travel时光穿梭,如何进行配置?,管理所有目录和全部文件的版本只是其中的一部分因为软件产品与源代码是一对多的关系,SCM需要好的配置报告或工作空间来进行管理。例如:一个单一的软件程序有可能是由成百甚至上千个源代码生成的记录并维护历史是必要的,但还远远不够!一个SCM系统必须能够再生和重现一个软件产品的全部的完整的配置情况,而不仅仅是单个文件的版本,如何进行配置?,把配置管理想象成一个软件的时光机器能够定位到最新测试通过的源代码能够定位到为不同平台或不同客户所做的特殊版本的最新的源代码能够定位到6个月前或12个月前甚至5年前所发布版本的所有源代码能够定位到2年前所发布的版本在之后所有BUG修

18、复时任何一版的源代码,一个 SCM 系统就像一个软件的时光机器,不仅仅能保留工作配置项的最后版本,而且能保存所有的历史版本,并能在任何时刻重现:,Version 1,Version 2,Version 3,一个 SCM 系统就像一个软件的时光机器,能够随时重现以前任何时间的软件配置,My source tree 2 years ago,比喻#4,A Book with Many Authors很多作者合写一本书,很多作者合写一本书,一个大型软件就像很多作者合写一本书有些人同时在写完全不同的章节有些人可能同时在分写同一章的不同部分有些人可能在对已经完成的部分进行修订其他人还在进行这本书的新的版本

19、的编写,很多作者合写一本书,如何让作者第一时间知道别人对他的修订?当每个作者在本地有一个或多个拷贝时,如何能与其他人同步,来保证一致?当多个作者在写同一章时发生冲突时,如何处理?,工业化时期:并行开发管理,大型软件项目与很多作者合写一本书具有同样的特征开发人员不断地创建新的版本、文件、目录开发人员不断地修改已经存在的文件版本开发人员需要从不同地方同时访问相同的代码开发人员经常需要与其他开发人员的工作成果进行集成在工业化时期我们称之为“并行开发”没有并行开发管理将会导致开发过程混乱并行开发管理能力决定了一个团队的配置管理水平,软件开发是一个团队运动,复杂的开发需要彼此隔绝由于不同原因需要同时修改

20、相同的工作产品同一个代码或产品需要支持多种方式支持多种平台支持多种版本支持多项目支持多地点,一个SCM系统的并行开发和工作空间管理能提供所需的隔绝方式,并行开发管理,允许多个开发人员同时工作在相同的代码,而无需等待他人完成后再开始允许在相同代码上建立多个开发分支支持多项目支持多版本支持多平台能够使多个团队并行工作,甚至在远程当变更完成并被他人认可时,可以很容易地将他们集成到一起,分支管理(文件视图),1.0,1.1,1.2,1.3,File based Branch,1.4,Main branch,Bug fix branch,分支管理(项目视图),Project Based Branch,M

21、ainline,Dev codeline,Release 1.0,Release 1.1,Rel 1.1 bugfix,分支管理:并行开发的关键方法,隔离变更对变更、BUILD、测试以及基线等进行隔离,分别进行管理将工作分解、变更任务、工作分类等有机地组织起来对变更任务的集成进行控制有助于问题的交流、可见性、项目计划和跟踪以及最终的风险管理,检入/检出模型,Repository(Codebase),Prog.c,Edit,Compile,Debug,test,Developers Workspace,CheckoutProg.c,CheckinProg.c,运用独占检出方式的顺行开发,同一时刻

22、只允许一个人进行工作,1.1,1.2,1.3,Prog.c,运用分之管理的并行开发,1.1,1.3,Prog.c,1.2,branch,运用合并方法同步并行开发的结果,1.1,1.3,Prog.c,1.2,branch,1.4,merge,三方合并,branch,main,子项,合并结果,祖先,父项,合并算法,祖先,ABCZ?X,N/C,deleted,N/C,changed,conflict,inserted,ABCDQX,deleted,changed,inserted,ABCZRX,changed,changed,父项,子项,合并结果,分支(策略)举例 1:私有分支,每个开发人员工作在各

23、自的独立分支上由专人将每个人的开发结果合并到集成分支上保存基线在集成分支上,并发布到主分支上将每个开发人员的任务进行隔离,integration,main,REL 1.0,BL 1,Jerry,Tom,REL 2.0,分支(策略)举例 2:功能分支,按照功能进行分支由专人将不同功能分支继承到集成分支上保存基线在集成分支上,并发布到主分支上能够减少并控制功能带来的风险,integration,main,REL 1.0,BL 1,FEA2,REL 2.0,FEA1,分支(策略)举例 3:测试分支(Bugfix),在测试中按照缺陷报告进行分支开发人员工作在每个BUGFIX分支上由专人将修复后正确的结

24、果集成到BUGFIX分支上容易生成布丁,bugfix,main,REL 1.0,PATCH,bug 247,bug102,REL 2.0,Build Management,Build Process Overview,BUILD,ISOLATE,TEST,FIX,BASELINE,STABILIZE,SHARE CHANGES,Promote,Lock,在集成和测试期间的Build,隔离将集成分支上的所有用户锁定稳定由专人进行BUILD,不成功需要修改错误对BUILD结果进行测试,有问题进行修复共享生成基线提升老基线,NightlyBuild!,基线变更管理,变更贯穿于整个开发过程始终,需求,

25、实现,测试及发布,基线,分析及设计,变更,基本变更状态,已批准,已提交,不批准,已分配,已执行,已关闭,验证不通过,CR审批,验证通过,CR提交,任务分派,任务执行,验证,CR关闭,配置管理中的变更管理,CR,Approved,Hold,Complete,Submit,Logged,Review,EXE,A4,B5,C3,A1,System Test,Integrate,Design/Implement,B1,C1,New,Assigned,CR,配置管理与变更管理集成,变更集,Update client/mysqlclient.dspCreate libmysql/ctype-latin1_de.cUpdate libmysql/ctype_autoconf.cUpdate libmysql/libmysql.dspCreate strings/ctype-latin1_de.cUpdate strings/ctype_autoconf.cUpdate strings/noMASM/strings.dspUpdate strings/strings.dsp,Change Set,ID Type Priority Owner RFE P2 Tom Defect P2 Jerry35 Task P1 Mike,推荐资料,书软件配置管理清华大学出版社网站,结束,谢 谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号