UML软件工程组织

软件配置管理与ClearCase
欧阳运新

 

  随着软件团队人员的增加,软件版本不断变化,开发时间的紧迫以及多平台开发环境的采用,使得软件开发面临越来越多的问题,其中包括对当前多种产品的开发和维护、保证产品版本的精确、重建先前发布的产品、加强开发政策的统一和对特殊版本需求的处理等等,解决这些问题的唯一途径是加强管理,而软件开发管理的核心是软件配置管理。 那么软件配置管理的概念是什么?

  配置的概念最早应用于硬件,例如,计算机系统的CPU、磁盘以及外设配置等等。随着计算机软件的发展,它已由最初的“程序设计阶段”经历了“程序系统阶段”进而演变为当前的“软件工程阶段”(见下图),软件的复杂性日益增大。此时,如果仍然把软件看成一个单一的整体,就无法解决所面临的问题,于是配置的概念逐渐引入软件领域,人们越来越重视软件配置的管理工作。

  软件配置管理,简称SCM(Software Configuration Management),它应用于整个软件工程过程。我们知道,在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。

  在这里,要强调一点,很多开发者将软件维护和软件配置管理混为一谈。实际上二者有着明显的区别:维护是一组软件工程活动,它们发生在软件已交付给用户并已投入运行之后;软件配置管理是一组追踪和控制活动,它开始于软件开发项目之初,结束于软件被淘汰之时。

  总之,软件配置管理作为软件开发过程的必要环节和软件开发管理的基础,支持和控制着整个软件生命周期。若要有效地实施软件配置管理,除了培养软件开发者的管理意识外,更重要的是使用优秀的软件配置管理工具。

  Rational 公司推出的软件配置管理工具ClearCase主要用于Windows和Unix开发环境。ClearCase提供了全面的配置管理功能——包括版本控制、工作空间管理、建立管理和过程控制,而且无需软件开发者改变他们现有的环境、工具和工作方式。ClearCase具有以下主要功能:

1.版本控制

  ClearCase的核心功能是版本控制,它是对软件开发进程中一个文件或一个目录发展过程进行追踪的手段。ClearCase可对所有文件系统对象(包括文件、目录和链接)进行版本控制,同时还提供了先进的版本分支和归并功能用于支持并行开发。因而,ClearCase提供的能力已远远超出资源控制的范围,它还可以帮助开发团队在开发软件时为其所处理的每一种信息类型建立一个安全可靠的版本历史记录。

  *支持广泛的文件类型

  ClearCase不仅可以对软件组件的版本进行维护和控制,也可以对一个非文本文件、目录的版本进行维护。用户可以定义自己的元件类型,也可以使用ClearCase中的预定义类型。在存储时,ClearCase可以利用增量算法将文本文件存储在一个特殊结构的文件容器中,或采用标准的压缩技术控制任何操作系统文件。(这比以往的存储形式节省了50%-70%的存储空间。)

  *在版本树中观察元件发展的过程

  在ClearCase中,文件版本的组织体现在版本树结构中。每一个文件都可以通过checkout-edit-checkin的命令形成多个版本,还可以包含多层分支和子分支。

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

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

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

  *数据存储在一个可访问的版本对象库中(VOB)

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

  ClearCase的操作(如检出、检入和版本归并)可以建立时间记录,这些记录被存储在VOB数据库中,主要描述该操作的属性,包括“谁做的、做什么、什么时候、在哪个地方及为什么”等等。

2.工作空间管理

  所谓空间管理,即保证开发人员拥有自己独立的工作环境,拥有自己的私人存储区,同时可以访问成员间的共享信息。ClearCase给每一位开发者提供了一致、灵活的可重用工作空间域。它采用名为View的新技术,通过设定不同的视图配置规格,帮助程序员选择特定任务的每一个文件或目录的适当版本,并显示它们。View使开发者能在资源代码共享和私有代码独立的不断变更中达到平衡。

  *版本间的透明访问

  ClearCase提供了对版本进行透明访问的功能。通过VOB机制(包含文件或目录的多个版本),ClearCase可以让开发者和应用者以一种标准文件目录树的形式访问VOB。

  ClearCase能与Windows资源管理器完美集成,使开发人员不必进入ClearCase界面就可直接完成相关操作。

  *从其他主机平台访问视图

  在局域网中,未安装ClearCase的机器也可使用ClearCase所控制的数据。例如,一台ClearCase Unix主机通过一种特殊的视图输出VOB,网上其他主机则可通过NFS机制连接它,从而使开发人员能在未安装ClearCase的主机平台上读写视图。但是有一点必须注意,未安装ClearCase的主机必须重新注册或使用安装了ClearCase的Unix主机上的X-Windows系统进行检入、检出操作。

3.建立管理

  使用ClearCase,构造软件的处理过程可以和传统的方法兼容。对ClearCase控制的数据,你既可以使用自制脚本也可使用本机提供的make程序,但ClearCase的建立工具clearmake(支持Unix)和omake(支持NT)为构造提供了重要的特性:自动完成任务、保证重建的可靠性、存储时间和支持并行的分布式结构的建立。此外,ClearCase还可以自动追踪、建立产生永久性的资料清单。

4.过程控制

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

  *为对象分配属性:例如,Codequality属性可有A、B、 C、D或F五个值。其强有力的查询工具允许用户查 找各种版本的文件。

  *超级链接:超级链接可追溯到所有的元素变量、特定 的版本(需求追踪也同样需要)、或者对象中的某一 部分。

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

  *定义事件触发机制:事件预触发机制监视每一种特定 ClearCase操作或操作类的使用。触发可要求在执行 某个操作命令之前对它进行检查,并据此判断是继续 执行、还是取消操作。事件后触发机制好像一个监视 器,它会在某个命令执行后或给某个对象赋予属性后, 把这些动作通知给用户。

  *访问控制:控制数据读、写、执行权限;同时,它还对文 件系统之下的物理存储施加保护,有效地制止那些 试图逃避ClearCase破坏原始操作系统存储的小 动作。

  *查询功能:ClearCase中有一个 find(查询)命令,使得 开发能迅速获知当前项目的状态。

  综上所述,ClearCase支持全面的软件配置管理功能,给那些经常跨越复杂环境(如Unix、Windows系统)进行复杂项目开发的团队带来巨大效益。此外,ClearCase也支持广泛的开发环境,它所拥有的特殊组件已成为当今软件开发人员工程人员和管理必备的工具。ClearCase的先进功能直接解决了原来开发团队所面临的一些难以处理的问题,并且通过资源重用帮助开发团队,使其开发的软件更加可靠。在当今日益激烈的市场竞争中,ClearCase作为规范的软件配置管理工具,能完全满足软件开发人员的需求,同时健全了软件开发的科学管理。

回首这段往事,不禁感慨万千,我初步估算了一下,从我进入该单位到现在,有四分之三的工作都是重复劳动,或者是无效的劳动.



版权所有:UML软件工程组织