唐滔 譚鳳
摘要:版本控制是軟件配置管理的重要功能,負責為配置庫中的所有元素自動分配版本標識,并保證版本命名的惟一性。本文運用軟件工程的原理并結合版本控制的實踐,指出為了有效地進行版本拉制而引入基線管理,并通過最常用的軟件項目基線;包括檢入、檢出控制、分支和合并、歷史記錄。結果表明,在配置管理教學過程中通過基線進行版本拉制,是保護代碼資源、提高開發(fā)效率、加強軟件項目管理的有效途徑。
關鍵詞:塞線;版本拉制;檢入;檢出控制
前言
軟件配置管理是規(guī)范、高效的軟件開發(fā)基礎結構,是在項目開發(fā)過程中,標識、控制和管理軟件變更的一種管理活動。有效的配置管理,這使得用戶期望軟件系統(tǒng)能夠很好地適應外界要求的變化,使日后的維護和升級得到保證[2]版本控制是軟件配置管理的重要活動,因為軟件變更常常帶來軟件版本的改變與新版本的發(fā)布,必須進行有效的控制。版本控制的對象包括文檔、源代碼、規(guī)范、可執(zhí)行文件等,目的在于對軟件開發(fā)過程中的這些對象提供有效的跟蹤手段,便于對版本進行檢索和跟蹤,避免文件的丟失和覆蓋[3]。在教學過程中,配置管理的版本管理和基線是非常重要。
1 基線
基線是軟件開發(fā)過程中的關鍵里程碑,當某一個軟件配置項納入基線管理后,就是后續(xù)工作的標準,只有經過管理人員授權后才能改變這個標準?;€又可細分為如下三類:
(1)功能基線。是最初批準的功能配置標識,可以是甲乙雙方簽訂的有關軟件實現功能的協(xié)議書,也可以是需要分析結束后確定軟件系統(tǒng)功能,或者是上級主管部門下達的軟件規(guī)格說明。功能基線確定軟件需要實現的功能。
(2)指派基線。是最初批準的指派配置標識,通常是需求分析階段工作結束時,經過正式評審和批準后的軟件需求規(guī)格說明。通過指派基線,可以將工作分派給相關的組織或個人。
(3)產品基線。是最初批準的產品配置標識。通常是系統(tǒng)組裝完成并經過系統(tǒng)測試,軟件能與系統(tǒng)其他部件正確連接,達到規(guī)定的功能和性能,通過正式評審,可以將產品投入使用。基線作為檢查點,正式發(fā)行的產品必須是經過控制的基線產品。
2 版本管理
版本管理是軟件配置管理的基礎,通過版本管理保護開發(fā)的軟件資源。軟件系統(tǒng)版本隨著軟件開發(fā)工作的進展而演變,從而構成復雜的版本空間。版本和基線的關系可以描述為:配置管理保存已完成的版本、創(chuàng)建新版本、合并多個版本,并提供一種策略來選擇版本創(chuàng)建基線。系統(tǒng)新版本可能有不同的功能、性能,可能修改了系統(tǒng)錯誤。有些版本可能在功能上沒有什么不同,只是為不同的硬件或軟件配置而設計的。每個系統(tǒng)發(fā)布版本都應該包含新的功能或是針對不同的硬件平臺。一個系統(tǒng)的版本要比發(fā)布版本多得多,因為機構的內部版本是為內部開發(fā)或測試而創(chuàng)建的,有些根本不會發(fā)布到客戶手中。軟件配置管理版本控制之所以在基線的控制之下,是因為處于基線控制的軟件配置項版本,表明已完成了一定的階段性工作,版本處于被鎖定的狀態(tài);而非基線控制的版本,軟件開發(fā)人員可以隨意修改而不必經過審批流程。被鎖定的版本如果需要修改。
現在的版本控制通常由SVN\GIT等工具來支持。工具用于管理對每個系統(tǒng)版本的存儲,并控制對系統(tǒng)組件的訪問。這些組件必須能夠從系統(tǒng)中抽取出來進行編輯,當將其重新放入系統(tǒng)的時候,就構成了一個新的系統(tǒng)版本,由版本管理系統(tǒng)給它一個新的名字。版本控制包括:檢入檢出控制(Checkin/ Checkout)、分支和合并(Branch/ Merge),歷史記錄(History record)。
3.1 檢入、檢出控制
建立基線之后,配置項被保存在配置數據庫中。這些配置項不能隨意進行修改,但在很多時候仍然需要修改,修改后仍需要保存在配置數據庫中,這就需要檢入、檢出控制?!皺z入”就是將軟件配置項從開發(fā)人員的工作空間存儲到配置數據庫的過程,“檢出”就是將軟件配置項從配置數據庫取出并存儲到開發(fā)人員工作空間的過程。檢入,檢出控制保證了軟件工程師對訪問對象的權分支和合并版本分支的人工方法是從主版本拷貝一份并做上標記,版本合并的人工方法是將一個版本的內容拷貝到另一個版本上形成新版本或將兩個版本的內容合并為一個新版本。對文件來說,分支與合并的結果就是形成具有圖形結構的版本歷史。
3.3 歷史記錄
版本控制的歷史記錄,跟蹤并記錄了整個軟件的開發(fā)過程,便于對在軟件開發(fā)過程不同階段新生的成果(包括源代碼、文檔資料等)進行對比分析,對已修改的軟件配置項恢復到未修改新的狀態(tài),對不同人員所做的修改進行監(jiān)視、監(jiān)督和匯總,提高軟件項目的管理水平的控制能力,同時歷史記錄記載了版本的修改時間、修改人員、修改描述等信息,便于分清責任并進行績效考核管理。
4 結束語
版本控制逐漸成為軟件配置管理中重要的控制過程,是軟件項目管理領域重要的研究方向。配置管理的版本控制可以解決很多問題,包括根據不同用戶的需求,配置不同的軟件系統(tǒng);保存系統(tǒng)老版本,為撤銷修改或追溯問題提供支持;支持多個軟件開發(fā)人員共同開發(fā)一個項目,或同時修改一個軟件配置項;存儲軟件的多個版本,清晰地表明軟件版本的演進過程?;诨€的版本控制,能確保軟件配置項在軟件生命周期中始終處于受控狀態(tài),并恢復到任一個歷史狀態(tài),方便地進行軟件項目的開發(fā)和管理。
參考文獻
[1]郭寧,周曉化.軟件項目管理[M].北京:清華大學出版社,2007.
[2]李玉龍,李長云.軟件動態(tài)演化技術[J].計算機技術與發(fā)展,2008,18(9):83-86.