软件配置知识.ppt

上传人:豆**** 文档编号:89929020 上传时间:2023-05-13 格式:PPT 页数:69 大小:5.06MB
返回 下载 相关 举报
软件配置知识.ppt_第1页
第1页 / 共69页
软件配置知识.ppt_第2页
第2页 / 共69页
点击查看更多>>
资源描述

《软件配置知识.ppt》由会员分享,可在线阅读,更多相关《软件配置知识.ppt(69页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、软件配置管理知识软件配置管理知识软件配置管理知识软件配置管理知识课程描述及必要知识准备课程描述课程描述介绍软件配置管理的基本概念和方法,并讨论如何运用到软件开发过程,开发出高质量的产品必要知识准备必要知识准备必要知识准备必要知识准备w w必要的软件开发经验必要的软件开发经验w w软件开发管理经验软件开发管理经验软件配置管理知识软件配置管理知识课程摘要为什么要进行软件配置管理?什么是软件配置管理?什么是配置项?版本与版本标识什么是基线?如何实现并行开发管理?分支与合并如何进行集成、测试期间的Build?基线的变更管理软件配置管理知识软件配置管理知识为什么要进行软件配置管理?复杂的软件系统及开发过

2、程开发的系统越来越大,功能越来越复杂众多软件开发人员多种文件对象和类型需求各种文档设计模型源代码目标代码Web 组件测试脚本、测试用例多种版本多种平台多个开发地点所有方面都要考虑并所有方面都要考虑并需要进行正确管理!需要进行正确管理!软件配置管理知识软件配置管理知识以往软件开发过程中的问题版本难以控制资源变化频繁导致失控配置审核问题项目开发中的组织管理问题项目组成员之间沟通不够文档与程序严重脱节无法有效地管理和跟踪变更测试工作不规范对软件版本的发布缺乏有效的管理施工周期过长,且开发人员必须亲临现场无法构建企业内部的软件标准构件仓库(即财富库)软件配置管理知识软件配置管理知识造成的后果重要数据丢

3、失开发周期漫长开发成本增加产品可靠性差软件重用率低下无法开展规范化测试工作缺乏软件开发历史数据积累,无法为日后借鉴维护和升级困难施工成本增加用户抱怨使用不便,满意度低项目风险增加软件配置管理知识软件配置管理知识传统做法手工保持版本!手工保持版本!软件配置管理知识软件配置管理知识程序员的问题我要更改文件,但不知哪个是最新的?如果能知道最后修改了哪几行以及原因,对我帮助很大经常在构造(MAKE)时,会用错文件的版本多人修改同一文件时,有些人的修改被冲掉了我的程序文件被误删了,我曾尝试恢复,但是失败了,这导致我只能重新编写,有什么办法可以防止类似的事情发生我和同事共同开发一个项目,程序出了错,我花了

4、一个星期终于查出来了,结果发现同事上个星期明显修改了其中的一个程序也没有通知我。有什么办法能让我少花点力气在这种事情上软件配置管理知识软件配置管理知识项目经理的问题调试过程中,项目成员经常为一些问题“扯皮”,搞不清楚到底是谁造成的错误我们项目保存版本的方法是将文件复制一份,重新命名,比如加上人名、时间后缀。但是这样对于一些大文件耗费的磁盘空间太大项目版本太多,有些版本太旧,查看不方便估计项目成员的工作成果比较困难交付给用户使用的产品(软件包)“缺斤少两”,用户在安装的时候发现许多问题软件配置管理知识软件配置管理知识实施软件配置管理的益处加强了开发过程控制,加强了产品质量的可控性节约费用缩短开发

5、周期减少施工费用有利于知识库的建立代码对象库业务及经验库规范管理量化工作量考核规范测试加强协调与沟通软件配置管理知识软件配置管理知识什么是软件配置管理?Software Configuration Management,简称SCM:Configuration management is the practice of handling changes systematically so that a system can maintain its integrity over time.Another name for it is“change control.”It includes tec

6、hniques for evaluating proposed changes,tracking changes,and keeping copies of the system as it existed at various points in time.配置管理能够系统地处理变更,从而使得软件系统可以随时保持其完整性。配置管理又可称为“变更控制”,可以用来评估提出的变更请求,跟踪变更,并保存系统在不同时间的状态。Steve McConnellCode CompleteMicrosoft Press,1993软件配置管理知识软件配置管理知识什么是软件配置管理?另外一个定义:Configur

7、ation 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.对软件开发组所建立的软件的修改进行标识、组织和控制的艺术,其目标是减少错误,提高生产力。Wayne BabichSoftware Configuration Management:Coordination for

8、 Team Productivity Addison-Wesley,1986.软件配置管理知识软件配置管理知识什么是软件配置管理?另外一个定义:标识和确定系统中配置项的过程,在系统整个生存周期内控制这些项的发布和变更,记录并报告配置的状态和变更要求,验证配置项的完整性和正确性。IEEE Std 610.12-1990 电气和电子工程师协会软件配置管理知识软件配置管理知识什么是软件配置管理?作用:在质量体系的诸多支持活动中,配置管理处在支持活动的中心位置,它有机地把其它支持活动结合起来,形成一个整体,相互促进,相互影响,有力地保证了质量体系的实施。目的:软件配置管理的目的是建立和维护在项目的整个

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

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

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

12、信息的库。软件配置管理就是对软件受控库中的各软件项进行管理,因此软件受控库也叫配置管理库。软件受控库通常用于保存基线开发库开发库受控库受控库第一阶段结束第一阶段结束第二阶段结束第二阶段结束软件配置管理知识软件配置管理知识团队开发模式Check outCheck outGetGet(参考参考)Check outCheck outCheck inCheck inCheck inCheck inLocal WorkspaceLocal WorkspaceLocal WorkspaceLocal WorkspaceRepository on Repository on SCM serverSCM se

13、rverA AB B软件配置管理知识软件配置管理知识每个开发人员会有多个工作空间每个开发人员为了完成不同任务会有多个工作空间BugfixWorkspaceD:WSbugfixDevelopmentWorkspaceD:WSdevLegacy ReleaseWorkspaceD:WSrel1.0软件配置管理知识软件配置管理知识工作空间的最佳实践不要共享个人的工作空间要在各自的工作空间内进行工作要经常进行同步(合并)要养成经常Check in的习惯软件配置管理知识软件配置管理知识比喻#2A Photo Album相册软件配置管理知识软件配置管理知识软件“相册”在一生中我们会拍很多照片来记录每一刻每

14、张照片都是凝固的生活瞬间所有照片组成相册记录了一个人一生的历史配置管理系统按照同样的道理对所有配置项进行管理配置管理系统按照同样的道理对所有配置项进行管理软件配置管理知识软件配置管理知识杂乱的照片软件配置管理知识软件配置管理知识相册Tower Clock 1885Time Machine 1985Tower Clock 1955Apollo 13Marry&doc 1885Not Marry&doc 1935Marry&doc 1985Not Marry&doc 1937软件配置管理知识软件配置管理知识软件同样有历史一个软件随着时间变化也在不断变化软件配置管理系统能记录:What change

15、d 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 保存任何生效变更的版本在版本控制版本控制下能任意回到历史过程中的任何一个版本软件配置管理知识软件配置管理知识什么是配置项?

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

17、软件组成单元,如:源代码;具体实例则是指软件开发人员从软件库中恢复出来的某软件组成单元具有一定内容和属性的一个真实拷贝。版本记录了配置项的演化过程。软件配置管理知识软件配置管理知识版本发布后的版本如:WIndows2000 Professional、J2SDK v.1.2.2、Digital UNIX V4.0D、开发中的版本原始系统原始系统PCPC版版DigitalDigital版版SUNSUN版版大型机版大型机版UNIXUNIX版版VMSVMS版版工作站版工作站版软件配置管理知识软件配置管理知识版本的演变串行演变版本树并行演变软件配置管理知识软件配置管理知识版本标识版本标识由版本的命名规则

18、决定数字顺序形版本标识例如:V1.0、V1.1、V1.2、V1.1.0.2、V1.2.0.4符号命名版本标识例如:X86/WinNT/DB Server属性版本标识例如:J2SDK.v.1.2.3:10/31/2000-18:00,native threads,正交版本标识软件配置管理知识软件配置管理知识什么是基线?基线(Baseline)一个配置项在其生命周期的某一特定时间被正式标明、固定并经正式批准的一个版本,无论媒体是什么。ISO/IEC 12207 基线形成一般是在软件生命周期各阶段末尾的特定点,亦称里程碑时间点。作用基线的作用是把各阶段的工作划分得更加明确,使得本来连续的工作在这些点

19、上断开,使之便于检验和确认阶段开发成果,使后续工作在确认后的基准上进行。特性n具有明确标识n具有明确内容n经正式审批n严格控制变更软件配置管理知识软件配置管理知识什么是基线?0130012012312BaselineREL 1.0VersionElement Util.c util.h test.c test.h软件配置管理知识软件配置管理知识比喻#3Time Travel时光穿梭软件配置管理知识软件配置管理知识如何进行配置?管理所有目录和全部文件的版本只是其中的一部分因为软件产品与源代码是一对多的关系,SCM需要好的配置报告或工作空间来进行管理。例如:一个单一的软件程序有可能是由成百甚至上千

20、个源代码生成的记录并维护历史是必要的,但还远远不够!一个SCM系统必须能够再生和重现一个软件产品的全部的完整的配置情况,而不仅仅是单个文件的版本软件配置管理知识软件配置管理知识如何进行配置?把配置管理想象成一个软件的时光机器能够定位到最新测试通过的源代码能够定位到为不同平台或不同客户所做的特殊版本的最新的源代码能够定位到6个月前或12个月前甚至5年前所发布版本的所有源代码能够定位到2年前所发布的版本在之后所有BUG修复时任何一版的源代码软件配置管理知识软件配置管理知识一个 SCM 系统就像一个软件的时光机器不仅仅能保留工作配置项的最后版本,而且能保存所有的历史版本,并能在任何时刻重现:Vers

21、ion 1Version 1Version 2Version 2Version 3Version 3软件配置管理知识软件配置管理知识一个 SCM 系统就像一个软件的时光机器能够随时重现以前任何时间的软件配置Setup.exe_v1.0Setup.exe_v1.0Foo.h_v1.1Util.c_v1.0Foo.c_v1.3My source tree 2 years agoMy source tree 2 years ago软件配置管理知识软件配置管理知识比喻#4A Book with Many Authors很多作者合写一本书软件配置管理知识软件配置管理知识很多作者合写一本书一个大型软件就像

22、很多作者合写一本书有些人同时在写完全不同的章节有些人可能同时在分写同一章的不同部分有些人可能在对已经完成的部分进行修订其他人还在进行这本书的新的版本的编写软件配置管理知识软件配置管理知识很多作者合写一本书如何让作者第一时间知道别人对他的修订?当每个作者在本地有一个或多个拷贝时,如何能与其他人同步,来保证一致?当多个作者在写同一章时发生冲突时,如何处理?软件配置管理知识软件配置管理知识工业化时期:并行开发管理大型软件项目与很多作者合写一本书具有同样的特征开发人员不断地创建新的版本、文件、目录开发人员不断地修改已经存在的文件版本开发人员需要从不同地方同时访问相同的代码开发人员经常需要与其他开发人员

23、的工作成果进行集成在工业化时期我们称之为“并行开发并行开发”没有并行开发管理将会导致开发过程混乱并行开发管理能力决定了一个团队的配置管理水平软件配置管理知识软件配置管理知识软件开发是一个团队运动复杂的开发需要彼此隔绝由于不同原因需要同时修改相同的工作产品同一个代码或产品需要支持多种方式支持多种平台支持多种版本支持多项目支持多地点一个一个SCMSCM系统的并行开发和工作空间管理系统的并行开发和工作空间管理能提供所需的隔绝方式能提供所需的隔绝方式软件配置管理知识软件配置管理知识并行开发管理允许多个开发人员同时工作在相同的代码,而无需等待他人完成后再开始允许在相同代码上建立多个开发分支支持多项目支持

24、多版本支持多平台能够使多个团队并行工作,甚至在远程当变更完成并被他人认可时,可以很容易地将他们集成到一起软件配置管理知识软件配置管理知识分支管理(文件视图)1.01.11.21.3File based BranchFile based Branch1.41.1.11.1.2Main branchBug fix branch软件配置管理知识软件配置管理知识分支管理(项目视图)Project Based BranchProject Based BranchMainlineMainlineDev codelineDev codelineRelease 1.0Release 1.0Release 1.

25、1Release 1.1Rel 1.1 bugfixRel 1.1 bugfix软件配置管理知识软件配置管理知识分支管理:并行开发的关键方法隔离变更对变更、BUILD、测试以及基线等进行隔离,分别进行管理将工作分解、变更任务、工作分类等有机地组织起来对变更任务的集成进行控制有助于问题的交流、可见性、项目计划和跟踪以及最终的风险管理软件配置管理知识软件配置管理知识检入/检出模型Repository(Codebase)Prog.cEdit,Compile,Debug,testDevelopers WorkspaceCheckoutProg.cCheckinProg.c软件配置管理知识软件配置管理知

26、识运用独占检出方式的顺行开发同一时刻只允许一个人进行工作1.11.21.3Prog.c软件配置管理知识软件配置管理知识运用分之管理的并行开发1.11.3Prog.c1.2.1.11.21.2.1.2branch软件配置管理知识软件配置管理知识运用合并方法同步并行开发的结果1.11.3Prog.c1.2.1.11.21.2.1.2branch1.4merge软件配置管理知识软件配置管理知识三方合并 branch main 10 01 12 2023456子项合并结果祖先父项软件配置管理知识软件配置管理知识合并算法祖先祖先ABCDEXABCZ?XN/CdeletedN/Cchangedconfli

27、ctinsertedABCDQXdeletedchangedinsertedABCZRXchangedchanged父项父项子项子项合并结果合并结果软件配置管理知识软件配置管理知识分支(策略)举例 1:私有分支每个开发人员工作在各自的独立分支上由专人将每个人的开发结果合并到集成分支上保存基线在集成分支上,并发布到主分支上将每个开发人员的任务进行隔离 integration main 10 01 12 2023456REL 1.0BL 1 Jerry 012 Tom 01233REL 2.0软件配置管理知识软件配置管理知识分支(策略)举例 2:功能分支按照功能进行分支由专人将不同功能分支继承到集

28、成分支上保存基线在集成分支上,并发布到主分支上能够减少并控制功能带来的风险 integration main 10 01 12 2023456REL 1.0BL 1 FEA2 01201233REL 2.0 FEA1 软件配置管理知识软件配置管理知识分支(策略)举例 3:测试分支(Bugfix)在测试中按照缺陷报告进行分支开发人员工作在每个BUGFIX分支上由专人将修复后正确的结果集成到BUGFIX分支上容易生成布丁 bugfix main 10 01 12 2023456REL 1.0PATCH bug 247 012 bug102 012REL 2.03 34 45 57软件配置管理知识软

29、件配置管理知识Build ManagementBuild Management软件配置管理知识软件配置管理知识Build Process OverviewBUILDISOLATETESTFIXBASELINESTABILIZESHARE CHANGESPromoteLockLock软件配置管理知识软件配置管理知识在集成和测试期间的Build隔离将集成分支上的所有用户锁定稳定由专人进行BUILD,不成功需要修改错误对BUILD结果进行测试,有问题进行修复共享生成基线提升老基线NightlyBuild!软件配置管理知识软件配置管理知识基线变更管理基线变更管理软件配置管理知识软件配置管理知识变更贯穿

30、于整个开发过程始终需求需求实现实现测试及发布测试及发布基线基线分析及设计分析及设计变更变更软件配置管理知识软件配置管理知识基本变更状态已批准已批准已提交已提交不批准不批准已分配已分配已执行已执行已关闭已关闭验证不通过验证不通过CR审批审批验证通过验证通过CR提交提交任务分派任务分派任务执行任务执行验证验证CR关闭关闭软件配置管理知识软件配置管理知识配置管理中的变更管理CRApprovedHoldCompleteSubmitLoggedReviewEXEA4B5C3A1System TestIntegrateDesign/ImplementB1C1NewAssignedCR软件配置管理知识软件配

31、置管理知识配置管理与变更管理集成变更集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.dspChange SetID Type Priority Owner19 RFE P2 Tom23 Defect P2 Jerry35 Task P1 Mike软件配置管理知识软件配置管理知识推荐资料书软件配置管理清华大学出版社网站http:/ 谢!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > pptx模板 > 企业培训

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁