当前位置: 首页 > 工具软件 > ClearCase > 使用案例 >

ClearCase四大功能详述

商和颂
2023-12-01

 建立管理

 

使用ClearCase,构造软件的处理过程可以和传统的方法兼容。对于ClearCase控制的数据可以使用自制脚本或本机的make程序,但ClearCase的向上兼容建立工具clearmake和omake为构造提供了重要的特性:自动完成任务、保证重建的可靠性、存储时间和支持并行的分布式结构的建立。

工作空间管理

 

快速、有效的工作空间建立对于提高个人和团队的效益是非常重要的。通过视图(VIEW)的使用,ClearCase提供了一套独立的工作空间管理设施,可以实现动态评估、选择指定用户版本和透明的访问多种配置的功能。

版本间的透明访问

  ClearCase提供了对版本进行透明访问的功能。通过VOB机制(包含文件或目录的多个版本),ClearCase可以让开发者和应用者以一种标准文件目录树的形式访问VOB。这个特性被成为透明――ClearCase的版本控制系统因而变得可视化。

  透明是一个非常重要的特性,它允许ClearCase在使用系统软件、商业应用和内部工具时进行平滑的工作。比如:象grep,more,ls,cc这种标准UNIX程序,在操作ClearCase版本控制数据时与操作一般的文件系统对象的方式一样。

  通过ClearCase的多版本文件系统可以(MVFS)在虚拟文件系统上实现透明操作。MVFS可中断标准的I/O调用,并且ClearCase的版本选择结构可以细化到从一个元素到另一个元素版本的目标调用。

  对于Windows NT,ClearCase的MVFS一般缺省作为"M:"驱动盘出现,活动视图作为"M:"盘的根目录出现。正常情况下,ClearCase可以为每一个活动视图分配更多的虚拟盘(从"Z:"以后工作―)。把VOB设置成每一个虚拟盘的子目录。这样就可以让开发者使用自己的工具透明的访问被ClearCase控制的数据,甚至是UNIX VOBs和视图。

通过规则视图选择并显示版本

  ClearCase的视图提供了强大的、独立的工作空间管理(也称作"环境管理"或"沙盒管理")。通过使用动态评估、用户指定版本选择规则,视图可以让开发者对任何元素的任何版本进行透明的、文件级的访问。ClearCase的视图具有灵活性、可调性、有效性并可随时自动更新。

  通过开发者对ClearCase控制的数据和程序的版本进行选择,视图可以对完整的文件系统配置进行动态管理。它也可以访问主机上的其它数据和程序。

  ClearCase支持规范的开发环境,它可以维护公有和私人两种数据存储类型。所有的ClearCase用户可以共享或公开在VOB中存储的数据,它们包括一些常规访问的计划信息。存储在视图中的私有数据一般包含属于开发者个人的文件,如:通过标准工具被检出的文件元素版本,在视图中由ClearCase建立的原始对象,和由视图用户在VOB目录中建立的文件和目录。视图在"虚拟工作空间"存储了这两种数据,开发者每天对其执行检入、检出、编辑原文件操作、建立软件和修复系统等操作。

  在视图中选择的版本可以称为视图配置。视图配置是动态的并可以在任何时候被开发者修改。视图配置在配置规格说明的一系列规章被定义。一般的,视图的配置在通配符和助记符的术语表中被定义,而不是通过指定具体的版本名称。 每个开发者都可以拥有多个视图,并且可以在任何视图中设置过程。此外,不同视图可以看同一路径名下的同一元素的不同版本。比如:一个视图可以浏览某一元素最近的版本;另一视图也可浏览该元素的某一版本,它可能曾经用于构造某一具体的发放版本;可能还有其它视图浏览该元素用于修复错误的版本。

  此外,那些不受ClearCase版本控制的所有的文件和目录(标准文件、本地的脚本和程序,等。),也都可以通过视图进行浏览。从而使得ClearCase成为开发者的好友,当他们使用视图浏览数据文件、修改框架脚本、编译程序时,通过使用扩展视图的路径名或扩展版本的路径名,开发者可以提高透明度。扩展视图路径名可以覆盖当前视图并且可以访问当前出现在其它视图中的元素的版本扩展版本路径名是一种独立的视图,它可以通过版本树的位置或版本标签定制一个特殊的版本,而不管该版本究竟出现在哪个视图中。

从没有安装ClearCase的主机平台进行视图访问

  在局域网中ClearCase所控制的数据对于未安装ClearCase的机器也可使用。比如:一个ClearCaseUNIX主机可以通过一种特殊的视图输出VOB;而网上的其他主机可以通过NFS机制连接它。这样它就让开发者在未安装ClearCase的主机平台上使用自己的工具对视图进行读写访问,编译并建立自己的应用。未安装ClearCase的主机必须重新注册或使用安装ClearCase的UNIX主机上的X-Windows系统做检入、检出操作。

 

 

过程控制

 软件开发的策略和过程由于行业和开发队伍的不同而有很大差异,但是有一点是肯定的:即提高软件质量,缩短产品投放市场时间。ClearCase为团队通信、质量保证、变更管理都提供了非常有效的过程控制和策略控制机制。这些过程和策略控制机制充分支持质量标准的实施与保证,如:SEI Capability Maturity Model 和ISO 9000。

  ClearCase具有以下过程控制的优势

集成了一些灵活、定制的工具

  ClearCase提供了过程和策略控制机制以提高软件质量,缩短产品投放市场时间,以及调控整个软件开发过程。ClearCase所具有的监测和控制开发过程的工具无需指定预定义方法学、政策、以及过程。它本身的灵活性、强有力性,为管理者实现现有策略的自动化和巩固以及创建其它新的过程管理系统成为可能。ClearCase中所包含的灵活机动的工具可以让开发人员实现:

  ■ 监控开发过程;

  ■ 组织、交叉查询开发中涉及到的所有数据,如:源代码、记录、设计初衷、技术手册等;

  ■ 在个人和团队之间实现自动化的通讯;

  ■ 自动处理冗长、有错误倾向的步骤。

  这些工具都是基于元数据操作的,所以过程管理所涉及到的数据结 构和程序都是独立于元素变量内容的。总而言之,主要的过程管理特征就是:以元数据抓取状态信息,策略增强工具、?quot;通知"特性。

利用元数据抓取状态信息

  ClearCase元数据(在VOB中与对象相关联的数据)抓取特定对象的状态信息。在过程控制中共有三种类型的ClearCase元数据可用:

  ■ 属性。一个属性是一对值: 名字=取值。开发者可对大多数对象赋予属性。属性可取多种类型的值,整型、字符串、日期等。取值被限制在特定的范围内,或限定于特定的枚举值。例如,Codequality属性可有A、B、C、D或F五个值。其强有力的查询工具允许用户查找,如一个叫John的用户在上个月创建的包含Codequality=A的所有版本文件。而增强机制则自动为对象分配了属性。

  ■ 超级链接。所谓超级链接是一个连接着两个对象的逻辑"箭头"。例如,一个超级链接可以连接设计文档和资源代码模块。超级链接可追溯到所有的元素变量、特定的版本(需求追踪也同样需要)、或者对象中的某一部分。它可跨越VOB并重命名、移动一个对象或这个对象所在VOB。利用超级链接浏览器,用户还可以显示、创建、访问、维护CLEARCASE超级链接的网络。

  ■ 历史事件。ClearCase自动记录下来重要的状态信息,当对象发生变更的时候,它会收集"谁、何时、为什么"、用户注释、以及其它的重要数据。系统也会保留创建、释放项目时的类似信息。

定制的策略增强工具

  ClearCase的策略增强工具支持管理者建立并加强一个好的软件开发策略。ClearCase的工具包括:

  ■ 事件预触发。事件预触发机制监视每一特定ClearCase操作(如:检入 check-in)或操作类(如:改变VOB的任一命令)的使用。在操作执行之前,触发开始,经历以下特定步骤:程序、批处理文件、脚本、其它内置动作之一。同时,一个触发还可要求在执行某个操作命令之前对它进行检查,并据此判断是继葱小⒒故侨∠僮鳌?/p>

  ■ 锁。针对于一个对象,锁禁止对象发生变更。锁可被划分的很细(例如,只锁住指定的元素变量),也可以笼统而论(例如,锁住整个VOB)。一个典型的应用就是:在软件集成阶段,锁住所有主干元素。而且,每个锁可定义"锁定例外表",允许特殊用户修改对象。

  ■ 访问控制。对所有元素采用类似UNIX的保护机制。这种保护机制控制读、写、以及基于传统标准上的对象执行:单个用户的、开发团队的、或其它。同时,它还对文件系统之下的物理存储施加保护,有效的制止那些试图逃避ClearCase或破坏原始操作系统存储的小动作。

  ■ 自动创建分支。当所有的变更动作是在分支上以同种模式进行时,最易于维护工作。而ClearCase恰恰增强了这一点,当元素检出的时候,ClearCase会为它自动创建分支,并指定一个名字。

“通知”特性能自动生成报表、交流信息

  ■ 事件后触发。事件后触发机制好象一个监视器,它在特定操作完成后运行。实际上,这一触发会在某个命令执行后、或给某个对象赋予属性后,把这些动作通知给用户。为了便于脚本和程序实施触发动作,ClearCase自动设置了一些环境变量。以一个"检入"的事件后触发为例,它会告之质量保证部门有一个用户已修改过某一特定的文件,并且,还会包括在 "检入"时那个用户输入的注释。

  ■ 查询功能。ClearCase中有一个 find(查询)命令,使得开发者迅速的获知当前项目的状态。实际上,find(查询)命令就是在一个或多个VOB数据库上实施查询操作。例如,查找不具有 Passed=QA属性且属于Release 2.0的所有版本文件。

  ■ 动态配置规格。配置规格的方法是根据标签、属性、超级链接、以及历史事件选择版本文件。和find(查询)命令一样,这些方法同样具备查询功能。如,配置规格可以选择“具有Passed=QA属性的最新版本,或者是由用户drp创建的最新版本。”

 

版本控制

 ClearCase的核心功能是版本控制,它是对在软件开发进程中一个文件或一个目录发展过程进行追踪的手段。ClearCase对所有文件系统对象(包括文件、目录和链接)增强了版本控制系统功能。可定版本的文件包括源代码、可执行文件、位图文件、需求文档、设计说明、测试计划、和一些ASCII和非ASCII文件。目录的版本记录了整个组织基础资源的发展状况,包括源文件的建立、重新命名、重新构造和删除操作等。 这种版本控制系统提供了先进的版本分支和归并功能用于支持并行开发。

控制任何文件的版本

  ClearCase可以对每一个软件组件或元件的版本进行维护和控制。ClearCase也可以维护一个非文本文件、目录和工具的版本。正如:它可以管理库文件、编译器、需求文档、 测试包和数据库而不仅仅是源代码。

  ClearCase的元件类型可以管理版本内容。用户可以定义自己的元件类型,也可以使用ClearCase中的预定义类型:文本文件、压缩文本文件、文件、压缩文件和二进制增量文件。

  ClearCase可以利用增量算法将文本文件存储在一个特殊结构的文件容器中。ClearCase采用标准的压缩技术和增量算法存储一个压缩文本文件。(这比以往的存储形式节省了50%―70%的存储空间。)

  这种元件类型文件和压缩文件可以被用于控制任何操作系统文件──比如,可执行程序、程序资源库、结构数据库和结构文档文件。二进制增量文件类型可以随时被用于二进制文件格式。

在版本树中组织元件发展的过程

  在ClearCase中,元件版本的组织体现在版本树结构中。一个版本书的结构可以按目录结构定制, 还可以包含多层分支和子分支。

  在一个典型的开发环境中,很多元件的版本树结构最初仅包含一个分支,即, 元件的版本排列在同一条线型队列中。随着时间的发展,当用户做一些错误修复、代码的组织、一些实验性修改或指定平台的开发时,它们可以给一些相关元件定义子分支,从而脱离主干进行开发。ClearCase可以支持多级的分支操作,还可以给版本或分支命名。

对目录和子目录进行版本控制

  ClearCase可以对目录和子目录进行版本控制,允许开发者对他们数据的组织发展过程进行追踪。目录版本对一些改变进行控制,如:建立一个新文件、修改文件名、 建立新的子目录或在目录间移动文件等。

  ClearCase也支持对目录自动进行比较和归并的操作。

存储数据在一个可访问的版本对象类中(VOBS)

  ClearCase把所有版本控制的数据存放在一个永久、安全的存储区中,这个存储区被称为版本对象类(Version Object Bases),项目团队(或管理者)可以决定它们所需要的VOBs的数量,可以决定什么样的目录或文件需要被维护。VOBs不仅是一个可连接的文件系统而且也是网上的资源──主机可以连接任何数量的VOBs.

  ClearCase VOBs的组成模式跟UNIX、Windows NT的文件系统和分布式的数据库系统非常类似。ClearCase采用Raima数据管理机制区维护VOB数据库。当在ClearCase中连接和访问时,VOB象一个标准的软件作为目录树的形式出现在客户面前,包含标准的文件对象:目录、文件、符号链接和硬链接。但事实上,文件系统已经有广泛的版本控制组件:它包含目录元素、目录元素版本、文件元素、文件元素版本、VOB动态链接和VOB硬链接。开发者也可以查看和这些文件系统对象相关的数据。这些数据包括事件记录,建立审核以及用户定义的项如:版本标签和属性。

使用常见的检出/编辑/检入范例

  ClearCase的命令可以控制元素的变化,确保存储区有序的繁衍并使数据损坏的程度达到最小。ClearCase采用一种检出/编辑后检入的范例,类似于传统的版本控制工具如:RCS和SCCS。ClearCase除了可以进行检出、检入以及非检出操作外,它还可以通过命令设置另外的操作,如:删除版本、建立/删除分枝、可按时间顺序排列或结构排列顺序列出版本历史、比较版本间的差异,并且可以归并并行开发的版本。

  当开始对于一个指定的文件进行工作时,该文件具有只读属性──这意味着它不能被编辑或删除。而检出操作可以对该文件的最近版本形成一个可编辑的拷贝。它无须将文件拷贝到另一区域工作。检出的注释可以被提供。当编辑完成后,该文件被检入,于是在版本树中形成一个新的版本并且将可编辑的拷贝删除。为了检验文件的变化,在检入过程中可以填入注释信息。文件一旦被检入,即刻回复到只读状态成为共享数据,可被所有成员使用。

  ClearCase支持两种检出,保留以及非保留。保留检出可以保证版本历史形成的正确范围,并且同时只允许一个人做保留检出的操作。非保留检出无须保证建立一个成功的版本,如果多个用户同时对同一元素执行非保留检出,也企图进行检入操作,那么第一个检入操作被允许,而其他用户必须通过归并操作合并它们的结果。

丰富的注释信息和版本数据的报表

  ClearCase存储了和文件系统对象相关又截然不同的信息类。这些信息实际上并不包含在对象中,它是一些额外数据。这些数据可以由ClearCase产生,也可以由用户自己定义。在VOB数据库中存储了所有的数据。

  ClearCase产生的这种数据信息提供了可靠的、面向文件系统的版本注释信息。比如:这些数据可以验证在某一时刻,元素A建立了一个新的版本。用户定义的数据可以用来表达额外的功能──比如:该文件的版本曾被用于构造应用系统的4.31版。

  ClearCase的操作(如:检出、检入、和版本归并)可以建立时间记录,记录数据包含这些操作信息。这些记录被存储在VOB数据库中,主要描述了该操作的属性"谁做的、做什么、什么时候、在哪个地方及为什么",比如:敲入命令的人员的ID号,操作的种类,操作的时间,主机名称及用户填入的描述。可以通过"lshistory"的命令显示存储在VOB中的事件记录,并且可以通过历史信息浏览器提供的图形接口观察VOB中的事件记录。

  用户可以针对多种目的定义数据,包含分支的名称、版本标签、元素任一版本的注释信息。

  ClearCase数据的另一种应用是形成注释的文本文件。注释命令可以通过行显示的形式列出任何一个版本文本文件的内容,这使得我们可以更容易的看到什么时候在不同的地方做了添加或删除的操作。

  ClearCase也可以针对文件系统对象建立客户报表。而报表的种类可以由用户自己定制输出格式。

通过分支功能支持并行开发

  ClearCase支持并行(同时)开发,每一个元素都可以沿着不同的分枝同时发展,即新的版本加到独立的分支上。ClearCase可以很容易的产生分支,也可以很容易的将不同分支进行合并。这样一来,即便某一部分的工作被冻结或加锁,开发者仍然可以继续自己的工作(如:在软件集成期)。在这种情况,开发者可以在分支上工作,我们知道, ClearCase的自动化操作和图形归并工具可以让我们很容易的重新集成新的工作。

  并行开发是非常重要的,因为:

  (1)它允许不同的项目在同一时间使用同一资源树。

  (2)它将目前不可和其他人员共享的修改成果进行隔离。

  (3)它将绝对不可和其他人员共享的修改成果进行隔离(如:已发布版本中的错误修复)。

  (4)它使得在软件集成期间开发工作无需停止,程序员可以先在分枝上开发,以后再集成。

  为了支持并行开发,ClearCase允许进行分支建立,追踪分支的使用,文件比较,自动归并功能。

自动的比较和版本间的归并

  并行开发的特点是对同一元素的不同版本进行定期比较,也需要对版本间内容进行归并。在ClearCase中,对于元素或文本文件进行比较和归并的操作有两种:基于字符型和图形界面型。其中,diff命令执行多文件比较,不执行归并。而归并命令可以处理32个"成员",并把它们生成一个独立的文件。 ClearCase可以自动辨认归并选项并实现归并。ClearCase也可以对需要归并的项目元素进行定位。如果所有的"成员"(归并元素)是同一元素的版本,系统会自动确定基础"成员",通常是最低版本。此外,ClearCase会记录基础版本和某一归并元素版本间的差异。如果,所有的"成员"间差异互不相同,ClearCase会自动建立归并版本。如果两个或多个归并"成员"文件内容部分不同,归并功能会提示开发者选择归并内容。ClearCase也可以实现反向归并――从主分支向子分支归并。

  ClearCase的加归并功能可以在归并其它分支时选择指定的版本(那些在分支上自始至终进行变化的版本)。负归并操作可以删除部分版本差异,从而形成一个新的版本,该版本除了那些被删除的变更外包含所有的改变。

支持UNIX和Windows型的makefile的建立

  ClearCase包括两种独立的建立程序,clearmake和omake。这两种程序合并了ClearCase的主要建立特点,包括配置lookup,二进制文件共享,和配置记录。Clearmake程序主要适用于使用UNIX型的makefile包含(gnumake)的用户。Omake主要适用于那些需要和Windows上的建立程序(包括:Borland Make、Microsoft NAMAKE、Intersolv Configuration Builder、和OpusMake)兼容的用户。

自动检测所关联的原文件,包括所关联的头文件

  clearmake和omake通过使用当前原文件(向一些被检入、检出文件)的配置,可以在视图中灵活的建立整个或部分软件系统。Clearmake和omake在makefile时无须描述所关联的头文件(或任何所关联的原文件)。

  在ClearCase开发环境中,原始对象扮演着决定性的角色。源对象是由clearmake和omake 建立的文件对象或目录对象。典型的源对象应该包括由文档系统产生的对象模块,可执行程序,库文档,规格文档,内容表。源对象组件包括:作为目标被建立的文件名;独立的源对象ID;数据容器指针(存储建立脚本所产生的数据的文件);配置记录指针(信息清单);和参考计算(指示源对象当前出现的视图号)。

自动的追踪建立,产生永久性的资料清单

  在执行建立脚本期间,clearmake和omake在ClearCase的多版本文件系统下执行一个建立追踪。这MVFS记录了在连接的VOB中每一个被读或执行的文件的版本;它也可以注释哪些文件被建立(或被覆盖)。在执行建立脚本之后,clearmake和omake将追踪的数据写入配置记录中,存储到VOB数据库中。VOB数据库指针将配置记录分配到每一个建立过程的源对象中。

  配置记录就是源对象信息清单,包含它的内容和建立时的有用信息:

  ■ 存储在VOB中,在重建时使用的文件元素的版本――包含ClearCase控制下的源文件和工具(比如:编译器)。

  ■ 在建立过程中使用的每一个私人视图文件。

  ■ 在makefile过程中使用的非ClearCase文件。

  ■ 建立脚本的文本及所有的可扩展宏。

  ■ 操作系统版本和CPU类型。

  ■ 执行建立过程的用户;执行建立脚本的主机;由clearmake设置的视图和建立过程开始的日期和时间。

  ClearCase的配置文件可以让源对象进行比较――不依靠对象数据,而依靠它们的建立配置信息。Diffcr(compare config rec)命令可以输出不同配置文件间的差异,包括:

  ■ 源文件的差异,非源文件修改的时间戳。

  ■ 建立过程中执行脚本的差异,包含makefile中不同的宏值。

  ■ 那些不影响clearmake或omake建立的非必要差异,包括建立时间/日期,主机名,视图名。

开发者间共享二进制代码,时间和存储空间的存储

  基于makefile一个很重要的方面,避免不必要的建立过程。Clearmake和omake的建立策略是非常优秀的,专为并行开发方案做的特殊设计。 Clearmake和omake可以通过配置文件检测现场情况,检测哪些源对象可以在多个视图中被共享。这个工具还可以进行磁盘存储和建立时间存储。Clearmake和omake提供了三种可供选择的建立方式:

  ■ 重用视图中现存的目标――clearmake和omake使用一种技术,它比比较时间戳更熟练。配置信息可进行源版本对照,建立脚本对照,建立选项对照。

  ■ 执行传送建立脚本――make、clearmake和omake以同样的方式执行目标建立。但是clearmake和omake可以对建立过程进行追踪,并将追踪信息分配到每一个重建过程相关的文件中。文件和它的配置信息组成了源对象。

  ■ 从某一视图中wink-in源对象――clearmake和omake可以了解到早先在其它视图建立的同一目标的多种实例。在验证后,正确的源版本,建立选项和建立脚本被用于建立其它的实例,clearmake和omake将对视图执行一个wink-in操作。一个源对象现在可以被其它视图所共享。

跨越不同机型进行并行分布式建立

  Clearmake支持分布式建立(使用其它主机上的执行脚本)和并行建立(执行一致的建立脚本)。比如:clearmake可以进行三方建立,所有的进程都在一个多处理器的计算机服务器上执行。在局域网中,它可以跨越所有工作站进行分布建立。

  Clearmake也支持跨多种开发环境的建立。

自动的跨多种主机(UNIX)的平衡加载,分布建立

  clearmake有一个尖端平衡加载技术,可以优化分布式建立的执行。用户指定功能等于分布式建立服务器的主机,并且设置变量,包括:时间、机器装载和控制每一台机器建立的用户id 。clearmake可以跨越这些主机自动平衡装载进行分布建立。

 类似资料: