论文部分内容阅读
软件配置管理(SCM)是良好的软件项目管理的基石,是提高软件生产效率的重要手段,它贯穿于整个软件生命周期。针对SCM在软件生命周期各阶段所起的作用,一个完整的SCM环境要具有版本控制、变更管理、状态统计和配置审计的功能。其中,版本控制是软件配置管理的核心功能,主要是对变更配置项的软件开发行为及变更结果提供一个可跟踪的手段,避免软件开发行为在不受控制或出现混乱的情况下进行,便于软件开发工作以基线渐进方式完成。并发版本系统(CVS)作为一个功能强大的版本控制工具,通过将版本保存、版本比较、版本融合、变动、日志管理等版本管理工作自动化,免除了大量的人工完成的记录和维护工作。CVS是实施软件配置管理的核心工具之一,能够辅助软件工程师和软件公司高效管理软件的变化――版本演进,在全球中小型软件企业中得到广泛使用,成为这些公司软件项目管理的基础平台。本文的工作是针对企业中利用CVS软件进行软件配置管理过程中遇到的若干问题(主要包括模块管理、权限管理和自动通知管理三部分问题)进行分析,之后开发一套CVS辅助工具系统对问题加以解决,更好的配合CVS软件在公司的使用,从而完善企业中软件配置管理过程的实施。本文给出了CVS辅助工具系统的设计和实现原理。该系统采用了客户/服务器结构,其中服务器端不提供用户界面,所有用户的操作都在客户端进行,这点与原CVS软件系统相同。按系统功能模块划分,CVS辅助工具系统可划分为:系统管理、项目管理、模块管理、权限管理、自动通知管理五个功能模块。服务器端使用原有CVS软件的配置服务器,利用CVS本身的触发器功能,提供所需要的触发器程序,扩展了CVS的基本功能,从而实现权限管理和自动通知管理。客户端提供友好的人机界面操作,对服务器端的数据进行多方面的处理,从而实现客户端的访问控制。CVS辅助工具系统没有提供CVS软件系统用户的创建过程,而是继续使用原有的CVS用户,并将其主要分为三类,包括:仓库管理员、项目管理员和普通用户。为了易于与原有CVS软件系统的融合,并保持原有CVS软件系统的基本工作方式,CVS辅助工具系统利用原有CVS软件系统的基本通信机制来解决客户端与服务器端的通信问题,从而实现了客户端对服务器端数据的访问。作为CVS辅助工具系统存储数据的载体,服务器端数据文件采用的<WP=56>是文本文件的方式。使用文本文件的存储方式最主要的原因是由于原有CVS软件服务器端仓库的配置文件都是以文本文件的形式存在和工作的。使用文本文件作为服务器端仓库的配置文件的补充可以将CVS辅助工具系统与原有CVS软件更好的结合起来。另外使用文本文件的存储方式令数据的存储访问机制实现起来较为简单,并且使用中易于维护。CVS辅助工具系统设计了一个数据文件类,该类封装了对CVS辅助工具系统数据文件的处理。CVS辅助工具系统提供的模块管理功能,可以使项目管理员通过客户端程序定义模块(包括叶子模块和聚合模块),而无须直接操作modules配置文件。另外,利用模板定义机制可以实现许多类似模块的定义,这些模块的定义可能仅仅是由于操作系统平台、共享库或其它原因的不同而不同,利用模板定义机制的好处更重要的在于它可以实现批量模块的定义,从而提高了模块管理的效率。CVS辅助工具系统提供的权限管理功能分为用户访问权限管理(针对CVS用户对配置服务器端仓库的访问权限)和用户管理权限管理(针对CVS用户使用CVS辅助工具系统的权限)两部分。用户访问权限管理主要是项目管理员对项目组成员的访问权限进行分配和控制;用户管理权限管理主要是项目管理员对项目组成员的管理权限进行分配和控制。权限的分配是通过客户端程序完成的,而权限的控制则是利用CVS的触发器机制实现的。CVS辅助工具系统提供的自动通知功能,可以使项目管理员通过客户端程序设置项目评审小组以及评审文件;使普通用户通过客户端程序设置自己关注的模块,然后利用CVS的触发器机制实现自动通知。自动通知有两部分含义,一是当某一评审文件被SQA人员贴上评审标签时,要自动向该评审文件所属评审小组的全部成员发送Email通知评审;二是当某一模块发生改变时,要向关注此模块的所有用户按照用户设定的格式自动发送Email通知模块被修改。CVS软件系统的特点之一就是它的触发器机制支持强大的定制功能,通过定制一些触发器程序,可以在原有CVS软件基础上扩充它的功能。因此CVS辅助工具系统服务器端权限控制与自动通知的实现都利用了原CVS软件系统提供的触发器机制,这种实现方法简单灵活提高了系统的效率,并且保持了原CVS软件系统平台无关的特性,使该权限控制和自动通知功能在任何平台下的CVS服务器端都能够正常使用。