文/楊智
軟件版本管理是針對(duì)軟件開發(fā)過程中涉及到的各種軟件資源進(jìn)行管理,是實(shí)現(xiàn)軟件配置管理的基礎(chǔ)和核心。配置管理的目的是利用配置標(biāo)識(shí)、配置控制、配置狀態(tài)紀(jì)實(shí)和配置審計(jì)建立和維護(hù)工作產(chǎn)品的完整性。版本控制是配置管理的一個(gè)關(guān)鍵問題。版本通過記錄配置項(xiàng)的當(dāng)前狀態(tài),為后續(xù)開發(fā)提供依據(jù);而且還可以追朔版本以前的狀態(tài)。
當(dāng)前系統(tǒng)軟件的規(guī)模日益大型化和復(fù)雜化,一般由若干承研單位共同開發(fā),軟件更新升級(jí)十分頻繁,軟件版本管理在系統(tǒng)集成聯(lián)試過程中顯得尤為重要。而且軟件研發(fā)平臺(tái)的多樣性帶來(lái)了入庫(kù)軟件包的多樣性,如Windows平臺(tái)支持的rar、zip 壓縮包,Linux 平臺(tái)支持的tar、zip、gz 壓縮包,這些給版本管理帶來(lái)了復(fù)雜性。此外現(xiàn)有的軟件版本管理軟件不能比較出新舊版本軟件之間具體組成文件的差異和共有文件內(nèi)容差異,不能有效輔助聯(lián)試人員快速定位出調(diào)試或使用過程中出現(xiàn)的問題。
針對(duì)以上問題和從外場(chǎng)集成聯(lián)試人員使用角度,本文設(shè)計(jì)了軟件版本管理模型,除具有常用配置管理功能,能屏蔽處理Windows和Linux 兩個(gè)平臺(tái)入庫(kù)包類型差異,在入庫(kù)時(shí)就獲取并記錄包內(nèi)組成文件的信息,對(duì)比出相鄰版本軟件之間差異,快速定位出出現(xiàn)問題的文件范圍,輔助研發(fā)人員迅速解決。
軟件版本管理模型以軟件配置項(xiàng)為最小管理單元,以項(xiàng)目為根節(jié)點(diǎn),各項(xiàng)目由若干軟件配置項(xiàng)組成,每個(gè)軟件配置項(xiàng)可與運(yùn)行支持平臺(tái)關(guān)聯(lián)。為便于用戶操作使用以及跨平臺(tái)使用需求,遵循簡(jiǎn)約的設(shè)計(jì)風(fēng)格,采用基于Qt的tab頁(yè)組成界面設(shè)計(jì)。設(shè)定固定的界面樣式風(fēng)格便于跨平臺(tái)使用時(shí)保持一致。應(yīng)用多線程機(jī)制將界面顯示與業(yè)務(wù)處理邏輯分開,避免耗時(shí)業(yè)務(wù)阻塞造成界面假死。對(duì)于Windows 文件系統(tǒng)下不區(qū)分大小寫以及Linux 文件系統(tǒng)下區(qū)分大小寫的細(xì)節(jié)予以考慮。從項(xiàng)目配置管理和使用角度可分為入庫(kù)軟件查詢比較、自定義軟件比較、更新組成文件說明、軟件入庫(kù)、軟件出庫(kù)、參數(shù)設(shè)定六個(gè)功能。
軟件版本管理各功能分別以tab頁(yè)集成在主界面中,可通過tab頁(yè)之間切換到每個(gè)功能。主界面最上方標(biāo)識(shí)出已經(jīng)建立的項(xiàng)目名和配置項(xiàng)名,用戶可以選定查詢指定項(xiàng)目和該項(xiàng)目下指定配置項(xiàng),來(lái)進(jìn)行相關(guān)操作。
入庫(kù)版本查詢比較以表格的形式顯示已入庫(kù)配置項(xiàng)的相關(guān)信息,包括入庫(kù)項(xiàng)名稱、版本號(hào)、支持平臺(tái)、入庫(kù)時(shí)間、已入庫(kù)類別和備注,其中已入庫(kù)類別顯示該版本配置項(xiàng)已經(jīng)入庫(kù)的類別,可選的類別包括可執(zhí)行程序包(EXE)、源碼包(SRC)、安裝包(IST)、說明文件(TXT)和附屬文件(SUP),已入庫(kù)類別必須包含EXE 類型。入庫(kù)配置項(xiàng)默認(rèn)按入庫(kù)時(shí)間倒序排列,默認(rèn)選中兩行(兩者對(duì)應(yīng)支持平臺(tái)一致,如果選中為首次入庫(kù)版本則只能選一行),并以不同顏色標(biāo)示,分別為當(dāng)前選中入庫(kù)版本和之前入庫(kù)版本。雙擊當(dāng)前選中行會(huì)彈出列表顯示該版本EXE 包的具體文件組成并以樹形結(jié)構(gòu)展示,包括對(duì)應(yīng)的文件名、修改日期、功能描述、研發(fā)單位和備注信息。點(diǎn)擊右下角比較按鈕會(huì)彈出相鄰兩個(gè)版本EXE 包內(nèi)的比較,分別以樹形展現(xiàn)組成文件和目錄結(jié)構(gòu),并標(biāo)識(shí)出變更的地方,包括新增、修改和刪除。通過比較能夠發(fā)現(xiàn)升級(jí)版本后變更的地方,并且能夠在出現(xiàn)問題后快速定位出改動(dòng)見范圍,聯(lián)試人員可以迅速向有關(guān)人員反饋問題并協(xié)助定位。此外用戶還可以設(shè)定時(shí)間范圍搜索出時(shí)間范圍內(nèi)的入庫(kù)配置項(xiàng)。
自定義軟件比較用于比較相關(guān)軟件對(duì)象,軟件對(duì)象通過路徑選擇對(duì)話框進(jìn)行設(shè)定,比較對(duì)象分為組成文件和單個(gè)文件兩種類型。組成文件比較類型包括壓縮包和文件夾,用于比較壓縮包或文件夾內(nèi)的組成文件的修改情況(包括新增、修改和刪除),對(duì)于修改的文件可雙擊繼續(xù)比較具體內(nèi)容差異。單個(gè)文件比較用于比較兩個(gè)文件是否為同一文件。
更新組成文件說明用于對(duì)已經(jīng)入庫(kù)的軟件版本的可執(zhí)行程序包(EXE)組成文件進(jìn)行更新說明,替換已有的組成文件說明,說明內(nèi)容每行按照文件名、目錄、功能,研制單位和備注格式排列。有助于對(duì)聯(lián)試人員了解每個(gè)文件功能歸屬情況。
軟件入庫(kù)用于對(duì)選定配置項(xiàng)進(jìn)行入庫(kù)操作,該tab頁(yè)由入庫(kù)參數(shù)項(xiàng)和入庫(kù)表格組成,入庫(kù)表格與入庫(kù)查詢比較的表格一樣。入庫(kù)參數(shù)項(xiàng)是對(duì)該配置項(xiàng)入庫(kù)前的參數(shù)設(shè)定,包括文件類別、支持平臺(tái)、版本號(hào)、命名校驗(yàn)、文件選擇、附屬包、說明文件、備注、入庫(kù)和入庫(kù)時(shí)間。文件類別包括可執(zhí)行程序包、安裝包和源碼包三種類型,可單選或復(fù)選,但首次入庫(kù)成功必須包含可執(zhí)行程序包。支持平臺(tái)為下拉列表,包括項(xiàng)目中已設(shè)定的支持平臺(tái)。版本號(hào)文本框用來(lái)填寫本次入庫(kù)的版本號(hào)。命名校驗(yàn)為勾選框,用來(lái)標(biāo)識(shí)是否對(duì)版本號(hào)和文件名進(jìn)行校驗(yàn),勾選后不符合命名規(guī)范的文件將無(wú)法入庫(kù)。文件選擇與文件類別對(duì)應(yīng),選定準(zhǔn)備入庫(kù)且符合文件類別的配置項(xiàng)軟件,當(dāng)所選類別不匹配或命名規(guī)范有問題給出提示原因。附屬包用來(lái)提交本次入庫(kù)相關(guān)的其他軟件或文檔,如安裝手冊(cè)、相關(guān)數(shù)據(jù)庫(kù)軟件等。說明文件主要說明本版本軟件功能或配置變動(dòng)情況。附屬包和說明文件可與配置項(xiàng)一起入庫(kù),也可隨后入庫(kù)。在設(shè)定完入庫(kù)參數(shù)后可執(zhí)行入庫(kù)操作,入庫(kù)過程中對(duì)三種操作系統(tǒng)(Unix、Windows和Linux)的壓縮包格式區(qū)分處理,并對(duì)包內(nèi)文件狀態(tài)統(tǒng)計(jì)記錄,對(duì)于入庫(kù)失敗提示原因。并顯示執(zhí)行入庫(kù)的時(shí)間。在入庫(kù)表格下面有當(dāng)前硬盤剩余空間余量顯示,以及修改、刪除操作選項(xiàng)。修改用于完成對(duì)最新一次軟件入庫(kù)項(xiàng)的版本號(hào)、支持平臺(tái)和備注進(jìn)行修改,刪除操作用于對(duì)最近一次入庫(kù)版本進(jìn)行刪除。
軟件出庫(kù)在入庫(kù)表格中選中待出庫(kù)的軟件版本后勾選出庫(kù)的類型,然后提取到指定目錄下獲取該版本軟件相關(guān)文件。
參數(shù)設(shè)定主要設(shè)定軟件版本管理軟件的項(xiàng)目配置、支持平臺(tái)和命名校驗(yàn)參數(shù)信息。項(xiàng)目配置用來(lái)設(shè)定項(xiàng)目和配置項(xiàng)的參數(shù),包括增、刪、改操作。支持平臺(tái)用來(lái)設(shè)定某項(xiàng)目的所有軟件配置項(xiàng)運(yùn)行的平臺(tái),包括增、刪、改操作。命名校驗(yàn)用來(lái)根據(jù)設(shè)定項(xiàng)目代號(hào)和項(xiàng)目階段對(duì)軟件入庫(kù)時(shí)的入庫(kù)文件名進(jìn)行規(guī)范性的校驗(yàn),項(xiàng)目階段可根據(jù)實(shí)際情況定義為開發(fā)、軟件集成、系統(tǒng)集成、試驗(yàn)、用戶試用和設(shè)計(jì)定型階段的子集。
本文根據(jù)軟件集成和聯(lián)試使用的角度出發(fā),設(shè)計(jì)了一種軟件管理模型,能夠根據(jù)實(shí)際項(xiàng)目需要定制規(guī)范,屏蔽操作系統(tǒng)差異,對(duì)相應(yīng)版本的配置項(xiàng)進(jìn)行入庫(kù)操作,并記錄組成文件狀態(tài),對(duì)相鄰版本間差異可比較,有力地協(xié)助聯(lián)試人員定位問題。同時(shí)對(duì)軟件版本進(jìn)行有效管理,提高了軟件開發(fā)和聯(lián)試的效率,增強(qiáng)了配置管理的質(zhì)量。