使用CVS服务器提高OPNET模型开发配置的工作效率

描述

随着软件开发项目规模的逐渐增大,多人协同开发同一项目已成为普遍现实。在多人协同工作环境下,如果没有很好的版本控制和配置管理,项目开发无法顺利实施。OPNET就是一个网络仿真技术软件包,它能够准确的分析复杂网络的性能和行为,在网络模型中的任意位置都可以插入标准的或用户指定的探头,以采集数据和进行统计。通过探头得到的仿真输出可以以图形化显示、数字方式观察、或者输出到第三方的软件包去。其产品结构有三个模块组成,能为用户提供一系列的仿真模型库,在电信、军事、航天航空、系统集成、咨询服务、大学、行政机关等方面被广泛应用。在网络规划设计过程中经常出现多个不同的设计方案,它们往往是各有优缺点,很难作 出正确的选择,因此如何进行科学的比较和取舍往往是网络设计者们感到头疼的事。网络仿真能够通过为不同的设计方案建立模型,进行模拟,获取定量的网络性能预测数据 ,为方案的验证和比较提供可靠的依据。这里所指的设计方案可以是网络拓扑结构、路 由设计、业务配置等等。

1 OPNET模型开发配置管理需求分析

1.1 OPNET模型开发配置管理与软件开发配置管理的相似之处

OPNET 仿真模型库为客户提供了一系列的仿真模型。在这些仿真模型的基础上,实现对网络的仿真。OPNET仿真模型库与其网络仿真引擎(OPNET Modeler,ITGuru, Applicat ion DecisionGuru等)是分离的。这种设计方式方便了模型的修改、升级。OPNET的专业 部门负责对模型库进行及时更新。同时,客户还可以根据自己的要求定制模型。

在软件开发领域对配置管理有严格的要求,与其相类似,在基于OPNET开发网络仿真模型时,对模型开发也有一定要求,主要表现为:(1)软件开发配置管理和OPNET模型开发,同样需要保存模型源文件的记录;(2)在软件开发过程中,需要协同开发源代码,而对于OPNET模型开发,则需要在不同的Modeler之间协同开发OPNET仿真模型; (3)在软件开发过程中,需要重用源代码,而OPNET模型开发,在新的工程中也需要重用以前开发的OPNET模型源代码。

1.2 缺少配置管理的OPNET模型开发存在的风险

在开发大型网络仿真模型的过程中,如果不采用有效的配置管理方法,可能会造成难以预计的损失。例如:(1)开发的模型文件丢失;(2)运行仿真对所开发的模型进行验证时,无法得到预期的仿真结果;(3)不同的模型开发人员所工作的模型文件版本不同,给模型集成带来困难。

1.3 OPNET模型开发配置管理的目的

基于以上原因,在OPNET模型开发过程中,需实施有效的配置管理,这样可以达到以下目的:(1)保存良好的版本记录。开发人员可以保存源代码的主要版本,在此基础上,配置管理保留了该版本的全部修改记录,这样可以使开发人员在任何时候都能获取到所需文件的所有版本。因此,不论对于团队,还是个人开发OPNET仿真模型,都能做到条理清晰,避免重复工作;(2)利于开发团队的合作。可以约定开发人员获取、更新源代码主要版本的途径,使得在并行开发模型的过程中,开发人员能有效地同步工作,从而提高模型的开发效率。

2 配置管理工具分析

目前流行的配置管理工具包括Rational ClearCase、Visual Source Safe和CVS等。Rational ClearCase是IBM用来管理和控制软件开发资源的系列软件之一,它集成了设计、开发、构建、测试和部署工具,为支持在软件全生命周期中对资源进行访问提供了较为完整的解决方案。但Rational ClearCase的安装、维护复杂,成为合格的Rational ClearCase的系统管理员需要接受专门的培训;并且Rational ClearCase不提供变更管理的功能,用户除需购买license外,还需要支付技术服务的费用。Visual Source Safe(VSS)是微软公司的Visual Studio软件工具包中的配置管理工具,没有对license进行收费(费用较低),但VSS不提供对流程的管理功能,也无法支持异地团队的开发,且VSS只能在Windows平台上运行。Concurrent Version System(CVS)除具备VSS的功能外,其C/S存取方法使得开发者可以从互联网的任何接入点检出新的代码;其无限制版本管理的检出模式避免了排它检出模式引起的人工冲突;其客户端工具可以在绝大多数平台上使用,可运行于Windows、UNIX和Mac平台之上,并能在3种平台之间有效交互,是国际上最流行最成熟的配置管理软件。

3 基于CVS的OPNET模型开发管理

3.1 配置管理工作流程

基于CVS进行软件开发配置管理的主要工作流程如图1所示。

仿真

具体过程为: (1)在本地硬盘上,创建CVS的仓库目录;(2)把本地需要CVS进行管理的原始目录导入到CVS服务器上去,使之成为CVS服务器上仓库的"模块";(3)在本地硬盘上创建工作目录;(4)协同工作的开发人员可以从CVS服务器的仓库导出"模块"到本地硬盘的工作目录; (5)从CVS服务器同步开发对象的所有修改到本地工作目录,在工作目录上进行工作,在此过程中可将文件的中间版本提交给CVS服务器。

CVS(Concurrent Versions System)版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。Concurrent有并发的、协作的、一致的等含义。实际上CVS可以维护任意文档的开发和使用,例如共享文件的编辑修改,而不仅仅局限于程序设计。CVS维护的文件类型可以是文本类型也可以是二进制类型。CVS用Copy-Modify-Merge(拷贝、修改、合并)变化表支持对文件的同时访问和修改。它明确地将源文件的存储和用户的工作空间独立开来,并使其并行操作。CVS基于客户端/服务器的行为使其可容纳多个用户,构成网络也很方便。这一特性使得CVS成为位于不同地点的人同时处理数据文件(特别是程序的源代码)时的首选。所有重要的免费软件项目都使用CVS作为其程序员之间的中心点,以便能够综合各程序员的改进和更改。这些项目包括GNOME、KDE、THE GIMP和Wine等。

3.2 配置管理要点

基于CVS进行OPNET模型开发配置管理的流程与图1完全相同,但由于OPNET模型文件的特殊性,所以在基于CVS进行配置管理时需要对其模型文件做如下特殊处理:

(1)OPNET模型具有图2所示的层次结构,因此要有效地存储OPNET模型文件,必须合理组织仓库中的目录结构,以在工作副本中继续保存这种模型层次结构。

仿真

(2)在多数应用软件开发过程中,源代码都是以文本文件形式存储,而OPNET模型源代码必须存储为二进制文件,但OPNET模型文件却不仅只包含二进制文件,所以需要针对OPNET模型中不同的文件类型,进行区别处理:

①将表1中的各种模型文件在仓库中保存为二进制文件,标识为-kb.

②将表2中的派生文件添加到"cvsignore"文件类型,使得这些文件不会被提交到CVS服务器的仓库中。因为随着模型的调试,派生文件或中间文件越来越多,将会占用大量不必要的存储空间。

(3)虽然CVS可基于"复制-调整-合并"的方式进行开发,但由于CVS不具备自动合并二进制文件的能力,所以需要手动合并OPNET模型文件,或将需要合并的二进制模型文件导出成文本文件(如EMA文件、XML文件等形式),以充分利用CVS的合并功能。

仿真
仿真

3.3 配置管理实例与经验

在开发OPNET模型过程中,利用WinCVS配置管理OPNET模型的实例如图3所示。同时在实践过程中总结了如下几点经验:

仿真

(1)开始基于CVS进行OPNET模型文件配置管理时,可能难以准确标注所有的二进制文件,所以需要在模型提交给CVS服务器之后,进行多次检出和运行仿真来确保模型的完整性和存储的正确性。

(2)由于很多OPNET模型文件较大,仓库很容易被填满,所以仅需要存储模型源文件和必要的文档文件,并使导入服务器的场景数量最小化。另外,目录结构要清晰合理,以便有利于组织不同类型的文件,提高用户自定义模型的可重用性,减少仓库中需要复制的模型数量。

(3)可采用XML方式自动合并模型文件。OPNET Modeler提供了*.pr.m、*.nd.m文件的XML表现形式。

(4)在合作开发过程中,即使使用了CVS,也要有称职的管理人员,并且需要创建良好的配置管理使用流程,在开发人员之间经常沟通并达成一致。

本文将软件开发中的配置管理引入OPNET仿真模型开发领域,分析了合适的OPNET模型开发配置管理工具,探索了配置管理流程和要点。通过合理的设置,可以成功使用CVS作为OPNET模型开发强有力的辅助工具,提高OPNET模型开发工作效率。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分