您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > CMMI-module5- 配置管理
1CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.1配置管理CMMI高级顾问,袁庆平2主要内容项目中的配置管理问题配置管理的基本概念 CMWheel CM的定义 CM的四个类比配置管理的实施方法 CM的重要概念 CM的实践配置管理工具的选择2CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.3项目中的CM问题3CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.5开发中典型的CM问题发错了版本安装后不工作异地不能正常工作已经解决的缺陷过后又出现错误开发人员把产品拿出去出售赢利找不到昀新修改了的源程序找不到编程序的人6关于配置管理的误解谁都可以做配置管理这个项目不需要配置管理配置管理是开发完成之后的事情配置管理流程会减缓开发速度文档可以过后再改我们没有时间进行变更控制4CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.7配置管理的基本概念8CMPLANCM计划Control控制Identification识别Audit审计Accounting状态纪录TheCMWheel5CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.9为什么要做配置管理?所有这些问题都需要解决!当今的软件系统太复杂了 多名开发人员组成项目团队 各种文件和不同类型的工作产品源代码目标码Web页面文档分析设计模型需求测试脚本 多次发布的releases 多平台 软件开发团队分布在许多不同的地点10配置管理的发展历史过去的人们是怎么做的呢?手工保存版本手工保存版本手工保存版本6CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.11配置管理的发展历史70年代早期,由UniversityofCaliforniaatSantaBarbara的LeonPresser教授发表了变更及配置控制的论文。1975年,他开发出了软件工具,并成为商用软件:CCC主要用于美国军方项目自70年代中期开始,UNIX平台出现了多种版本控制工具: SCCS(SourceCodeControlSystem)–MarcRochkind RCS(RevisionControlSystem)–WalterTichy并逐渐演化成为中央存储结构的版本控制工具SCCSÆCodemgrÆTeamWareÆClearCaseRCSÆCVS12什么是配置管理?配置管理是对即将构建的软件进行识别,组织,以及控制修改的艺术。其目标是昀大化生产效率,同时昀小化错误的发生。WayneBabichSoftwareConfigurationManagement:CoordinationforTeamProductivityAddison-Wesley,1986.7CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.13配置管理的另一个定义配置管理是系统地处理变更的实践,通过这些实践可以确保整个生命周期内系统的完整性和一致性。另外一个说法是“变更控制”。它包含评价已建议的变更、跟踪变更,以及保存各变更时间点上系统的副本。SteveMcConnellCodeCompleteMicrosoftPress,199314决不仅仅是版本控制不仅对保留源代码的各个版本,对文档、图片、设计也要如此…提供独立的工作空间引入过程控制构造(Build)管理变更请求管理地域分布式开发…8CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.15硬件CM产生195019601970198019902000软件配置管理出现第一代CM工具–版本控制第二代CM工具–图形界面,工作空间第三代CM工具–并行、build、过程支持自动化&工作流变更管理类比#1保险柜9CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.17存放所有软件资产的保险柜好的配置管理系统就像是存放软件资产的保险柜 为所有软件资产提供统一的存储库 能够存放各种类型的工作产品 能够满足各种规模的项目或团队需要 提供必要的安全机制18行业术语:存储库Repository这个“保险柜”的概念映射到配置管理领域,就是软件存储库的概念10CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.19类比#2相册20软件“相册”配置管理系统在软件上完成同样的工作,并自动加上标题和说明。在人的一生中,你会拍摄很多照片以保存留念每张照片都代表着某个时刻的快照相册帮助我们组织和维护所有照片的历史记录11CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.21胡乱存放的照片22TowerClock1955TimeMachine1985TimeMachine2015TowerClock1885Marty&Doc1885Marty&Doc1985NotMarty&DocMarty&Doc1955相册12CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.23软件也有历史...软件和其他东西一样,会不断变化CM系统记录了: 什么修改了foo.c从v1.5改成了v1.6 谁改的小高 什么时候改的Fri,Jun2513:53:35pm变更控制系统则解释了: 为什么会变更在GUI中修复了某个bugCM和变更控制系统帮助开发人员识别所开发的软件快照,并把他们组织到相册中去24行业术语:版本控制维护软件工作产品的所有变更存储任何软件变更的历史 Who What When Why以效率昀高的方式记录变更具备重建处于版本控制之下任何版本的能力13CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.25类比#3时光穿梭26什么是配置?管理所有文件和目录的所有的版本只是解决问题的一部分因为软件产品和源文件是一对多的关系,CM需要好的配置支持或工作空间管理 例如:为了创建一个软件应用系统,可能需要上百个(甚至上千个)源文件维护历史记录很好,但还不够!配置管理系统必须能重建软件系统的整个配置,而不应仅能识别文件的单个版本14CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.27配置–类比一下配置管理系统就是能让你访问所有这些配置的时光机。想象配置管理就是一台时光穿梭机: 我能访问昀新的源代码 我能访问用于不同平台或不同特定用户版本的昀新源代码 我能访问6个月前、12个月前甚至5年前创建release版本的源代码(回到过去了) 我能访问2年前创建release版本的源代码,加上昀近2年间所有修改bug的代码,但不包含任何新增的功能28Src/main/4util.c/main/4Foo.c/main/6Foo.h/main/2Bar.c/main/4Sub/main/1MysourcetreeTODAY配置管理系统就像软件的时光机…该系统不仅应能够展示昀新版本的代码:15CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.29配置管理系统就像软件的时光机…该系统还应能重建任何时间下的任何配置!!Src/main/2util.c/main/2Foo.c/main/3Foo.h/main/1Mysourcetree2yearsago30行业术语:工作空间管理配置管理基于以下方面,提供识别配置或工作产品集合的机制: 日期 创建(Builds) 开发活动 以上所有的组合配置管理为用户提供了可以访问任何配置的“时光机”(工作空间)在业界,我们一般把这种能力称为“工作空间管理”16CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.31类比#4多个作者共同编著的书籍32多个作者共同编著的书籍大型的软件开发项目就像多个作者共同编著一本书作者们可能各自负责编写完全独立的章节也存在几个作者同时编写同一页内的内容还有些作者可能在修订某个已经存在的版本;其他作者则在编著新的版本17CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.33多个作者共同编著的书籍如果作者们不知道其他作者所作的修改是什么,会出现什么情况?如果所有的作者共同在一份文稿上完成会是什么情况?如果他们有多份文稿又会怎样?如果多个作者在同一页上出现了有矛盾的修改应该如何处理?34行业术语:并行开发大型软件项目存在和前面所讲述的相同的情况 开发人员经常创建文件和目录的新版本 开发人员对现存版本的文件进行修改 在不同地点的开发人员需要在同一时间访问相同的代码 开发人员需要把他们自己的成果和其他开发人员的成果集成起来在配置管理领域中,我们把这种情况称为“并行开发”没有这些会怎样……混乱!18CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.35软件开发是团体性运动配置管理系统的并行开发和工作空间管理为用户提供了必要的“隔绝”要求开发人员需要彼此隔绝他们可能因为各种原因需要在同一时刻修改相同的工作产品 他们可能需要有多种路径来访问相同的源代码或工作产品为支持多平台为支持多版本交付(releases)为支持多个项目为支持多个客户现场36并行开发允许用户能够同时在相同的代码上工作,而不需要互相等待允许在相同代码上多流向(分支)的开发 为支持多项目 为支持多个交付版本(releases) 为支持多平台支持远程不同地点的团队开发当用户准备提交处理后的变更和接受其他人的变更时,应支持代码集成19CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.37CM的实施方法38有效的CM活动的特征需求、工作产品和软件得到控制,并且是稳定的能够在项目的任何一个时间点上知道系统的准确状态能够向上和向下追溯需求发布的产品的内容是清楚的在实施变更之前能够知道该变更的影响能够重新创建系统的先前版本20CopyrightCopyright©©20062006袁庆平袁庆平.Allrightsreserved..Allrightsreserved.39基本概念Repository存储库View视图Delta,Version,Release增量、版本、发布Baseline基线
本文标题:CMMI-module5- 配置管理
链接地址:https://www.777doc.com/doc-5090795 .html