资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,软件配置管理,培训,一、配置管理基本概念,二、,ClearCase,基本概念,三、,ClearCase,操作演示,四、配置管理员的职责,1,配置管理基本概念,三个基本概念:,配置项,配置管理,基线,2,配置管理基本概念,配置项,:,在软件生命周期各个阶段所产生的各种形式(机器可读或人工可读)和各种版本的文档、程序及其数据形成一个集合。该集合中的每一个元素称为一个配置项(,configuration item)。,这个集合称为软件配置。,3,配置管理基本概念,配置项的例子,需求文档,设计说明书,源代码,测试案例,编译器,数据库,4,配置管理:,软件配置管理是软件项目开发的一项支持性活动,就是在软件项目整个生命周期范围内,对配置的完整性进行维护的基本项目管理机制。它标识软件配置项,并定义基线;控制配置项的修改和发布;记录和报告配置项的状态和修改申请;保证配置项的完整性、一致性和正确性。,配置管理既管理代码,也管理文档,配置管理基本概念,5,配置管理基本概念,配置管理中应至少管理以下内容:,客户需求,软件需求,设计文档,源代码,测试计划和测试案例,6,配置管理基本概念,什么是基线?,基线是经过正式评审和批准,并且只能通过正式的变更控制机制才允许变更的配置项的集合。,在项目的不同阶段会建立不同的基线,一般情况下推荐建立两条基线:,需求基线;,产品发布基线;,7,ClearCase,基本概念,Rational,ClearCase,LT,简称或,CC,或,ClearCase, C/S,结构,四大功能:,版本控制,工作空间管理,过程控制,建立管理(,x),8,ClearCase,基本概念,ClearCase,结构,:,客户/服务器结构,:,ClearCase,是运行在分布式,Client/Server,结构中的“组件”产品。,图形用户界面,:,ClearCase,包含传统的命令行界面及图形用户界面,与,Windows,资源管理器的集成,:,ClearCase,操作对于用户简单有效,9,ClearCase,基本概念,版本控制:,ClearCase,的核心功能是版本控制。,控制任何文件的版本,在版本树中组织元件发展的过程,对目录和子目录进行版本控制,使用常见的检出,/,编辑,/,检入范例,丰富的注释信息和版本数据的报表,通过分支功能支持并行开发,自动的比较和版本间的归并,10,ClearCase,基本概念,工作空间管理:,快速、有效的工作空间建立对于提高个人和团队的效益是非常重要的。通过视图(,View),的使用,,ClearCase,提供了一套独立的工作空间管理设施。,ClearCase,可以让开发者和应用者以一种标准文件目录树的形式访问,VOB。,这种透明的访问使得版本控制系统具有良好的可视化。,11,ClearCase,基本概念,工作空间管理:,用户可以指定版本选择规则,视图可以让开发者对任何元素的任何版本进行透明的、文件级的访问。,ClearCase,的视图具有灵活性、可调性、有效性并可随时自动更新。,ClearCase,支持规范的开发环境,它可以维护公有和私人两种数据存储类型。,12,ClearCase,基本概念,过程控制:,ClearCase,提供了过程和策略控制机制以提高软件质量,缩短产品投放市场时间,以及调控整个软件开发过程。,可以利用元数据抓取状态信息,如定义分支,事件触发器,属性,锁,以及,“,通知”特性能自动进行交流信息等。,ClearCase,可以自动记录重要的状态信息,当对象发生变更的时候,它会收集谁、何时、为什么、用户注释、以及其它的重要数据。,13,ClearCase,基本概念,VOB,View,元数据,分支,合并,配置规格 ,14,ClearCase,基本概念,VOB:,VOB,是版本对象库,是数据的永久存储仓库。,VOB,中储存的对象也叫元素,可以是文件、文件夹或者元数据。服务器上可以有多个,VOB,库。一个项目可以根据其大小,创建一个,VOB,,或者创建几个较小的,VOB。,不能直接访问,VOB,,可以通过视图来访问,VOB。,15,ClearCase,基本概念,View,即视图:,视图就是一个工作空间,也就是一个目录树。用户通过创建视图访问,VOB,中的数据,可以有任意数目的视图。视图中不仅可以存放,VOB,中各种版本的文件元素、目录元素,也可以存放不受,ClearCese,控制的文件,即用户的私有文件。任何,ClearCese,用户都可以创建视图,而且可以创建多个视图,用户的多个视图之间没有关联关系。视图中要存放哪些文件的版本,是根据视图的配置规格进行选择的。,16,ClearCase,基本概念,View,即视图:,VOB,中的数据是不能直接访问的,只能通过视图访问。 创建视图时,要尽可能创建短期的、面向任务的视图,任务完成后即删除该视图,释放它所占用的空间。无用的视图要及时删除。,有两种类型的视图,快照视图(,snapshot view,)、,和动态视图(,dynamic,)。,17,ClearCase,基本概念,Metadata(,元数据):,标签(,Label,),属性(,Attribute),超链接(,Hyperlink),锁(,Lock,),触发器(,Trigger,),18,ClearCase,基本概念,Metadata:,元数据,标签、属性、超链接、锁、触发器(,Label,、,Attribute,、,Hyperlink,、,Lock,、,Trigger,),统称为元数据。元数据是与对象有关的数据,用于补充对象的文件系统信息。可以利用这些元数据对象来实现特定的功能,。,19,ClearCase,基本概念,标签:,标签是一个标签类型的数据对象的实例。标签可以关联到元素的一个版本上,也就是说,可以给元素的任何一个版本打上版本标签,便于记忆。也可以在一组元素(可以是文件和文件夹)的版本上打标签,从而维护元素间的相互关系。当一组文件的版本经过整合、测试后认为稳定时,可以打上标签,作为下一步工作的基线。,20,ClearCase,基本概念,属性:,属性是由一对名称-值构成的对象,也就是说,当创建一个属性时,既要创建一个属性名称,还要给该属性赋予一组不同的值。属性的值可以是整数、实数、字符串等类型。可以用属性来注释说明项目的进展情况和监视项目的状态。,21,ClearCase,基本概念,属性:,例如,可以创建一个属性名称为,commentDensity,,,值是,unacceptable, low,high,或,medium,的属性,,赋给一组,源代码,说明这组源代码的性质。,22,ClearCase,基本概念,超链接:,可以定义对象之间的关系。例如可以把需求文档与代码连接起来,或设计文档与可执行文件连接起来等。,锁: 可以防止对象被修改。锁可大可小,可以锁整个,VOB,,也可以只锁一个,branch、,一个文件。,23,ClearCase,基本概念,触发器,:,是用户定义的事件,当某些,clearcase,操作发生时被激活。触发器有两种类型,事前触发和事后触发。事前触发的触发器在,clearcase,事件发生前被激活,例如,当点击,checkin,命令时,可以提示开发人员输入适当的注释;事后触发的典型应用是通知。例如,一个事件出现后,发送,e-main,通知项目组。,24,ClearCase,基本概念,用户和组:,ClearCase,本身不实现自己的用户和组的账号。它依赖于操作系统,通过用户在操作系统中的登录鉴别用户,得到用户身份和组成员的资格,并由此得到用户进行,ClearCase,操作的权限。,25,ClearCase,基本概念,用户和组:,在,Windows 2000,操作系统中,用户登录系统必须要有自己的用户名,,ClearCase,就把该用户名作为用户身份或叫做用户,ID。,一个用户,ID,可以是一个或多个组的成员,在这些组中有一个组叫做用户的主要组(,Primary Group),区别与其它所有组。,ClearCase,同时根据用户,ID,和用户的主要组来决定用户对,ClearCase,对象的访问权限。,26,ClearCase,基本概念,锁定,VOB,对象,:,用户和组设置,是一种长期的访问控制机制。,ClearCase,还通过加锁提供一种短暂的访问控制。可以给整个,VOB,加锁,以防止任何对,VOB,的修改。,在对象被加锁之后,任何用户包括特权用户和加锁的用户都无法修改该对象。但特权用户和加锁的用户可以去锁。利用,Lock,命令加锁时,可以指定某些用户在加锁后仍然可以修改对象 。,27,ClearCase,基本概念,锁定,类型对象,:,可以将,Main,分支对所有用户加锁,但项目经理除外,则项目经理可以对所有元素的,Main,分支进行整合或者清理和发行相关的工作。其它用户可以继续工作,但这可以在其它分支上进行,而不是在,Main,分支上。,锁定一个标签类型,防止任何用户创建和删除该标签。对某个发行版本的所有元素生成标签,然后锁定该标签,这样下次重新生成该发行版本就非常容易了 。,28,ClearCase,基本概念,分支,:,分支的概念是为了支持并发。一个项目是否需要并行开发,是根据实际情况确定的。如果需要并行开发,也就是说,两个以上的人,对同一个或同一组文件同时进行修改,则项目经理要定义分支策略,包括为什么分支,什么时间产生,分支上将发生什么行为,以及分支最终如何消亡等,。,29,ClearCase,基本概念,版本树,:,在,clearcase,中,置于版本控制下的每个元素,都以一个主分支和一个不包含任何内容的零版本开始,即/,main/0。,每一次,checkin,操作,都会创建该元素的一个新版本,版本号自动加。第一次新版本,checkin,创建主分支上的版本1,即/,main/1。,30,ClearCase,基本概念,版本树,:,当并行开发时,元素的版本被组织成不同的分支即,Branch。,分支代表着一个元素的一系列版本,每一个元素都有一个,main branch,,代表该元素的主要开发线,可能还会有几个子分支。元素不同分支的多次修改所形成的版本,很象一棵树,称为版本树。版本树上的版本号是自动形成的,记录了它在版本树上的位置。版本的分支组织方式按时间顺序表现对每个元素的历史。,31,32,ClearCase,基本概念,合并,:,和分支相对应的概念就是合并,即,Merge,。,合并就是将文件的多个版本组合成一个新版本的过程。最简单的合并通常称为两两合并。两两合并就是合并两个文件产生第三个。有分支的开发其目的是,在某一时刻将分支上的开发合并回源主干。,合并时需要开发人员进行沟通和协商。,33,ClearCase,基本概念,工作流,:,工作流是一个,ClearCase,对象,它维护一组活动和基线的列表,并确定元素的哪些版本出现在开发人员的视图中。工作流是创建和记录配置的一种机制。,UCM,用基线和活动来描述工作流的配置。当创建工作流时,其初始配置就是选择的基线。流的配置就是一个给定的基线加上一个或几个活动。,34,ClearCase,基本概念,活动,:,活动是一个,ClearCase,对象,用活动来记录完成开发任务所需要进行的工作。例如,一个活动可能是改变图形用户界面,要完成这种改变可能需要编辑几个文件。,UCM,在变更集中记录为了完成这个活动所创建的版本序列。,因为活动与有意义的项目任务相关,因此可以更容易跟踪项目的进展。例如,可以确定哪个活动是在哪个基线中完成的。,35,ClearCase,基本概念,36,ClearCase,基本概念,配置规格,:,在创建视图时,需要通过配置规格挑选文件夹和文件的版本,这些指定版本的文件夹和文件,构成了该视图的个人私有工作空间。,缺省的配置规格如下:(这也是标准配置规格),element * CHECKEDOUT,(,1,),element * mainLATEST,(,2,),37,ClearCase,基本概念,配置规格,:,规则(,1,)选择本人,checkout,出来的文件,在该视图中显示,并且,当取出文件时,会将它设为可写属性,如果忽略该规则,则在取文件时会产生告警信息。,规则(,2,)指定了在,checkout,文件时,从,main,分支的最新版上,checkout,。,如没有该规则,则当添加新文件时,文件在视图中不可见。,38,ClearCase,基本概念,配置规格的格式规则如下:,元素范围,路径名模式 版本选择,可选语句,元素范围,用来确定该配置规格适用的元素对象。,例如:,element,指适用于所有的元素;,element file,指适用于文件元素;,element directory,指仅适用于目录元素;,39,ClearCase,基本概念,配置规格的格式规则如下:,元素范围,路径名模式,版本选择,可选语句,路径名模式,路径名中可以包含通配符,例如:,* 匹配所有的元素路径名;,*.,c,匹配所有的以 .,c,为扩展名的元素路径名;,src,/util.c,匹配在,src,目录下名称为,util.c,的任何一个元素;,src,/.,匹配任意,src,目录树;,40,ClearCase,基本概念,配置规格的格式规则如下:,元素范围,路径名模式,版本选择,可选语句,版本选择,可以使用版本标签,或者分支名称。,例如:/,main/4,元素,main,分支中的版本4;,REL2,贴有,REL2,标签的版本;,./,mybranch,/LATEST,mybranch,分支的最新版本。,表示,mybranch,分支可在元素版本树的任意位置发生;,/,main/REL2,在,main,分支下贴有,REL2,标签的版本;,CHECKEDOUT,所有由,checkout,命令取出的版本;,41,ClearCase,基本概念,配置规格的格式规则如下:,元素范围,路径名模式,版本选择,可选语句,可选语句,补充或修正配置规则的含义。,例如:,time,date-time,取出在给定时间前创建的最后一个版本。 /,main/LATEST time 10Jul.19:00,表示在,main,分支中7月10日下午7点前创建的最新版本; ,time 11:23:00,今天11:23前创建的最新版本;,time now,今天此刻前创建的最新版本;,42,ClearCase,基本概念,配置规格的格式规则如下:,元素范围,路径名模式,版本选择,可选语句,time,date-time,中,日期和时间的格式为:,date -,可以是,today |yesterday |Sunday |. |Saturday |Sun | .|Sat ,,或,dd,mont,h,y,y,y,y, ,,mont,h,是,January |. |December |Jan |. |Dec,time,-,hh,:,mm,:,ss,以24小时的方式指定时间。,43,ClearCase,基本概念,配置规格的格式规则如下:,元素范围,路径名模式,版本选择,可选语句,mkbranch,branch-type-name,自动创建一个分支。,当使用该规则,checkout,元素的某个版本时,会在该版本上创建一个新的分支,新分支上的版本0被,checkout,出来。,element * CHECKEDOUT,(,1,),element * .rel2_,bugfix,LATEST,(,2,),element * REL2 -,mkbranch,rel2_,bugfix,(,3,),44,ClearCase,基本概念,配置规格的格式规则如下:,元素范围,路径名模式,版本选择,可选语句,上面,的配置规则可以从,REL2,版本创建一个,rel2_,bugfix,branch,,,并在此解决,REL2,版本中的,BUG,。,这一规则的关键之处在于:所有修改的文件都是属于,rel2_,bugfix,分支的。(,2,)中的统配符,.,使得,rel2_,bugfix,分支可以在任何元素的版本树上的任意位置形成。(,3,)中的命令,mkbranch,创建了,rel2_,bugfix,分支。,45,ClearCase,基本概念,根据配置规格选择版本的过程:,有一个视图服务器负责版本的选择。,1 对于每一个元素,视图服务器首先试图找到一个与第一条规则相匹配的版本,如果这样的一个版本存在,则把它放入视图;如有多个版本同时和第一条规则匹配,则报出错信息,视图中不载入任何版本;,46,ClearCase,基本概念,根据配置规格选择版本的过程:,有一个视图服务器负责版本的选择。,如果没有找到匹配第一条规则的版本,则继续向下查找,即查找满足第二条规则的版本。并依次按照这种方式,直至查到最后一条规则。,如果没有找到与任何一条规则相匹配的版本,则在视图中不载入任何版本。,47,ClearCase,基本概念,配置规格的语法要求:,一条规则只能占一行,不能续行。,多条规则可以在同一行上,每一条之间用 ;号隔开。,大小写敏感;,顺序敏感,排序不当会影响版本的选择。,例如,如果,element * /main/LATEST,出现在第一条规则的位置,则后面的其它规则都将形同虚设,视图服务器只访问第一条,永远不会访问其它规则。,48,ClearCase,基本概念,理解,VOB,的存储目录:,每一个,VOB,都有一个存储目录。,VOB,的存储目录及其,所有的内容都是通过,clearcase,工具管理的。,不要使用任何非,clearcase,工具改变或修改,VOB,存储,目录及其内容,也不要使用非,clearcase,工具改变它们的,保护模式,。,从资源管理器中看到的,VOB,中的内容都是一些数字、,字母组成的符号。,49,从资源管理器中看,VOB,50,admin,目录,包含,VOB,所使用的磁盘空间的数据;,s,目录,,VOB,的源存储池位于该目录中;,c,目录,,VOB,的缓冲存储池位于该目录中;,d,目录,,VOB,的导出对象(如编译产生的中间结果)存储池位于该目录中;,db,目录,是,VOB,的内置数据库。数据库中存放的是版本控制信息、元数据、类型对象、以及用户进行,clearcase,操作的事件记录。,Clearcase,控制下的文件的内容,存放在源存储池中,而不是数据库中。,51,从资源管理器中看,VOB,52,ClearCase,基本概念,Lost+found,目录,:,每一个,VOB,存储目录都包含一个特殊的目录,Lost+found 。,它相当于一个回收站。,Clearcase,用这个目录来存放那些不属于任何目录版本的元素。,有两种情况:,1、当,checkout,一个目录,创建一个新的元素,然后又取消了该目录的,checkout,操作,即,undo checkout ,,这时,创建的那个新元素,就会被放到,lost+found,目录。,53,ClearCase,基本概念,Lost+found,目录,:,2、,在,clearcase,中有一个命令,rmname,,,即删除一个元素的名称。这个操作并没有真正删除文件,只是从目前的目录版本将该文件的名字除掉(,uncatalogued,)。,这个文件是可以恢复到原来的目录上的。,delete,某个文件时,所运行的操作实际上是,rmname,元素被移到,lost+found,目录后,其名称会发生变化。,54,ClearCase,基本概念,VOB,与,View,的关系 :,当用户创建视图时,实际上是从,VOB,中取得了元素的指定版本的一份拷贝,在自己的机器上生成了一个目录树。,当执行,update,命令时,视图服务程序根据视图的配置规则,将,VOB,中元素的最新版本拷贝到用户的本地视图中。,当执行,checkin,命令时,实际上是在直接更新,VOB,。,当执行,checkout,命令时,视图服务程序会把用户视图中的版本与,VOB,中的版本进行比较,如果用户视图中的版本比,VOB,中的版本旧,则会提示用户进行选择。,55,ClearCase,基本概念,什么情况下会出现“被劫持的”文件,:,很多不同的情况下会出现,Hijacked,文件。出现,Hijacked,文件是因为一个,loaded,,uncheckout,的文件的,size,或最后修改的时间戳与视图数据库中所记载的不一致。最常见的情况是,如果没有做,checkout,,而是改变文件的只读属性进行文件修改时,会出现,Hijacked,文件。还有,如果,VOB Server,端,View Server,端和客户端的时间相差太多也会出现,hijacked file。,另外一个常见的情况是在,Windows/Unix,混合环境上使用,ClearCase,。,56,ClearCase,基本概念,如何处理,Hijacked,文件?,对于,Hijacked,文件有两种处理方法:,1,),Check out the file.,然后可以继续修改,在适当的时候做,checkin,;,2,),Undo the hijack,,然后重新装载原来的版本。,57,ClearCase,基本概念,配置库分区:,一般情况下,建议配置库至少分为3个区,也就是说,在项目的根目录下,建立3个子目录:,开发区;,测试区;,工程区;,58,ClearCase,基本概念,配置管理中的角色和职责:,角色 职责,项目经理 制定开发策略、分支策略、合并策略,技术管理部 项目启动时,创建项目,分配,访问权限,的备份。,配置管理员,项目配置库的策划、建立、管理和维护;,元数据类型的创建和使用,确定配置规格等,开发人员 文件的,checkin,、checkout、merge,59,?,60,ClearCase,操作演示,1 安装,2 设置主要组,3 创建视图,4 开发人员的常用操作:,加文件;,Checkout;,Checkin,;,Undo checkout;,删除元素;,处理,hijacked,文件,61,ClearCase,操作演示,5 管理员的常用操作:,修改访问权限;,加锁;,创建标签类型;,贴标签;,创建分支;,使用分支;,62,ClearCase,操作演示,步骤见操作指南,63,配置管理员的职责,负责项目配置管理库的策划、建立、管理和维护,指导项目组人员使用配置管理工具,元数据类型的创建和使用,如打标签,确定配置规格,负责产品的编译和构造(,Build),64,
展开阅读全文