隨著軟件開發(fā)項目規(guī)模的逐漸增大,多人協(xié)同開發(fā)同一項目已成為普遍現(xiàn)實。在多人協(xié)同工作環(huán)境下,如果沒有很好的版本控制和配置管理,項目開發(fā)無法順利實施。OPNET就是一個網(wǎng)絡(luò)仿真技術(shù)軟件包,它能夠準(zhǔn)確的分析復(fù)雜網(wǎng)絡(luò)的性能和行為,在網(wǎng)絡(luò)模型中的任意位置都可以插入標(biāo)準(zhǔn)的或用戶指定的探頭,以采集數(shù)據(jù)和進行統(tǒng)計。通過探頭得到的仿真輸出可以以圖形化顯示、數(shù)字方式觀察、或者輸出到第三方的軟件包去。其產(chǎn)品結(jié)構(gòu)有三個模塊組成,能為用戶提供一系列的仿真模型庫,在電信、軍事、航天航空、系統(tǒng)集成、咨詢服務(wù)、大學(xué)、行政機關(guān)等方面被廣泛應(yīng)用。在網(wǎng)絡(luò)規(guī)劃設(shè)計過程中經(jīng)常出現(xiàn)多個不同的設(shè)計方案,它們往往是各有優(yōu)缺點,很難作 出正確的選擇,因此如何進行科學(xué)的比較和取舍往往是網(wǎng)絡(luò)設(shè)計者們感到頭疼的事。網(wǎng)絡(luò)仿真能夠通過為不同的設(shè)計方案建立模型,進行模擬,獲取定量的網(wǎng)絡(luò)性能預(yù)測數(shù)據(jù) ,為方案的驗證和比較提供可靠的依據(jù)。這里所指的設(shè)計方案可以是網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、路 由設(shè)計、業(yè)務(wù)配置等等。
1 OPNET模型開發(fā)配置管理需求分析
1.1 OPNET模型開發(fā)配置管理與軟件開發(fā)配置管理的相似之處
OPNET 仿真模型庫為客戶提供了一系列的仿真模型。在這些仿真模型的基礎(chǔ)上,實現(xiàn)對網(wǎng)絡(luò)的仿真。OPNET仿真模型庫與其網(wǎng)絡(luò)仿真引擎(OPNET Modeler,ITGuru, Applicat ion DecisionGuru等)是分離的。這種設(shè)計方式方便了模型的修改、升級。OPNET的專業(yè) 部門負(fù)責(zé)對模型庫進行及時更新。同時,客戶還可以根據(jù)自己的要求定制模型。
在軟件開發(fā)領(lǐng)域?qū)ε渲霉芾碛袊?yán)格的要求,與其相類似,在基于OPNET開發(fā)網(wǎng)絡(luò)仿真模型時,對模型開發(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)險
在開發(fā)大型網(wǎng)絡(luò)仿真模型的過程中,如果不采用有效的配置管理方法,可能會造成難以預(yù)計的損失。例如:(1)開發(fā)的模型文件丟失;(2)運行仿真對所開發(fā)的模型進行驗證時,無法得到預(yù)期的仿真結(jié)果;(3)不同的模型開發(fā)人員所工作的模型文件版本不同,給模型集成帶來困難。
1.3 OPNET模型開發(fā)配置管理的目的
基于以上原因,在OPNET模型開發(fā)過程中,需實施有效的配置管理,這樣可以達到以下目的:(1)保存良好的版本記錄。開發(fā)人員可以保存源代碼的主要版本,在此基礎(chǔ)上,配置管理保留了該版本的全部修改記錄,這樣可以使開發(fā)人員在任何時候都能獲取到所需文件的所有版本。因此,不論對于團隊,還是個人開發(fā)OPNET仿真模型,都能做到條理清晰,避免重復(fù)工作;(2)利于開發(fā)團隊的合作??梢约s定開發(fā)人員獲取、更新源代碼主要版本的途徑,使得在并行開發(fā)模型的過程中,開發(fā)人員能有效地同步工作,從而提高模型的開發(fā)效率。
2 配置管理工具分析
目前流行的配置管理工具包括Rational ClearCase、Visual Source Safe和CVS等。Rational ClearCase是IBM用來管理和控制軟件開發(fā)資源的系列軟件之一,它集成了設(shè)計、開發(fā)、構(gòu)建、測試和部署工具,為支持在軟件全生命周期中對資源進行訪問提供了較為完整的解決方案。但Rational ClearCase的安裝、維護復(fù)雜,成為合格的Rational ClearCase的系統(tǒng)管理員需要接受專門的培訓(xùn);并且Rational ClearCase不提供變更管理的功能,用戶除需購買license外,還需要支付技術(shù)服務(wù)的費用。Visual Source Safe(VSS)是微軟公司的Visual Studio軟件工具包中的配置管理工具,沒有對license進行收費(費用較低),但VSS不提供對流程的管理功能,也無法支持異地團隊的開發(fā),且VSS只能在Windows平臺上運行。Concurrent Version System(CVS)除具備VSS的功能外,其C/S存取方法使得開發(fā)者可以從互聯(lián)網(wǎng)的任何接入點檢出新的代碼;其無限制版本管理的檢出模式避免了排它檢出模式引起的人工沖突;其客戶端工具可以在絕大多數(shù)平臺上使用,可運行于Windows、UNIX和Mac平臺之上,并能在3種平臺之間有效交互,是國際上最流行最成熟的配置管理軟件。
3 基于CVS的OPNET模型開發(fā)管理
3.1 配置管理工作流程
基于CVS進行軟件開發(fā)配置管理的主要工作流程如圖1所示。
具體過程為: (1)在本地硬盤上,創(chuàng)建CVS的倉庫目錄;(2)把本地需要CVS進行管理的原始目錄導(dǎo)入到CVS服務(wù)器上去,使之成為CVS服務(wù)器上倉庫的"模塊";(3)在本地硬盤上創(chuàng)建工作目錄;(4)協(xié)同工作的開發(fā)人員可以從CVS服務(wù)器的倉庫導(dǎo)出"模塊"到本地硬盤的工作目錄; (5)從CVS服務(wù)器同步開發(fā)對象的所有修改到本地工作目錄,在工作目錄上進行工作,在此過程中可將文件的中間版本提交給CVS服務(wù)器。
CVS(Concurrent Versions System)版本控制系統(tǒng)是一種GNU軟件包,主要用于在多人開發(fā)環(huán)境下的源碼的維護。Concurrent有并發(fā)的、協(xié)作的、一致的等含義。實際上CVS可以維護任意文檔的開發(fā)和使用,例如共享文件的編輯修改,而不僅僅局限于程序設(shè)計。CVS維護的文件類型可以是文本類型也可以是二進制類型。CVS用Copy-Modify-Merge(拷貝、修改、合并)變化表支持對文件的同時訪問和修改。它明確地將源文件的存儲和用戶的工作空間獨立開來,并使其并行操作。CVS基于客戶端/服務(wù)器的行為使其可容納多個用戶,構(gòu)成網(wǎng)絡(luò)也很方便。這一特性使得CVS成為位于不同地點的人同時處理數(shù)據(jù)文件(特別是程序的源代碼)時的首選。所有重要的免費軟件項目都使用CVS作為其程序員之間的中心點,以便能夠綜合各程序員的改進和更改。這些項目包括GNOME、KDE、THE GIMP和Wine等。
3.2 配置管理要點
基于CVS進行OPNET模型開發(fā)配置管理的流程與圖1完全相同,但由于OPNET模型文件的特殊性,所以在基于CVS進行配置管理時需要對其模型文件做如下特殊處理:
(1)OPNET模型具有圖2所示的層次結(jié)構(gòu),因此要有效地存儲OPNET模型文件,必須合理組織倉庫中的目錄結(jié)構(gòu),以在工作副本中繼續(xù)保存這種模型層次結(jié)構(gòu)。
(2)在多數(shù)應(yīng)用軟件開發(fā)過程中,源代碼都是以文本文件形式存儲,而OPNET模型源代碼必須存儲為二進制文件,但OPNET模型文件卻不僅只包含二進制文件,所以需要針對OPNET模型中不同的文件類型,進行區(qū)別處理:
①將表1中的各種模型文件在倉庫中保存為二進制文件,標(biāo)識為-kb.
②將表2中的派生文件添加到"cvsignore"文件類型,使得這些文件不會被提交到CVS服務(wù)器的倉庫中。因為隨著模型的調(diào)試,派生文件或中間文件越來越多,將會占用大量不必要的存儲空間。
(3)雖然CVS可基于"復(fù)制-調(diào)整-合并"的方式進行開發(fā),但由于CVS不具備自動合并二進制文件的能力,所以需要手動合并OPNET模型文件,或?qū)⑿枰喜⒌亩M制模型文件導(dǎo)出成文本文件(如EMA文件、XML文件等形式),以充分利用CVS的合并功能。
3.3 配置管理實例與經(jīng)驗
在開發(fā)OPNET模型過程中,利用WinCVS配置管理OPNET模型的實例如圖3所示。同時在實踐過程中總結(jié)了如下幾點經(jīng)驗:
(1)開始基于CVS進行OPNET模型文件配置管理時,可能難以準(zhǔn)確標(biāo)注所有的二進制文件,所以需要在模型提交給CVS服務(wù)器之后,進行多次檢出和運行仿真來確保模型的完整性和存儲的正確性。
(2)由于很多OPNET模型文件較大,倉庫很容易被填滿,所以僅需要存儲模型源文件和必要的文檔文件,并使導(dǎo)入服務(wù)器的場景數(shù)量最小化。另外,目錄結(jié)構(gòu)要清晰合理,以便有利于組織不同類型的文件,提高用戶自定義模型的可重用性,減少倉庫中需要復(fù)制的模型數(shù)量。
(3)可采用XML方式自動合并模型文件。OPNET Modeler提供了*.pr.m、*.nd.m文件的XML表現(xiàn)形式。
(4)在合作開發(fā)過程中,即使使用了CVS,也要有稱職的管理人員,并且需要創(chuàng)建良好的配置管理使用流程,在開發(fā)人員之間經(jīng)常溝通并達成一致。
本文將軟件開發(fā)中的配置管理引入OPNET仿真模型開發(fā)領(lǐng)域,分析了合適的OPNET模型開發(fā)配置管理工具,探索了配置管理流程和要點。通過合理的設(shè)置,可以成功使用CVS作為OPNET模型開發(fā)強有力的輔助工具,提高OPNET模型開發(fā)工作效率。
-
仿真
+關(guān)注
關(guān)注
50文章
4111瀏覽量
133782 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9253瀏覽量
85742 -
網(wǎng)絡(luò)
+關(guān)注
關(guān)注
14文章
7586瀏覽量
89007
發(fā)布評論請先 登錄
相關(guān)推薦
評論