工具功能
(1)配置支持。配置是一組有共同目的的中間軟體產品,其中每一個中間軟體產品稱為一個配置項。軟體配置管理支持用戶建立配置項之間的各種關係,並對這些關係加以維護,維護這些關係有助於完成某些特定任務(例如Build)和標識某一變化對整個系統開發的影響。
(2)版本控制。版本控制是軟體配置管理的基本要求,它可以保證在任何時刻恢復任何一個版本、版本控制還記錄每個配置項的發展歷史,這樣就保證了版本之間的可追蹤性,也為查找錯誤提供了幫助,版本控制也是支持並行開發的基礎。
(3)變更控制。變更控制是指在整個軟體生存周期中對軟體變更的控制。變更控制系統記錄每次變更的相關信息(變更的原因、變更的實施者以及變更的內容等)。這些信息有助於追蹤出現的各種問題。
(4)構造支持。軟體系統往往由許多配置項構成,建立整個系統是個複雜和費時的過程,軟體配置管理工具可以記錄和追蹤每個配置項信息,幫助用戶自動和快速地建立系統,和版本控制結合在一起,可以有效地支持同時開發系統的多個版本。
(5)過程支持。過程詳細描述了各種人員在整個軟體生存周期中如何使用整個系統,過程控制可以保證每一步都按照正確的順序由合適的人員實施。過程控制本來是軟體開發環境中一個獨立的部分,現在軟體配置管理也開始提供這部分功能。目前的軟體配置管理工具對過程的支持還很不夠,而且支持方式差別也很大,許多管理只是提供一個預先定義好的生存周期模型,並保證開發的每一步都按照這個模型規定進行。
(6)團隊支持。團隊支持是指多個開發人員同時開發一個軟體系統。大多數軟體系統都需要多個開發人員參與,有效的團隊支持對開發人員是很有用的。團隊支持主要包括工作區管理、並行開發管理和遠程開發管理(某些軟體配置管理工具還包括對開發人員支持)。
工作區管理是指為每個開發人員提供獨立的工作區,開發人員可以互不干擾地進行工作,也可以選擇某個時機向其他開發人員提供自己的最新修改結果或接受其他開發人員的修改結果。
並行管理是指多個開發人員同時進行的修改可以進行合併,並行開發管理可以儘可能地自動解決合併中可能出現的衝突。
遠程開發管理是並行開發管理的特例,是指在廣域網上並行開發的管理,許多適合於區域網路的方法可能不適合廣域網。
團隊支持的基礎是版本控制和版本合併。
(7)報告/查詢。軟體配置管理可以向用戶提供配置庫的各種查詢信息,主要包括依賴關係報告、變化影響報告、Build報告、版本差異報告、歷史報告、訪問控制報告、衝突檢測報告。實際上許多軟體配置管理工具的此項功能是分散在各種相應的功能中的。
(8)審計控制。軟體配置管理通過審計控制來驗證軟體配置管理過程,以保證配置庫中所有配置項的完整性。簡單的審計控制是記錄軟體配置管理工具執行的所有命令,複雜的審計控制還包括記錄每個配置項的狀態變化。
(9)其他功能。除了以上的主要功能外,軟體配置管理還可以提供許可權控制、人員管理和配置庫管理等管理,這些功能主要是為軟體配置管理實現以上功能提供保障。
工具選擇
目前配置管理工具可以分為3個級別:
(1)版本控制工具,是入門級的工具,例如:CVS、VSS。
(2)項目級配置管理工具,適合管理中小型的項目,在版本管理的基礎上增加變更控制、狀態統計的功能,例如:ClearCase、PVCS。
(3)企業級配置管理工具,在實現傳統意義的配置管理的基礎上又具有比較強的過程管理功能,例如:ALLFUSIONHarvest。在建立自己的配置管理實施方案時,一定要根據自己的管理需要,選擇適合自己的工具,從而搭建一個最適合自己的管理平台。如果我們的管理目標是建立組織級配置管理架構,並且要實現配置管理的所有功能,從而為以後的過程管理行為提供基礎數據的話,那么我們建議選擇專用的配置管理工具。
1.支持的作業系統
這幾款工具都支持各種主流的作業系統,如Windows、LINUX、UNIX,都支持分散式開發。CVS、Harvest、VSS、ClearCase的Server都可以安裝在Windows、LINUX、UNIX、AIX等作業系統上。
2.版本管理功能
CVS與Harvest、VSS、ClearCase都可以進行版本管理,都支持並行開發。在與開發工具的集成方面,CVS可以與各種Java開發工具集成,而Harvest支持SCC接口,可與VB、VC等集成,此外支持與IBM的WSAD集成。
3.變更控制功能
Harvest、ClearCase支持並提供了郵件通知、表單(類似任務說明書或變更通知)等手段來加強團隊的信息溝通,而且提供審批、晉升等手段來方便管理項目。Harvest是基於過程的變更,可有效的進行變更控制,它在進行配置管理時更注重軟體開發的過程與生命周期的概念;ClearCase相比HarVest則更強調賦予發人員更大的發揮空間,通過集成ClearQuest可以有效地進行變更的跟蹤與監控。CVS是基於檔案的變更處理,不能跟蹤、監控項目的變更,但是結合開放源碼的BugTrackI具也能進行變更管理。
4.狀態統計功能
CVS、Harvest、ClearCase均提供了強大的統計信息功能。
5.數據的安全性
Harvest提供了全面的許可權控制,所有的軟體資產存放在Oracle資料庫中,利用Oracle的特性來保障數據的完整性與安全,並可以定時備份,在許可權控制和安全性方面是這三個工具中是最好的;而CVS、ClearCase主要依賴作業系統的許可權設定;但ClearCase採用自己的檔案系統,在安全性方面也有嚴格的控制,而CVS的安全性與備份功能需要通過設定作業系統許可權來實現。在配置管理的基本功能的實現上,CVS提供了版本管理和部分變更管理的功能,Harvest、ClearCase完成配置管理的功能的同時還可以幫助軟體開發組織積累項目中的數據提升軟體開發過程能力。
簡單套用
套用軟體的規模及複雜程度日趨大型化、複雜化,這就導致軟體開發的方式也從早期的單兵作戰式或手工作坊式漸漸轉變為集團化、工廠流水線式的團隊協作開發方式。在這種開發模式中會遇到一些問題,例如:
●需要將整個軟體版本恢復到以前某一時間的狀態;
●控制某一程式在同一時間內只能由一個開發人員進行修改;
●限制隨意修改程式;
●對每個開發人員編寫的程式質量進行評估。
如何解決上述問題,管理好項目的每一步運作,成為每一位項目主管需要解決的課題。目前,許多配置管理工具能夠與各種流行的開發軟體進行無縫的連線,它們有機地結合在一起,能夠完整地保存開發中對應用程式每一個源檔案所有的修改記錄,因此充分地利用配置管理工具能夠對軟體開發進行有效的管理,其具體表現有以下幾個方面:
(1)隨時將程式恢復到以前某一時間點。配置管理工具可以將某一程式恢復到以前某一時間的狀態,甚至將整個軟體版本恢復到以前某一時間的狀態。它能比較程式的不同版本,方便地識別出被修改,刪除或插入的具體行,可以將兩個不同版本的修改合併到一個新檔案中,如果一段重要的代碼被刪除了,它可以迅速恢復這段代碼。
(2)實現代序的互序性修改。配置管理工具能夠實現某一程式在同一時間只能由一個開發人員進行修改。其具體實現方式是:開發人員從源檔案存放處檢出(Cherk out)一個程式,這時其他開發人員就不可以再檢出同一個程式了,只有當第一個開發人員修改測試完成後,將更新版本的代碼做檢入(Check in)操作,其他開發人員才能檢出同一個程式-當然,現在有些配置管理工具也可以配置成允許多入修改,即同時檢出同一個程式.最後可以將不同版本的修改合併到一個新程式中。
(3)對程式修改進行有效的管理。在配置管理工具中可以將用戶分為管理員和程式設計師兩種角色,只有管理員可以將程式凍結(Freeze)和解凍(Unfreeze),被凍結的程式是下允許修改的。修改程式的流程為:
①用戶提交需求書,程式設計師提交程式設計說明書,項目主管審核通過後,配置管理員(CMO)將程式解凍;
②由程式設計師檢出程式;
③程式設計師修改程式;
④修改完成後程式設計師提交測試請求給測試小組,測試小組進行測試,如果測試不通過,轉向第③步;
⑤測試通過以後程式設計師填寫本次修改記錄,然後檢入程式;
⑥配置管理員將程式凍結。
至此完成一次程式的修改。在軟體開發後期或者軟體正式投入使用時,這種方式對保證軟體的穩定運行能起列非常重要的作用。
(4)將開發環境與測試環境、運行環境進行有效的隔離:比較大型的軟體開發項目部有專門的測試小組;採用配置管理工具後,開發人員有自己單獨的開發環境,測試人員有自己的測試環境-測試人員測試無誤後才檢入程式,可避免錯誤的程式影響其他人員使用和測試幢用系統;項目進行到一定階段,可隨時用配置管理工具生成一個新的版本,投入運行—生成運行版本時可以選擇以前所有的修改記錄。
(5)評估開發人員編寫的程式質量,控制開發進度。配置管理工具完整地保存在開發中對應用程式的每一個源檔案所有的修改汜錄-這些記錄包括完成修改程式的開發人員、修改的時間、所進行的具體修改以及對本次修改的解釋。項目主管通過調閱這些記錄,對程式修改的次數、修改原因和修改情況進行統計,就能夠對每一個程式設計師編寫的程式質量進行綜合評估,這些記錄還能使項目主管對整個項目的進度、程式的編寫修改情況有一個整體的了解。
(6)管理文檔。配置管理工具不僅為各種開發軟體提供了存放對象的接口,還能存放任意類型的檔案.這樣可以在配置管理工具中建立專門的資料夾,用來仃放軟體廾發過程中牛成的各種文檔,對於每個文檔可以存放它的多個版本,供隨時查閱。
注意:配置管理軟體的安全性一般,為確保軟體開發過程中原始碼與文檔的安全,制定一個合理的系統備份策略是必要的。
總之,在一個項目小組開發環境中,配置管理工具的採用是非常必要的。它就好像建立一部軟體開發的編年史,不僅僅對軟體的版本進行了控制,還能夠協調多個外發人員的工作,對整個軟體的開發過程進行有效的管理,大大提高了軟體開發的效率,收到事半功倍的效果。
使用要求
使用軟體配置管理工具必須注意:
(1)始終保持每個軟體配置管理項的正確性,即始終正確反映軟體需求;
(2)確保每個軟體配置管理項之間均“文實相符,文文一致”;
(3)確保每個軟體配置管理項的安全。
工具評估
對工具的評估應側重於功能的適用性,而不應一味強調功能的全面性;產品評估應了解如下問題:
●該產品的哪一方面功能可解決目標組織的當前問題,滿足該組織在軟體配置管理上的需求;
●該產品在目標機構的峰值負荷下的運行效率將如何;
●該產品對並發使用的支持情況如何;
●該產品與現有系統、工具、流程、環境的兼容性如何;
●該產品的成熟性和穩定性如何(選擇成熟的產品是降低軟體開發成本、提高軟體可靠性的重要手段),應儘可能選擇市場占有率高的工具;
●該產品是否易學易用;
●該產品的購買、安裝、實施、維護費用是否可以接受。