软件工程版本管理初探

软件工程版本管理初探

摘要:针对软件工程编码开发过程中版本管理问题,讨论了代码版本控制原理及方式,同时对比了几种常用的版本管理工具,阐述了各自的优、缺点,说明各种工具的适用场景,最后指出在团队开发中版本控制的重要作用。

关键词:版本控制;编码过程;团队开发

软件开发是一项复杂而浩大的智力工作,每一个软件产品的推出都离不开团队协作,一个完整的软件产品是团队成员共同智慧的结晶。在团队协作过程中,每个成员既各司其职又相互配合,在协作过程自然会有很多的冲突与不一致,要化解软件开发生命周期中此类矛盾就必须要使用版本管理工具,对资源作统一的控制管理。

1版本管理概述

在团队开发中,版本管理是一个绕不过去的问题。每个人要实现的功能是相互依赖的,这就决定开发环境必需是完整、统一的;每个人在开发中进度差异非常大,这就决定了源码要有一个全局的把控者;每个人都把自己的功能与他人的模块进行整合,这就决定了在编码中要有调试的统一环境。面对以上的问题怎么处理呢,解决办法只有一个,引入对工程的版本控制、管理。版本管理的原理既复杂又简单,如下图所示。首先,在受控环境中必须一个资源专用服务器,所有的团队成员的开发成果都提交到资源服务器中;其次,当团队成员需要开展工作时,必需先从资源服务器中取得整体资源,然后再在本地机器上构建开发环境;最后,当团队成员完成阶段性开发任务后及时提交工作成果到资源服务器上,以实现与其它团队成员共享开发资源、成果,其它成员再及的从资源服务器中更新下来即可。资源服务器中源码版本则会随着团队成员提交开发成果而不断往上变化,团队中成员每提交一次版本数就往上增加1.版本管理作为软件开发中一项常规性的工作,其实现过程不需要团队成员手动的备份到资源服务器上,只需要使用相关管理工具即可。在目前的市场中有众多的版本控制管理工具,比较主流的有如下几种:VSS工具、CVS工具、SVN工具、ClearCase工具。在这些主流的版本管理工具上,有通用的语法及操作命令。如,从中央服务器上取下资源都使用Chectout的命令,把中央服务器的最新资源同步到本地客户端使用Update的操作命令,把本地资源提交到中央资源服务器上使用Commit命令。Chectout与Update同为从资源服务器取资源,但也有区别,只有第一次从服务器取资源使用Chectout命令,以后要取得服务器最新资源均用Update命令。

2VSS工具

VSS版本管理工具的全称是VisualSourceSafe,是一个最古老的版本管理工具。VSS是微软公司推出一个文件版本管理工具,这个版本管理工具功能相对弱小,适合作为初学者入门学习使用版本管理工具,同时这个工具只能使用在微软配套的Window操作系统中,不能使用在其它操作平台中,这就限定其使用的范围与场景,目前在企业中比较少这个工具进行版本控制区管理。

3CVS工具

CVS版本管理工具的全称是ConcurrentVersionSystem,是在VSS出现若干时期后由开源组织推出的一个新的文件版本管理软件,其在软件开发界流行于2000年-2010年时间段,其针对VSS工具中的不足进行了改进与完善,因而它比VSS功能更强大,适用场景更广,在当时得到了非常广泛的应用。其不但可以运行于Window操作平台,也可以运行于Liux、Unix等平台系统中。同时,由于其是开源产品,从节省成本的角度出发,也更受中小企业的欢迎与喜爱,因而得到了非常广泛的应用,作为老一代的程序员都非常习惯使用这一版本管理工具。

4SVN工具

SVN版本管理工具的全称是Subversion,也是由开源组织推出的一个开源管理管理工具。在当前编程界是非常主流的版本管理工具,其克服了CVS中的众多缺陷与不足,可以看作是CVS工具的升级版。在CVS中存在众多的安全隐患,SVN中则已经化解掉该问题,CVS中对版本冲突标识不友好,在SVN中则进行了改进处理,SVN还可以集成到众多的开发工具中,如Eclipse、MyE-clipse、NebBean等IDE集成开发工具,以方便程序中在编码中直接进行版本控制。在需要时也可以脱离开发工具而独立使用,只在安装客户端插件即可。

5ClearCase工具

ClearCase版本管理工具是由Rational公司推出的一个文件管理软件,其功能非常强大,远远超越了SVN、CVS、VSS等版本管理工具。ClearCase版本管理工具不担拥有以上几种工具的常规功能,还能自动合并开发过程中的版本分支,无需管理员手动操作,因而极大的提高版本管理的效率。但其也有一些不够的地方,比如,ClearCase工具过于复杂,需要专门的管理人员来对它进行配置管理,另外,使用这个工具需要支付相关费用,对中小企业来说是一个负担,只适合于大型企业在进行大型项目开发时使用。

6结语

版本一致性是软件工程团开发作中必需处理的问题,版本管理工具正是解决这一问题的利器,有了版本管理工具使很多协作问题迎刃而解,使团队开发工作变得高效起来,同时也进一步提高软件质量,推动了软件工程事业的发展。

参考文献:

[1]刘啸.主流源码版本管理工具的特色浅析[J].程序员,2008,(3):116-118.

[2]冯嘉俊,赵海燕.分布式版本管理工具-Mercurial[J].数字技术与应用,2015,(1):224-225.

[3]徐慧.ClearCase配置管理及其应用[J].计算机工程,2005,31(16):107-109.

[4]张军.电信企业如何搭建ClearCase开发环境[J].数字通信世界,2007,(9):52-53.

[5]姜文,刘立康.基于SVN的软件配置管理和持续集成[J].电子设计工程,2016,24(2):1-5.

作者:温立辉 单位:河源职业技术学院电子与信息工程学院