软件配置管理对软件成果的有效保护_第1页
软件配置管理对软件成果的有效保护_第2页
软件配置管理对软件成果的有效保护_第3页
软件配置管理对软件成果的有效保护_第4页
软件配置管理对软件成果的有效保护_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、软件配置管理软件配置管理 对软件成果的有效保护对软件成果的有效保护 林林 锐锐 博士博士上上 海海 漫漫 索索 计计 算算 机机 科科 技技 有有 限限 公公 司司page 2) 目录目录1. 什么是软件配置管理什么是软件配置管理 2. 为什么需要配置管理为什么需要配置管理3. 人的问题人的问题4. 软件配置管理规范:软件配置管理规范:概念与流程概念与流程 5. 软件配置管理规范:软件配置管理规范:配置管理计划配置管理计划 6. 软件配置管理规范:软件配置管理规范:版本控制规则版本控制规则 7. 软件配置管理规范:软件配置管理规范:变更控制规则变更控制规则 8. 软件配置管理规范:软件配置管理

2、规范:配置库操作配置库操作 9. 软件配置管理规范:软件配置管理规范:配置审计配置审计 10. 常用配置管理工具常用配置管理工具参考书:软件工程与项目管理解析,林锐参考书:软件工程与项目管理解析,林锐 著,电子工业出版社,著,电子工业出版社,2003page 3) 1. 什么是软件配置管理什么是软件配置管理 1.1 忏悔录忏悔录 曾经有一个很好的配置管理工具在我面前,我没有理睬,直到版本混乱的时候才后悔莫及,工作中最大的痛苦莫过于此,如果上天再给我一次机会的话,我向对它说三个字:我要你。如果非得加一个期限的话,我希望是一辈子。 1.2 概念概念u不要和“计算机零配件组装”搞混淆。u软件配置管理

3、(software configuration management, scm)是指通过执行版本控制、变更控制等规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。 u配置管理与任何一位项目成员都有关系,因为每个人都会产生工作成果。配置管理是否有成效取决于三个要素:人、规范、工具 page 4) 1. 什么是软件配置管理什么是软件配置管理 1.3 配置管理的商业理念配置管理的商业理念 u企业的商业需求决定了配置管理的力度,我们不必追求完美无缺的配置管理,而是让开发团队恰好够用就行,并将为配置管理所付出的代价控制在预算之内。 u富有成效的配置

4、管理的特征: 任何项目成员都要对其工作成果进行配置管理,应当养成良好的习惯。不必付出过多的精力,最低要求是保证重要工作成果不发生混乱。 配置管理规范应当清晰明了,便于执行,不必在细节方面要求太多,不给项目人员添加过多的负担,不使人厌烦。 选择配置管理工具应当综合考虑价格、易用性和功能因素,而不是购买最先进的工具。令人满意的工具通常是价格低廉、简便易用、功能恰好够用。 ucmm/cmmi对配置管理过程域论述得十分清楚详细,假设完全按照cmm/cmmi的要求执行的话,你可以得到100分(满分)的配置管理成绩。出于商业利益考虑,我不向往出于商业利益考虑,我不向往100分的成绩,因为代价太高了。我更愿

5、意付出前者的分的成绩,因为代价太高了。我更愿意付出前者的30左右代价获取左右代价获取6070分(及格)的成绩,这样最划算。分(及格)的成绩,这样最划算。70100分的配置管理成绩对于大部分商业软件而言没有多少意义,那属于锦上添花,如分的配置管理成绩对于大部分商业软件而言没有多少意义,那属于锦上添花,如果我们没有足够的精力的话,那么就以最低的代价达到及格分数就行了。果我们没有足够的精力的话,那么就以最低的代价达到及格分数就行了。 page 5) 2. 为什么需要为什么需要软件配置管理软件配置管理 2.1 如果没有软件配置管理,将有什么坏处?如果没有软件配置管理,将有什么坏处?u最大的麻烦是工作成

6、果被覆盖。如果不采用配置管理软件来保存工作成果的历史版本的话,人们在同一个文件上修改内容,保存之后,那么新的内容覆盖了老的内容。多数情况下新的内容比老的内容好,覆盖了也没关系。但是总有不少意外,例如程序员修改了老程序员之后,突然发现新程序是错误的,而老程序却是对的,可是老程序被新程序覆盖了,再也无法恢复。怎么办呢?还能怎么办,只好重新写老程序再覆盖新程序呗,可是过一阵子又发现新程序也又可取之处,这时却无法恢复新程序了,只好重新写新程序再覆盖老程序,如果你经常碰到这样的事情,你会发疯的。为了避免成果被覆盖,很多人采用最原始的手工管理版本的方式,例如给文件加后缀“-01”、“-02”以表示版本。天

7、长日久,工作目录下就会有一堆带数字后缀的文件,而且你自己也忘记了数字后缀代表什么内容,管理起来非常麻烦。 我在读大学的时候,我自己以及周围的人都不知道软件配置管理,所以大家都有上述经历。幸好在学校里的人时间不值钱,工作成果也不值钱,可以穷折腾。但是在企业里工作,我们可不能不懂软件配置管理,否则就贻误工作浪费金钱了。 page 6) 2. 为什么需要为什么需要软件配置管理软件配置管理 2.2 使用软件配置管理,将有什么好处?使用软件配置管理,将有什么好处?u最直接的好处是工作成果的所有版本都被保留着,不会丢失也不会被覆盖,你不会气得发疯了。 如今硬盘的存储空间价格低廉,用于保存历史版本的存储空间

8、的成本可以忽略不计。如果你保存了工作成果的100个历史版本,哪怕99版本都是“垃圾”,只有一个版本里有“黄金”,那也值了。所以你尽管放心保存历史版本好了,累的是计算机又不是你,你怕什么。 u间接的好处是,项目的所有工作成果被完整地保留下来,这是企业的知识财富,可以被人们很好地分享利用。而且减少了人员辞职造成的损失,企业老板可以放心很多了。因为如果没有配置管理的话,人走了,即使他把成果刻录成光盘交给接收者,别人也搞不清楚那些成果的演化过程。 u我在事业部推广cmm的时候,有一天事业部总经理郑重其事地找我商谈,说某个产品线的经理要“跳楼n次”,请大家帮忙“解救”。因为他把更新北京客户的软件安装到天

9、津客户那里,却把更新天津客户的软件安装到其他客户那里,现在他自己也搞不清除发生了多少错乱!如果跳楼一次能够消除一个错乱的话,那么他要跳楼n次。这是典型的版本错乱问题,只有良好的配置管理才可以解救这位产品经理。 page 7) 3. 人的问题人的问题 3.1 事在人为事在人为 u配置管理的方法是成熟的,而且相应的软件工具也是成熟的,基本上不存在看不懂、不会用的问题。配置管理的执行效果如何,完全应了中国的一句老话“事在人为”啊。 妨碍配置管理的主要问题是人们“嫌麻烦”(还有侥幸心理)。 u在没有出乱子的情况下,执行版本控制看起来有些麻烦。每次修改工作成果的时候,总是先check out,然后再修改

10、,最后还要check in,多了前后两步。其实check out和check in两步操作只需花费几秒钟,而且不费脑子,凭良心说根本没有添加麻烦,仅仅是个人感觉不爽快而已。然而不执行版本控制的话,万一发生工作成果被覆盖或丢失等问题,那么麻烦就大了。 很多老百姓有闯红灯的不良习惯,本来只要等十来秒钟就可以安稳上路的,可就是感觉麻烦,就急着要闯红灯。人们平时不知浪费多少时间,你又何必节约这十几秒钟呢。在没有发行交通事故的时候,你闯红灯后有一股赚了的快感,万一你运气不好躺在医院里,就后悔莫及了。所以不要嫌配置管理麻烦,这点小麻烦是为了避免你遇到大麻烦。 u侥幸心理导致人们麻痹大意。我也有这个毛病,我

11、非常清楚版本控制的重要性,也能熟练使用配置管理软件,可是我常常把一个文件check out出来后,修改了一两周后才check in进去。我只敢对个人文件的配置管理存在侥幸心理,我从来不敢轻视软件产品的配置管理。因为前者出乱子的代价比较小,我承受得起,后者出乱子我可承受不起。(例如future 软件的配置管理)。 page 8) 4. 软件配置管理规范:软件配置管理规范:概念与流程概念与流程 4.1 配置项配置项 u软件研发和管理过程中会产生许许多多的工作成果,例如文档、程序和数据等,它们都应当被妥善地保管起来,以便查阅和修改。如果把所有文件一股脑地塞进计算机里,那么使用起来肯定很麻烦。毫无疑问

12、,人们应当将文件分门别类、有条理地保存起来。u凡是纳入配置管理范畴的工作成果统称为配置项(configuration item,ci)。配置项主要有两大类:属于产品组成部分的工作成果,例如源代码、需求文档、设计文档、测试用例等等。在管理过程中产生的文档例如各种计划、监控报告等等,这些文档虽然不是产品的组成部分,但是值得保存。 u每个配置项的主要属性有:名称、标识符、文件状态、版本、作者、日期等。所有配置项都被保存在配置库里,确保不会混淆、丢失。配置项及其历史记录反映了软件的演化过程。4.2 基线基线 u基线(baseline)由一组配置项组成,这些配置项构成了一个相对稳定的逻辑实体。基线中的配

13、置项被“冻结”了,不能再被任何人随意修改(见变更控制规程)。u基线通常对应于开发过程中的里程碑(milestone),一个产品可以有多个基线,也可以只有一个基线。基线的主要属性有:名称、标识符、版本、日期等。u通常将交付给客户的基线称为一个“release”,为内部开发用的基线则称为一个“build”。 page 9) 4. 软件配置管理规范:软件配置管理规范:概念与流程概念与流程 4.3 角色角色 u为了提高配置管理的效率和安全性,项目应当设有配置管理员这个角色。配置管理员的主要工作是为项目制定配置管理计划,创建和维护配置库等。 u对于大型的项目,鉴于配置管理的重要性和复杂性,机构应当设立配

14、置控制委员会(configuration control board,ccb)。ccb是个虚拟小组,对配置管理各项活动拥有决策权(例如审批计划,审批变更请求等)。对于配置管理而言,ccb是决策者,而配置管理员是执行者。u对于普通的小型软件项目而言,对于普通的小型软件项目而言,ccb这个概念难以落实,我们就不要玩虚的了,让项目经理或者这个概念难以落实,我们就不要玩虚的了,让项目经理或者配置管理员做决定就行了。配置管理员做决定就行了。 4.4 流程流程 page 10) 5. 软件配置管理规范:软件配置管理规范:配置管理计划配置管理计划 u配置管理员根据本项目的特征,起草配置管理计划,由ccb负责

15、人(通常是项目经理)审批。u配置管理计划的主要内容: 1. 人员与职责人员与职责 2. 软件硬件资源软件硬件资源 3. 配置项计划配置项计划 4. 基线计划基线计划 5. 配置库备份计划配置库备份计划 6. 版本控制规则版本控制规则 7. 变更控制规则变更控制规则 8. 审批审批 u模板见word文档page 11) 6. 软件配置管理规范:软件配置管理规范:版本控制规则版本控制规则 6.1 概念概念 u版本控制的目的是按照一定的规则保存配置项的所有版本,避免发生版本丢失或混淆等现象,并且可以快速准确地查找到配置项的任何版本。所有项目成员都必须遵照版本控制规程操作配置库。u配置项的状态有三种:

16、“草稿”(draft)、“正式发布”(released)和“正在修改”(changing)。u配置项状态变迁: 配置项刚建立时其状态为“草稿”。配置项通过评审(或审批)后,其状态变为“正式发布”。此后若更改配置项,必须依照“变更控制规程”执行,其状态变为“正在修改”。当配置项修改完毕并重新通过评审(或审批)时,其状态又变为“正式发布”,如此循环。 page 12) 6. 软件配置管理规范:软件配置管理规范:版本控制规则版本控制规则 6.2 版本号版本号 u(1)处于“草稿”状态的配置项的版本号格式为:0.yz yz数字范围为01-99。随着草稿的不断完善,“yz”的取值应递增。“yz”的初值和

17、增幅由用户自己把握。 u(2)处于“正式发布”状态的配置项的版本号格式为:x.y x为主版本号,取值范围为1-9。y为次版本号,取值范围为1-9。 配置项第一次“正式发布”时,版本号为1.0。 如果配置项的版本升级幅度比较小,一般只增大y值,x值保持不变。只有当配置项版本升级幅度比较大时,才允许增大x值。 u(3)处于“正在修改”状态的配置项的版本号格式为:x.yz 配置项正在修改时,一般只增大z值,x.y值保持不变。 当配置项修改完毕,状态重新成为“正式发布”时,将z值设置为0,增加x.y值。参见规则(2)。 page 13) 7. 软件配置管理规范:软件配置管理规范:变更控制变更控制 u变

18、更控制的目的是防止配置项被随意修改而导致混乱。为了提高效率,对于处于“草稿状态”的配置项,不必进行变更控制,因为它们本来就是草稿,本来就是要被不断地修改的。当配置项状态为“正式发布”,或者该配置项已经成为某个基线的一部分(即被“冻结”)时,如果要修改配置项的话,那么按照变更控制规则执行。 u步骤:第一步第一步 变更申请。变更申请。变更申请人向ccb提交变更申请,重点说明“变更内容”和“变更原因”。第二步第二步 审批变更申请。审批变更申请。ccb负责人(或项目经理)审批该申请,分析此变更对项目造成的影响。如果同意变更的话,则转向第三步,否则终止。 第三步第三步 安排变更任务。安排变更任务。ccb

19、指定变更执行人,安排他们的任务。ccb需要和变更执行人就变更内容达成共识。 第四步第四步 执行变更任务。执行变更任务。变更执行人根据ccb安排的任务,修改配置项。ccb监督变更任务的执行,如检查变更内容是否正确、是否按时完成工作等。第五步第五步 对更改后的配置项重新进行技术评审(或审批)。对更改后的配置项重新进行技术评审(或审批)。第六步第六步 结束变更。结束变更。当所有变更后的配置项都通过了技术评审或领导审批,这些配置项的状态从“正在修改”变迁为“正式发布”,本次变更结束。 u在实际操作中,审批变更申请并非总是“客观公正”的,人们并不在乎变更申请是否合理,关键看是谁提出变更申请。官儿越大的人

20、提出的变更申请总是优先处理的。 page 14) 8. 软件配置管理规范:软件配置管理规范:配置库操作配置库操作 u所有人员都依照配置管理规范和计划来操作配置库。 u配置管理员的主要操作有: 创建配置库,并且至少创建配置库的所有第一级目录。为每个项目成员分配操作权限。一般地,项目成员拥有add, check in, check out, download等权限,但是不要轻易拥有“删除”权限。配置管理员的权限最高。具体操作视所采用的配置管理软件而定。 根据“基线计划”创建与维护基线,“冻结”配置项,控制变更。 定期清除配置库里的垃圾文件。 定期备份配置库。 u其他项目成员根据自己的权限操作配置库

21、里的工作成果,例如add, check in, check out, download等。 page 15) 9. 软件配置管理规范:软件配置管理规范:配置审计配置审计 u配置审计的目的就是要保证所有人员(包括配置管理员、ccb、和普通项目成员)都遵守配置管理规范。所以配置审计是质量人员的工作职责之一,可以归类为“过程检查活动”。u人们对配置审计最大的误解是人们对配置审计最大的误解是“对配置库中的每个配置项都检查一遍对配置库中的每个配置项都检查一遍”,配置库里的配置项非常多,这样做无疑非常劳累,却没有多少价值。 u配置审计的对象是项目的主要配置项,如果主要配置项符合“版本控制规则”和“变更控制

22、规则”,并且定期备份了配置库,那么就可以认为配置管理符合既定的规范。反之,如果质量人员在审计的时候发现主要配置项比较混乱,那么应当告知当事人及时更正,这样就起到了审计的作用。 u总之,由于每个人都已经在配置管理上付出了时间,切勿再在配置审计方面化很多时间。 page 16) 10. 常用配置管理工具常用配置管理工具10.1 sourcesafe usourcesafe是microsoft公司推出的配置管理工具,是visual studio的套件之一。sourcesafe是国内最流行的配置管理工具,用户量绝对是第一位。 usourcesafe长得很象早先土气的文件管理器,的确难看。但是难看不碍事

23、,sourcesafe的优点可以用8个字来概括“简单易用,一学就会”,这个优点是它老妈microsoft遗传下来的,是天生的。 u虽然sourcesafe并不是免费的,但是在国内人们以接近于零的成本得到它,网上到处可以下载啊。当然microsoft也不在乎这个小不点的软件,它属于“买大件送小件”的角色。如果你合法地得到visual studio,你就得到了免费的sourcesafe。 usourcesafe的主要局限性:只能在windows下运行,不能在unix, linux下运行。sourcesafe不支持异构环境下的配置管理,对用户而言是个麻烦事。这不是技术问题,是微软公司产品战略决定的。

24、适合于局域网内的用户群,不适合于通过internet连接的用户群,因为sourcesafe是通过“共享目录”方式存储文件的。 u人无完人,物不尽美。有些卖配置管理工具的软件供应商经常贬低souresafe,讽刺它是source not safe。我不想为谁辩护,只是给出一个例证说明sourcesafe的效用。有一个软件事业部(约百名开发人员)的十余个项目全部采用sourcesafe来管理,只用一台pc机作配置管理服务器,运行一年都没有发生异常现象。 page 17) 10. 常用配置管理工具常用配置管理工具10.2 cvs ucvs 是 concurrent version system(并行

25、版本系统)的缩写,它是著名的开放源代码的配置管理工具。 ucvs的官方网站是/ 。官方提供的是cvs服务器和命令行程序,但是官方并不提供交互式的客户端软件。许多软件机构根据cvs官方提供的编程接口开发了各色各样的cvs客户端软件,最有名的当推windows环境的cvs客户端软件wincvs。wincvs是免费的,但是并不开放源代码。u与sourcesafe相比,cvs的主要优点是:sourcesafe有的功能cvs全都有,cvs支持并发的版本管理,sourcesafe没有并发功能。cvs服务器的功能和性能都比sourcesafe高出一筹。cvs服务器是用java编写的,可以在任何

温馨提示

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

评论

0/150

提交评论