文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2010)07-0144-03
隨著軟件開發(fā)項(xiàng)目規(guī)模的逐漸增大,,多人協(xié)同開發(fā)同一項(xiàng)目已成為普遍現(xiàn)實(shí),。在多人協(xié)同工作環(huán)境下,如果沒有很好的版本控制和配置管理,,項(xiàng)目開發(fā)無法順利實(shí)施,。同樣,對于網(wǎng)絡(luò)仿真領(lǐng)域中基于OPNET[1-2]開發(fā)的仿真項(xiàng)目,,由于現(xiàn)在網(wǎng)絡(luò)規(guī)模越來越大,,技術(shù)體制眾多,對其進(jìn)行仿真的內(nèi)容復(fù)雜,、工作量龐大,,而這些往往是單個(gè)建模人員難以完成的工作。因此,,在基于OPNET的網(wǎng)絡(luò)仿真工程開發(fā)過程中,,也需要對OPNET模型開發(fā)進(jìn)行配置管理[3],以提高工作效率。
1 OPNET模型開發(fā)配置管理需求分析
1.1 OPNET模型開發(fā)配置管理與軟件開發(fā)配置管理的相似之處
在軟件開發(fā)領(lǐng)域?qū)ε渲霉芾碛袊?yán)格的要求,,與其相類似,,在基于OPNET開發(fā)網(wǎng)絡(luò)仿真模型時(shí),對模型開發(fā)也有一定要求,,主要表現(xiàn)為:(1)軟件開發(fā)配置管理和OPNET模型開發(fā),同樣需要保存模型源文件的記錄;(2)在軟件開發(fā)過程中,,需要協(xié)同開發(fā)源代碼,,而對于OPNET模型開發(fā),則需要在不同的Modeler之間協(xié)同開發(fā)OPNET仿真模型; (3)在軟件開發(fā)過程中,,需要重用源代碼,而OPNET模型開發(fā),,在新的工程中也需要重用以前開發(fā)的OPNET模型源代碼。
1.2 缺少配置管理的OPNET模型開發(fā)存在的風(fēng)險(xiǎn)
在開發(fā)大型網(wǎng)絡(luò)仿真模型的過程中,,如果不采用有效的配置管理方法,,可能會造成難以預(yù)計(jì)的損失。例如:(1)開發(fā)的模型文件丟失,;(2)運(yùn)行仿真對所開發(fā)的模型進(jìn)行驗(yàn)證時(shí),,無法得到預(yù)期的仿真結(jié)果;(3)不同的模型開發(fā)人員所工作的模型文件版本不同,,給模型集成帶來困難,。以上問題對于協(xié)同開發(fā)OPNET仿真項(xiàng)目,特別是開發(fā)大型網(wǎng)絡(luò)仿真模型而言,,均為不利因素,,甚至可能產(chǎn)生災(zāi)難性的后果。
1.3 OPNET模型開發(fā)配置管理的目的
基于以上原因,,在OPNET模型開發(fā)過程中,,需實(shí)施有效的配置管理,這樣可以達(dá)到以下目的:(1)保存良好的版本記錄,。開發(fā)人員可以保存源代碼的主要版本,,在此基礎(chǔ)上,配置管理保留了該版本的全部修改記錄,,這樣可以使開發(fā)人員在任何時(shí)候都能獲取到所需文件的所有版本,。因此,不論對于團(tuán)隊(duì),,還是個(gè)人開發(fā)OPNET仿真模型,,都能做到條理清晰,避免重復(fù)工作,;(2)利于開發(fā)團(tuán)隊(duì)的合作,。可以約定開發(fā)人員獲取、更新源代碼主要版本的途徑,,使得在并行開發(fā)模型的過程中,,開發(fā)人員能有效地同步工作,從而提高模型的開發(fā)效率,。
2 配置管理工具分析
目前流行的配置管理工具包括Rational ClearCase,、Visual Source Safe和CVS等。Rational ClearCase是IBM用來管理和控制軟件開發(fā)資源的系列軟件之一,,它集成了設(shè)計(jì),、開發(fā)、構(gòu)建,、測試和部署工具,,為支持在軟件全生命周期中對資源進(jìn)行訪問提供了較為完整的解決方案。但Rational ClearCase的安裝,、維護(hù)復(fù)雜,,成為合格的Rational ClearCase的系統(tǒng)管理員需要接受專門的培訓(xùn);并且Rational ClearCase不提供變更管理的功能,用戶除需購買license外,,還需要支付技術(shù)服務(wù)的費(fèi)用,。Visual Source Safe(VSS)是微軟公司的Visual Studio軟件工具包中的配置管理工具,沒有對license進(jìn)行收費(fèi)(費(fèi)用較低),但VSS不提供對流程的管理功能,,也無法支持異地團(tuán)隊(duì)的開發(fā),且VSS只能在Windows平臺上運(yùn)行,。Concurrent Version System(CVS)除具備VSS的功能外,其C/S存取方法使得開發(fā)者可以從互聯(lián)網(wǎng)的任何接入點(diǎn)檢出新的代碼,;其無限制版本管理的檢出模式避免了排它檢出模式引起的人工沖突,;其客戶端工具可以在絕大多數(shù)平臺上使用,可運(yùn)行于Windows,、UNIX和Mac平臺之上,,并能在3種平臺之間有效交互,是國際上最流行最成熟的配置管理軟件,。例如,,世界上最大的Open source社區(qū)Sourceforge.net就是用它來管理9萬多個(gè)Open source項(xiàng)目的,并且Windows操作系統(tǒng)下使用的WinCVS是sourceforge.net上的開源軟件,可免費(fèi)下載使用,。
綜上比較,,在OPNET模型開發(fā)的過程中采用CVS是比較明智和理想的選擇。
3 基于CVS的OPNET模型開發(fā)管理
3.1 配置管理工作流程
基于CVS進(jìn)行軟件開發(fā)配置管理的主要工作流程如圖1所示,。
具體過程為: (1)在本地硬盤上,,創(chuàng)建CVS的倉庫目錄;(2)把本地需要CVS進(jìn)行管理的原始目錄導(dǎo)入到CVS服務(wù)器上去,,使之成為CVS服務(wù)器上倉庫的“模塊”,;(3)在本地硬盤上創(chuàng)建工作目錄,;(4)協(xié)同工作的開發(fā)人員可以從CVS服務(wù)器的倉庫導(dǎo)出“模塊”到本地硬盤的工作目錄; (5)從CVS服務(wù)器同步開發(fā)對象的所有修改到本地工作目錄,,在工作目錄上進(jìn)行工作,,在此過程中可將文件的中間版本提交給CVS服務(wù)器。
3.2 配置管理要點(diǎn)
基于CVS進(jìn)行OPNET模型開發(fā)配置管理的流程與圖1完全相同,,但由于OPNET模型文件的特殊性,,所以在基于CVS進(jìn)行配置管理時(shí)需要對其模型文件做如下特殊處理:
(1)OPNET模型具有圖2所示的層次結(jié)構(gòu),因此要有效地存儲OPNET模型文件,,必須合理組織倉庫中的目錄結(jié)構(gòu),,以在工作副本中繼續(xù)保存這種模型層次結(jié)構(gòu)。
(2)在多數(shù)應(yīng)用軟件開發(fā)過程中,,源代碼都是以文本文件形式存儲,而OPNET模型源代碼必須存儲為二進(jìn)制文件,,但OPNET模型文件卻不僅只包含二進(jìn)制文件,,所以需要針對OPNET模型中不同的文件類型,進(jìn)行區(qū)別處理:
①將表1中的各種模型文件在倉庫中保存為二進(jìn)制文件,,標(biāo)識為-kb,。
②將表2中的派生文件添加到“cvsignore”文件類型,使得這些文件不會被提交到CVS服務(wù)器的倉庫中,。因?yàn)殡S著模型的調(diào)試,,派生文件或中間文件越來越多,將會占用大量不必要的存儲空間,。
(3)雖然CVS可基于“復(fù)制—調(diào)整—合并”的方式進(jìn)行開發(fā),,但由于CVS不具備自動合并二進(jìn)制文件的能力,所以需要手動合并OPNET模型文件,,或?qū)⑿枰喜⒌亩M(jìn)制模型文件導(dǎo)出成文本文件(如EMA文件,、XML文件等形式),以充分利用CVS的合并功能,。
3.3 配置管理實(shí)例與經(jīng)驗(yàn)
在開發(fā)OPNET模型過程中,,利用WinCVS配置管理OPNET模型的實(shí)例如圖3所示。同時(shí)在實(shí)踐過程中總結(jié)了如下幾點(diǎn)經(jīng)驗(yàn):
(1)開始基于CVS進(jìn)行OPNET模型文件配置管理時(shí),,可能難以準(zhǔn)確標(biāo)注所有的二進(jìn)制文件,,所以需要在模型提交給CVS服務(wù)器之后,進(jìn)行多次檢出和運(yùn)行仿真來確保模型的完整性和存儲的正確性。
(2)由于很多OPNET模型文件較大,,倉庫很容易被填滿,,所以僅需要存儲模型源文件和必要的文檔文件,并使導(dǎo)入服務(wù)器的場景數(shù)量最小化,。另外,,目錄結(jié)構(gòu)要清晰合理,,以便有利于組織不同類型的文件,提高用戶自定義模型的可重用性,,減少倉庫中需要復(fù)制的模型數(shù)量,。
(3)可采用XML方式自動合并模型文件。OPNET Modeler提供了*.pr.m,、*.nd.m文件的XML表現(xiàn)形式,。由于XML是純文本格式的,可充分利用CVS的合并功能,。
(4)在合作開發(fā)過程中,,即使使用了CVS,也要有稱職的管理人員,,并且需要創(chuàng)建良好的配置管理使用流程,,在開發(fā)人員之間經(jīng)常溝通并達(dá)成一致。
本文將軟件開發(fā)中的配置管理引入OPNET仿真模型開發(fā)領(lǐng)域,,分析了合適的OPNET模型開發(fā)配置管理工具,,探索了配置管理流程和要點(diǎn)。通過合理的設(shè)置,,可以成功使用CVS作為OPNET模型開發(fā)強(qiáng)有力的輔助工具,,提高OPNET模型開發(fā)工作效率。
參考文獻(xiàn)
[1] OPNET Technologies, Inc. OPNET modeler 10.0A online documents[Z]. 2003.
[2] 張?bào)?林孝康.一種基于OPNET的網(wǎng)絡(luò)半實(shí)物仿真模型[J].微計(jì)算機(jī)信息,2007,1(1): 257-259.
[3] OPNET Technology Inc. Integration of OPNET with other tools[C]. OPNETWORK’04,2004.