複製鏈接
請複製以下鏈接發送給好友

軟件配置管理工具

鎖定
配置管理工具是指支持完成配置項標識、版本控制、變化控制、審計和狀態統計等任務的工具。
中文名
配置管理工具
功    能
配置支持
選    擇
版本控制工具
使用要求
確保每個軟件配置管理項的安全

軟件配置管理工具工具功能

(1)配置支持。配置是一組有共同目的的中間軟件產品,其中每一箇中間軟件產品稱為一個配置項。軟件配置管理支持用户建立配置項之間的各種關係,並對這些關係加以維護,維護這些關係有助於完成某些特定任務(例如Build)和標識某一變化對整個系統開發的影響。 [1] 
(2)版本控制。版本控制是軟件配置管理的基本要求,它可以保證在任何時刻恢復任何一個版本、版本控制還記錄每個配置項的發展歷史,這樣就保證了版本之間的可追蹤性,也為查找錯誤提供了幫助,版本控制也是支持並行開發的基礎。
(3)變更控制。變更控制是指在整個軟件生存週期中對軟件變更的控制。變更控制系統記錄每次變更的相關信息(變更的原因、變更的實施者以及變更的內容等)。這些信息有助於追蹤出現的各種問題。
(4)構造支持。軟件系統往往由許多配置項構成,建立整個系統是個複雜和費時的過程,軟件配置管理工具可以記錄和追蹤每個配置項信息,幫助用户自動和快速地建立系統,和版本控制結合在一起,可以有效地支持同時開發系統的多個版本。
(5)過程支持。過程詳細描述了各種人員在整個軟件生存週期中如何使用整個系統,過程控制可以保證每一步都按照正確的順序由合適的人員實施。過程控制本來是軟件開發環境中一個獨立的部分,軟件配置管理也開始提供這部分功能。軟件配置管理工具對過程的支持還很不夠,而且支持方式差別也很大,許多管理只是提供一個預先定義好的生存週期模型,並保證開發的每一步都按照這個模型規定進行。
(6)團隊支持。團隊支持是指多個開發人員同時開發一個軟件系統。大多數軟件系統都需要多個開發人員參與,有效的團隊支持對開發人員是很有用的。團隊支持主要包括工作區管理、並行開發管理和遠程開發管理(某些軟件配置管理工具還包括對開發人員支持)。
工作區管理是指為每個開發人員提供獨立的工作區,開發人員可以互不干擾地進行工作,也可以選擇某個時機向其他開發人員提供自己的最新修改結果或接受其他開發人員的修改結果。
並行管理是指多個開發人員同時進行的修改可以進行合併,並行開發管理可以儘可能地自動解決合併中可能出現的衝突。
遠程開發管理是並行開發管理的特例,是指在廣域網上並行開發的管理,許多適合於局域網的方法可能不適合廣域網。
團隊支持的基礎是版本控制和版本合併。
(7)報告/查詢。軟件配置管理可以向用户提供配置庫的各種查詢信息,主要包括依賴關係報告、變化影響報告、Build報告、版本差異報告、歷史報告、訪問控制報告、衝突檢測報告。實際上許多軟件配置管理工具的此項功能是分散在各種相應的功能中的。
(8)審計控制。軟件配置管理通過審計控制來驗證軟件配置管理過程,以保證配置庫中所有配置項的完整性。簡單的審計控制是記錄軟件配置管理工具執行的所有命令,複雜的審計控制還包括記錄每個配置項的狀態變化。
(9)其他功能。除了以上的主要功能外,軟件配置管理還可以提供權限控制、人員管理和配置庫管理等管理,這些功能主要是為軟件配置管理實現以上功能提供保障。

軟件配置管理工具工具選擇

配置管理工具可以分為3個級別: [2] 
(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] 
●需要將整個軟件版本恢復到以前某一時間的狀態;
●控制某一程序在同一時間內只能由一個開發人員進行修改;
●限制隨意修改程序;
●對每個開發人員編寫的程序質量進行評估。
如何解決上述問題,管理好項目的每一步運作,成為每一位項目主管需要解決的課題。許多配置管理工具能夠與各種流行的開發軟件進行無縫的連接,它們有機地結合在一起,能夠完整地保存開發中對應用程序每一個源文件所有的修改記錄,因此充分地利用配置管理工具能夠對軟件開發進行有效的管理,其具體表現有以下幾個方面:
(1)隨時將程序恢復到以前某一時間點。配置管理工具可以將某一程序恢復到以前某一時間的狀態,甚至將整個軟件版本恢復到以前某一時間的狀態。它能比較程序的不同版本,方便地識別出被修改,刪除或插入的具體行,可以將兩個不同版本的修改合併到一個新文件中,如果一段重要的代碼被刪除了,它可以迅速恢復這段代碼。
(2)實現代序的互序性修改。配置管理工具能夠實現某一程序在同一時間只能由一個開發人員進行修改。其具體實現方式是:開發人員從源文件存放處檢出(Cherk out)一個程序,這時其他開發人員就不可以再檢出同一個程序了,只有當第一個開發人員修改測試完成後,將更新版本的代碼做檢入(Check in)操作,其他開發人員才能檢出同一個程序-當然,有些配置管理工具也可以配置成允許多入修改,即同時檢出同一個程序.最後可以將不同版本的修改合併到一個新程序中。
(3)對程序修改進行有效的管理。在配置管理工具中可以將用户分為管理員和程序員兩種角色,只有管理員可以將程序凍結(Freeze)和解凍(Unfreeze),被凍結的程序是下允許修改的。修改程序的流程為:
①用户提交需求書,程序員提交程序設計説明書,項目主管審核通過後,配置管理員(CMO)將程序解凍;
②由程序員檢出程序;
③程序員修改程序;
④修改完成後程序員提交測試請求給測試小組,測試小組進行測試,如果測試不通過,轉向第③步;
⑤測試通過以後程序員填寫本次修改記錄,然後檢入程序;
⑥配置管理員將程序凍結。
至此完成一次程序的修改。在軟件開發後期或者軟件正式投入使用時,這種方式對保證軟件的穩定運行能起列非常重要的作用。
(4)將開發環境與測試環境、運行環境進行有效的隔離:比較大型的軟件開發項目部有專門的測試小組;採用配置管理工具後,開發人員有自己單獨的開發環境,測試人員有自己的測試環境-測試人員測試無誤後才檢入程序,可避免錯誤的程序影響其他人員使用和測試幢用系統;項目進行到一定階段,可隨時用配置管理工具生成一個新的版本,投入運行—生成運行版本時可以選擇以前所有的修改記錄。
(5)評估開發人員編寫的程序質量,控制開發進度。配置管理工具完整地保存在開發中對應用程序的每一個源文件所有的修改汜錄-這些記錄包括完成修改程序的開發人員、修改的時間、所進行的具體修改以及對本次修改的解釋。項目主管通過調閲這些記錄,對程序修改的次數、修改原因和修改情況進行統計,就能夠對每一個程序員編寫的程序質量進行綜合評估,這些記錄還能使項目主管對整個項目的進度、程序的編寫修改情況有一個整體的瞭解。
(6)管理文檔。配置管理工具不僅為各種開發軟件提供了存放對象的接口,還能存放任意類型的文件.這樣可以在配置管理工具中建立專門的文件夾,用來仃放軟件廾發過程中牛成的各種文檔,對於每個文檔可以存放它的多個版本,供隨時查閲。
注意:配置管理軟件的安全性一般,為確保軟件開發過程中源代碼與文檔的安全,制定一個合理的系統備份策略是必要的。
總之,在一個項目小組開發環境中,配置管理工具的採用是非常必要的。它就好像建立一部軟件開發的編年史,不僅僅對軟件的版本進行了控制,還能夠協調多個外發人員的工作,對整個軟件的開發過程進行有效的管理,大大提高了軟件開發的效率,收到事半功倍的效果。

軟件配置管理工具使用要求

使用軟件配置管理工具必須注意: [3] 
(1)始終保持每個軟件配置管理項的正確性,即始終正確反映軟件需求;
(2)確保每個軟件配置管理項之間均“文實相符,文文一致”;
(3)確保每個軟件配置管理項的安全。

軟件配置管理工具工具評估

對工具的評估應側重於功能的適用性,而不應一味強調功能的全面性;產品評估應瞭解如下問題: [1] 
●該產品的哪一方面功能可解決目標組織的當前問題,滿足該組織在軟件配置管理上的需求;
●該產品在目標機構的峯值負荷下的運行效率將如何;
●該產品對併發使用的支持情況如何;
●該產品與現有系統、工具、流程、環境的兼容性如何;
●該產品的成熟性和穩定性如何(選擇成熟的產品是降低軟件開發成本、提高軟件可靠性的重要手段),應儘可能選擇市場佔有率高的工具;
●該產品是否易學易用;
●該產品的購買、安裝、實施、維護費用是否可以接受。
參考資料
  • 1.    .2.0 2.1 2.2 郭荷清主編.現代軟件工程——原理、方法與管理.華南理工大學出版社,2004年02月第1版.
  • 2.    .竇萬峯主編.軟件工程實驗教程.機械工業出版社,2009.05.
  • 3.    .阮鐮 陸民燕 韓峯巖編著.裝備軟件質量和可靠性管理.國防工業出版社,2006年01月第1版.