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