蘭洪霞++孟悅新++董琳++張國威
摘 要:本文介紹了ELIS海洋石油成像測井地面系統(tǒng)軟件配置管理的實(shí)現(xiàn),通過軟件配置管理工具的應(yīng)用,克服了ELIS系統(tǒng)開發(fā)過程中遇到的代碼丟失、版本混亂、可靠性差、質(zhì)量低劣、代碼冗余、維護(hù)困難、團(tuán)隊(duì)溝通困難等軟件開發(fā)過程中的嚴(yán)重問題,使ELIS軟件開發(fā)的效率和質(zhì)量都得到了大大的提高。
關(guān)鍵詞:測井系統(tǒng) 配置管理 版本控制 基線 變更管理 缺陷管理
中圖分類號:TE32 文獻(xiàn)標(biāo)識碼:A 文章編號:1672-3791(2014)03(c)-0017-03
ELIS海洋石油成像測井系統(tǒng)(Enhanced Logging Imaging System)是中海油田股份有限公司自主研發(fā)具有自主知識產(chǎn)權(quán)的用于海上石油勘探開發(fā)的電纜測井成像系統(tǒng),它主要由地面采集系統(tǒng)、井下儀器和數(shù)據(jù)解釋處理三個部分組成。
ELIS地面系統(tǒng)分硬件和軟件兩大部分,在ELIS地面系統(tǒng)開發(fā)的早期階段,因?yàn)殚_發(fā)人員比較少采用代碼相互拷貝的方式來完成共同開發(fā),這種方式隨著開發(fā)人員的逐漸增加越來越顯示出嚴(yán)重的問題主要包括:
(1)代碼拷貝容易覆蓋已經(jīng)更改的代碼,導(dǎo)致代碼丟失。
(2)缺乏統(tǒng)一的管理,經(jīng)常是一個人修改了某個程序,而別人都不知道,仍然使用舊的,并在舊版本的基礎(chǔ)上又修改了,造成了不同版本的沖突。
(3)每個人的機(jī)器上都維護(hù)著一套代碼,但它們之間的差別無法明確,也不確定哪個是正確完備的最新版本,導(dǎo)致版本混亂、代碼冗余。
(4)為了發(fā)布最新版本,經(jīng)常要核對各版本的差別,查找因版本混亂引起的錯誤,帶來團(tuán)隊(duì)溝通成本增加。
(5)如果新版本失敗的話,也很難回到某個舊版本上去,導(dǎo)致維護(hù)困難。
(6)隨著ELIS系統(tǒng)的持續(xù)發(fā)展,已經(jīng)有多個支持不同測井系統(tǒng)的軟件平臺,還用原來的文檔拷貝模式會更加混亂。
1 軟件配置概念的引人
軟件配置管理(SCM)是處理軟件變更管理的軟件工程方法。SCM的目標(biāo)是標(biāo)識變更、控制變更、確保變更正確實(shí)現(xiàn)以及向其它人員報告變更,缺陷管理,版本控制。成功的軟件配置管理保證軟件開發(fā)的每個階段都是可控的、可重復(fù)的,可以有效解決代碼丟失、代碼沖突、代碼冗余、版本混亂、無法追溯舊版本等問題,極大地提高了軟件質(zhì)量、開發(fā)效率,縮短了開發(fā)周期。
2 軟件配置管理工具的選擇
2.1 本地軟件變更管理工具
最初本計劃選擇IBM的ClearCase& ClearQuest軟件系統(tǒng)來實(shí)現(xiàn)ELIS地面系統(tǒng)的軟件配置管理,但是在應(yīng)用的過程中我們發(fā)現(xiàn)ClearCase&ClearQuest系統(tǒng)龐大、應(yīng)用和管理復(fù)雜,而且成本高昂,適用于開發(fā)人員多,組織機(jī)構(gòu)復(fù)雜的大型軟件的開發(fā),對我們這樣的中小開發(fā)團(tuán)隊(duì)并不適合,經(jīng)過仔細(xì)研究,我們選擇了Dynamsoft SourceAnywhere for VSS(簡稱:SAW)作為我們的軟件配置管理工具。Dynamsoft SourceAnywhere for VSS是一種可視化的 SourceSafe遠(yuǎn)程獲取解決方案。作為一個 SourceSafe中外加的工具,SourceAnywhere for VSS為SourceSafe的用戶提供了更快,更可信,更安全的遠(yuǎn)程獲取功能。
Dynamsoft SourceAnywhere for VSS的優(yōu)點(diǎn):
(1)強(qiáng)大的功能。
創(chuàng)建項(xiàng)目,增加文件,刪除文件或項(xiàng)目,獲取最近的版本,簽入,簽出,撤消,移動,配置,共享,分支,瀏覽,編輯,顯示差別,設(shè)置工作文件夾,刷新文件列表,刷新項(xiàng)目樹,顯示屬性,顯示歷史,標(biāo)簽,鎖定,改名,改密碼,隱蔽項(xiàng)目,狀態(tài)搜索,通配符搜索等。
(2)配置、操作簡單便于管理、使用。
(3)支持分布式結(jié)構(gòu)使得團(tuán)隊(duì)成長—— 通過Client/Server結(jié)構(gòu)進(jìn)行多點(diǎn)復(fù)制和及時的對象版本的更新來實(shí)現(xiàn)。
(4)安全性:使用128-bit Blowfish來保護(hù)數(shù)據(jù),使用強(qiáng)大的密碼機(jī)制來保護(hù)密碼,Client-server體系.無需暴露VSS數(shù)據(jù)庫文件夾。
(5)Dynamsoft SourceAnywhere for VSS是開源的,可以在網(wǎng)上下載,節(jié)約成本。
因?yàn)镈ynamsoft SourceAnywhere for VSS采用Client/Server結(jié)構(gòu),所以ELIS用SAW作為配置管理工具也需要配置服務(wù)器端和客戶端,服務(wù)器端選用一臺高性能且磁盤空間大的計算機(jī),安裝配置VSS及SourceAnyWhere For Server,為每個項(xiàng)目添加相應(yīng)的數(shù)據(jù)庫,并把代碼拷貝到數(shù)據(jù)庫中(見圖1)。
每個開發(fā)人員的計算機(jī)都要安裝SAW的客戶端程序,安裝完后彈出連接到服務(wù)器對話框,輸入服務(wù)器IP地址和端口號,點(diǎn)擊Connect連接(見圖2)。
彈出登錄界面(見圖3)。
在登錄界面中選擇要登陸的數(shù)據(jù)庫,因?yàn)镋LIS系統(tǒng)的持續(xù)發(fā)展,已經(jīng)有多個支持不同測井系統(tǒng)的軟件平臺包括:ELIS_FIELD(只支持低端儀器的版本)、ELIS_FCT(支持各種高端儀器的多線程版)、ELIS_MRT(支持核磁儀器的特殊版本)、ELIS_70(掛接小井眼儀器的版本)、ELIS_1000(高速傳輸版本)、ELIS2_HARDWARE(與ELIS硬件相關(guān)的嵌入式軟件版本)等,每個版本都有相應(yīng)的數(shù)據(jù)庫,開發(fā)人員登錄時在Database選擇自己要修改的版本,輸入用戶名和密碼即可登錄。每個數(shù)據(jù)庫會對特定的開發(fā)人員開發(fā),如果該數(shù)據(jù)庫沒有給開發(fā)人員分配用戶名和密碼,則該開發(fā)人員是無法進(jìn)入該數(shù)據(jù)庫的。點(diǎn)擊OK彈出SAW客戶端界面:(見圖4)。
在該界面可以實(shí)現(xiàn)創(chuàng)建項(xiàng)目,增加文件,刪除文件或項(xiàng)目,獲取最近的版本,簽入,簽出,顯示差別,設(shè)置工作文件夾等一系列操作。
2.2 本地缺陷管理工具:Bugfree
Dynamsoft SourceAnywhere for VSS主要的作用是對代碼的一致性、完整性及軟件版本的管理控制,但是對軟件開發(fā)過程中的缺陷管理并不適用。以前測試出的問題都是以口頭或Email的方式指派,問題很容易被忽略或遺忘,隨著ELIS系統(tǒng)不斷擴(kuò)展,需要維護(hù)的系統(tǒng)和軟件版本,這種缺陷管理的方式越來越不適合,因此,我們采用Bugfree問題跟蹤系統(tǒng)來管理缺陷,它的主要優(yōu)點(diǎn)包括:
(1)可以給每個項(xiàng)目分配一個數(shù)據(jù)庫,該項(xiàng)目的所有Bug放在這個數(shù)據(jù)庫里統(tǒng)一編號,方便查詢管理。
(2)一個項(xiàng)目內(nèi)還可以劃分多個功能模塊,把bug具體歸類,便于查找和修改bug。
(3)每個Bug都有明確的發(fā)現(xiàn)人、修改人,開發(fā)人員登錄進(jìn)去后按自己的名字查詢就可以找到本項(xiàng)目中指派給自己的bug。
(4)Bug的狀態(tài)在修改后需要設(shè)置為關(guān)閉,這樣在查詢需要修改的bug時,關(guān)閉的bug就不會查詢到。
(5)Bugfree還提供上傳文本的功能,可以填寫bug的復(fù)現(xiàn)步驟、解決方案等補(bǔ)充內(nèi)容。
(6)可以指定bug的優(yōu)先級,急于解決的bug可以設(shè)置較高的優(yōu)先級,提示修改人優(yōu)先修改。
Bugfree管理者頁面(見圖5)。
Bugfree使用者頁面。
在使用Bugfree后,ELIS項(xiàng)目管理人員對各項(xiàng)目的bug分布和修改進(jìn)度一目了然,徹底扭轉(zhuǎn)了以前bug管理混亂的局面。
3 結(jié)語
ELIS成像測井地面系統(tǒng)軟件通過Dynamsoft SourceAnywhere for VSS和Bugfree成功實(shí)現(xiàn)了對軟件的配置管理、版本控制、變更管理、缺陷管理,實(shí)現(xiàn)對軟件的整個生命周期的工程化管理,極大的提高了ELIS系統(tǒng)的軟件開發(fā)效率、軟件的穩(wěn)定性和健壯性。為ELIS成像測井系統(tǒng)的推廣應(yīng)用起到了非常重要的作用。
參考文獻(xiàn)
[1] Jim Beveridge&Robert Wiener. Multithreading Application in Win32[M].華中科技大學(xué)出版社,2008.
[2] 孟顯英.淺談軟件配置管理[J].電腦知識與技術(shù),2010(6):5092-5097.
[3] 黃琳芳.軟件配置管理在項(xiàng)目開發(fā)過程中的應(yīng)用[J].寶信軟件與標(biāo)準(zhǔn)化專欄,2009(10):47-49.
2.2 本地缺陷管理工具:Bugfree
Dynamsoft SourceAnywhere for VSS主要的作用是對代碼的一致性、完整性及軟件版本的管理控制,但是對軟件開發(fā)過程中的缺陷管理并不適用。以前測試出的問題都是以口頭或Email的方式指派,問題很容易被忽略或遺忘,隨著ELIS系統(tǒng)不斷擴(kuò)展,需要維護(hù)的系統(tǒng)和軟件版本,這種缺陷管理的方式越來越不適合,因此,我們采用Bugfree問題跟蹤系統(tǒng)來管理缺陷,它的主要優(yōu)點(diǎn)包括:
(1)可以給每個項(xiàng)目分配一個數(shù)據(jù)庫,該項(xiàng)目的所有Bug放在這個數(shù)據(jù)庫里統(tǒng)一編號,方便查詢管理。
(2)一個項(xiàng)目內(nèi)還可以劃分多個功能模塊,把bug具體歸類,便于查找和修改bug。
(3)每個Bug都有明確的發(fā)現(xiàn)人、修改人,開發(fā)人員登錄進(jìn)去后按自己的名字查詢就可以找到本項(xiàng)目中指派給自己的bug。
(4)Bug的狀態(tài)在修改后需要設(shè)置為關(guān)閉,這樣在查詢需要修改的bug時,關(guān)閉的bug就不會查詢到。
(5)Bugfree還提供上傳文本的功能,可以填寫bug的復(fù)現(xiàn)步驟、解決方案等補(bǔ)充內(nèi)容。
(6)可以指定bug的優(yōu)先級,急于解決的bug可以設(shè)置較高的優(yōu)先級,提示修改人優(yōu)先修改。
Bugfree管理者頁面(見圖5)。
Bugfree使用者頁面。
在使用Bugfree后,ELIS項(xiàng)目管理人員對各項(xiàng)目的bug分布和修改進(jìn)度一目了然,徹底扭轉(zhuǎn)了以前bug管理混亂的局面。
3 結(jié)語
ELIS成像測井地面系統(tǒng)軟件通過Dynamsoft SourceAnywhere for VSS和Bugfree成功實(shí)現(xiàn)了對軟件的配置管理、版本控制、變更管理、缺陷管理,實(shí)現(xiàn)對軟件的整個生命周期的工程化管理,極大的提高了ELIS系統(tǒng)的軟件開發(fā)效率、軟件的穩(wěn)定性和健壯性。為ELIS成像測井系統(tǒng)的推廣應(yīng)用起到了非常重要的作用。
參考文獻(xiàn)
[1] Jim Beveridge&Robert Wiener. Multithreading Application in Win32[M].華中科技大學(xué)出版社,2008.
[2] 孟顯英.淺談軟件配置管理[J].電腦知識與技術(shù),2010(6):5092-5097.
[3] 黃琳芳.軟件配置管理在項(xiàng)目開發(fā)過程中的應(yīng)用[J].寶信軟件與標(biāo)準(zhǔn)化專欄,2009(10):47-49.
2.2 本地缺陷管理工具:Bugfree
Dynamsoft SourceAnywhere for VSS主要的作用是對代碼的一致性、完整性及軟件版本的管理控制,但是對軟件開發(fā)過程中的缺陷管理并不適用。以前測試出的問題都是以口頭或Email的方式指派,問題很容易被忽略或遺忘,隨著ELIS系統(tǒng)不斷擴(kuò)展,需要維護(hù)的系統(tǒng)和軟件版本,這種缺陷管理的方式越來越不適合,因此,我們采用Bugfree問題跟蹤系統(tǒng)來管理缺陷,它的主要優(yōu)點(diǎn)包括:
(1)可以給每個項(xiàng)目分配一個數(shù)據(jù)庫,該項(xiàng)目的所有Bug放在這個數(shù)據(jù)庫里統(tǒng)一編號,方便查詢管理。
(2)一個項(xiàng)目內(nèi)還可以劃分多個功能模塊,把bug具體歸類,便于查找和修改bug。
(3)每個Bug都有明確的發(fā)現(xiàn)人、修改人,開發(fā)人員登錄進(jìn)去后按自己的名字查詢就可以找到本項(xiàng)目中指派給自己的bug。
(4)Bug的狀態(tài)在修改后需要設(shè)置為關(guān)閉,這樣在查詢需要修改的bug時,關(guān)閉的bug就不會查詢到。
(5)Bugfree還提供上傳文本的功能,可以填寫bug的復(fù)現(xiàn)步驟、解決方案等補(bǔ)充內(nèi)容。
(6)可以指定bug的優(yōu)先級,急于解決的bug可以設(shè)置較高的優(yōu)先級,提示修改人優(yōu)先修改。
Bugfree管理者頁面(見圖5)。
Bugfree使用者頁面。
在使用Bugfree后,ELIS項(xiàng)目管理人員對各項(xiàng)目的bug分布和修改進(jìn)度一目了然,徹底扭轉(zhuǎn)了以前bug管理混亂的局面。
3 結(jié)語
ELIS成像測井地面系統(tǒng)軟件通過Dynamsoft SourceAnywhere for VSS和Bugfree成功實(shí)現(xiàn)了對軟件的配置管理、版本控制、變更管理、缺陷管理,實(shí)現(xiàn)對軟件的整個生命周期的工程化管理,極大的提高了ELIS系統(tǒng)的軟件開發(fā)效率、軟件的穩(wěn)定性和健壯性。為ELIS成像測井系統(tǒng)的推廣應(yīng)用起到了非常重要的作用。
參考文獻(xiàn)
[1] Jim Beveridge&Robert Wiener. Multithreading Application in Win32[M].華中科技大學(xué)出版社,2008.
[2] 孟顯英.淺談軟件配置管理[J].電腦知識與技術(shù),2010(6):5092-5097.
[3] 黃琳芳.軟件配置管理在項(xiàng)目開發(fā)過程中的應(yīng)用[J].寶信軟件與標(biāo)準(zhǔn)化專欄,2009(10):47-49.