摘要:軟件開發管理是使軟件開發高效低耗所必需的,而軟件配置管理是軟件開發管理的關鍵,因此,軟件配置管理成為軟件開發過程的必要環節。而自動化的配置管理工具也日漸成為了軟件配置的必要條件。此外,該文還初步研究了使用較為廣泛的配置管理工具ClearCase。
關鍵詞:軟件配置管理;軟件開發;配置管理工具;ClearCase
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)35-2212-02
Study on SCM ClearCase
ZHANG Yue
(Tongji University,Shanghai 200092,China)
Abstract: Software development management is necessary for software to be developed in high efficiency and low cost,and Software configuration management (SCM) is the key of software development management,so SCM is also necessary for software development. Day by day,automatic tools for SCM are becoming more and more required.Besides,in this essay,I also state my views of ClearCase,which is widely used in SCM.
Key words: SCM;software development;CMT;clearCase
1 軟件配置管理概述
1.1 軟件配置管理背景
在開發軟件代碼時,軟件公司都會有各自遵循的開發過程,來試圖達到同樣的目的:以最低的生產成本完成高質量的軟件。特別是隨著軟件團隊人員的增加,軟件版本不斷變化,開發時間的緊迫以及多平臺開發環境的采用,使得軟件開發面臨越來越多的問題,其中包括對當前多種產品的開發和維護,保證產品版本的精確,重建先前發布的產品,加強開發政策的統一和對特殊版本需求的處理等等,解決這些問題的唯一途徑是加強管理,即軟件開發管理(Software Development Management)。而軟件配置管理,簡稱SCM(Software Configuration Management)是軟件開發管理的核心所在。
1.2 軟件配置管理淺析
軟件配置管理是指一套管理軟件開發和軟件維護及其中各種中間軟件產品的方法和規則,配置管理通過在特定的時刻選擇軟件配置,系統的控制對配置的修改,并在整個軟件生命周期中維護配置的完整性和可追蹤性,簡單而言就是管理軟件的變化。管理變化使得控制成為了SCM的目標,其控制內容包括:
1) 源文件版本,即版本控制——版本控制是指在某些有意義的時刻制作數據副本,以便日后必要時返回到那些時間點;
2) 配置與交付,即配置管理——與版本控制相比,蘊涵著更高層次的抽象。SCM工具必須要對一套組件的哪些版本包含了某一特定配置有所了解;
3) 過程管理,即過程管理——在整個軟件開發生命周期內對軟件資產的版本進行分組和處理。通常包括變更管理、審批級別和流程控制;
4) 問題追蹤,即將增強、變更請求或缺陷報告記錄下來,并將它們與相應的解決方案關聯起來。這將包括變更所涉及的源代碼清單。然后可以用這些代碼變更集合來創建只包含所需特性或修復補丁的再版產品。
既然軟件配置管理作為軟件開發過程的必要環節和軟件開發管理的基礎,那么就要有效地實施軟件配置管理,由于軟件配置管理過程十分繁雜,管理對象錯綜復雜,如果是采用人工的辦法不僅費時費力,還容易出錯,產生大量的廢品。因此,引入一些自動化工具是十分有裨益的,這也是做好配置管理的必要條件。
2 ClearCase的研究
2.1 ClearCase的優點
Rational 公司推出的軟件配置管理工具ClearCase特別適用于跨越復雜環境(如Unix、Windows系統)進行復雜項目開發的團隊。因其提供了相對比較全面的配置管理功能——包括版本控制、工作空間管理、建立管理和過程控制,并且在Rational 公司被IBM收購后,ClearCase有了更可靠的售后服務保障,所以使其在現階段成了使用比較廣泛的軟件配置管理工具之一。下面簡單介紹下ClearCase具有的主要功能。
2.1.1 版本控制
ClearCase的核心功能是版本控制,它是對軟件開發進程中一個文件或一個目錄發展過程進行追蹤的手段。ClearCase可對所有文件系統對象(包括文件、目錄和鏈接)進行版本控制,同時還提供了先進的版本分支和歸并功能用于支持并行開發。
支持較廣泛的文件類型:ClearCase不僅可以對軟件組件的版本進行維護和控制,也可以對一個非文本文件、目錄的版本進行維護。用戶可以定義自己的元件類型,也可以使用ClearCase中的預定義類型。
通過版本樹觀察元件發展過程:在ClearCase中,文件版本的組織體現在版本樹結構中。每個文件都可以通過checkout-edit-checkin的命令形成多個版本,還可以包含多層分支和子分支。
對目錄和子目錄進行版本控制:ClearCase允許開發者對其數據的組織發展過程進行追蹤。目錄版本對一些改變進行控制,如建立一個新文件、修改文件名、建立新的子目錄或在目錄間移動文件等。
版本對象庫中(VOB):ClearCase把所有版本控制的數據存放在一個永久、安全的存儲區中,這個存儲區被稱為版本對象庫(Version Object Bases)。項目團隊(或管理者)可以決定它們所需要的VOB數量,可以決定什么樣的目錄或文件需要被維護。VOB不僅是一個可連接的文件系統,而且也是網上的資源,主機可以連接任意個VOB。當然,ClearCase的操作(如checkout、checkin和版本歸并)可以建立時間記錄,這些記錄被存儲在VOB數據庫中,主要描述該操作的屬性,包括“who, what, when, where why”等等。
2.1.2 工作空間管理
空間管理,即保證開發人員擁有自己獨立的工作環境,擁有自己的私人存儲區,同時可以訪問成員間的共享信息。ClearCase給每位開發者提供了一致、靈活的可重用工作空間域,通過設定不同的視圖配置規格,幫助程序員選擇特定任務的每一個文件或目錄的適當版本,并使開發者能在資源代碼共享和私有代碼獨立的不斷變更中達到平衡。
版本間的透明訪問:通過VOB機制(包含文件或目錄的多個版本),ClearCase可以讓開發者和應用者以一種標準文件目錄樹的形式訪問VOB。
從其他主機平臺訪問視圖:在局域網中,未安裝ClearCase的機器也可使用ClearCase所控制的數據。例如,一臺ClearCase Unix主機通過一種特殊的視圖輸出VOB,網上其他主機則可通過NFS機制連接它,從而使開發人員能在未安裝ClearCase的主機平臺上讀寫視圖。但是有一點必須注意,未安裝ClearCase的主機必須重新注冊或使用安裝了ClearCase的Unix主機上的X-Windows系統進行檢入、檢出操作。
2.1.3 Build管理
使用ClearCase,構造軟件的處理過程可以和傳統的方法兼容。對ClearCase控制的數據,既可以使用自制腳本也可使用本機提供的make程序,但ClearCase的建立工具clearmake(支持Unix)和omake(支持NT)為構造提供了重要的特性:自動完成任務、保證重建的可靠性、存儲時間和支持并行的分布式結構的建立。此外,ClearCase還可以自動追蹤、建立產生永久性的資料清單。
2.1.4 過程控制
ClearCase為團隊通信、質量保證、變更管理提供了過程控制和策略控制機制,體現在以下幾方面:
1) 為對象分配屬性:例如,Codequality屬性可有A、B、 C、D或F五個值。其查詢工具允許用戶查找各種版本的文件。
2) 超級鏈接:超級鏈接可追溯到所有的元素變量、特定的版本(需求追蹤也同樣需要)、或者對象中的某一 部分。
3) 歷史記錄:ClearCase自動記錄下重要的狀態信息,當對象發生變更時,它會收集“who, when, why”、 用戶注釋、以及其他的重要數據。系統也會保留創建、釋放項目時的類似信息。
4) 定義事件觸發機制:事件預觸發機制監視每一種特定 ClearCase操作或操作類的使用。觸發可要求在執行某個操作命令之前對它進行檢查,并據此判斷是繼續執行、還是取消操作。事件后觸發機制會在某個命令執行后或給某個對象賦予屬性后,把這些動作通知給用戶。
5) 訪問控制:控制數據讀、寫、執行權限;同時,它還對文件系統之下的物理存儲施加保護,制止那些試圖逃避ClearCase破壞原始操作系統存儲的動作。
6) 查詢功能:ClearCase中有一個find命令,使得開發能獲知當前項目的狀態。
2.2 ClearCase的缺點
每款產品必有其缺點所在,這才會使得開發商有改進其的必要,社會生產才能前進。下面我就略談下ClearCase的瑕疵所在:
1) 價格不菲:若說ClearCase的最大的缺點,那就是它的價格。每個客戶端用戶許可證大約需要幾千美金,所以這也使得它在國內的應用群體有限。
2) 易用性:ClearCase的安裝、配置和使用相對較復雜,需要進行專門的培訓,才能成為一個合格的ClearCase的系統管理員。此外,ClearCase提供命令行和圖形界面的操作方式,但從ClearCase的圖形界面不能實現命令行的所有功能。
3) 變更管理:ClearCase不提供變更管理的功能,通過Rational另提供的ClearQuest工具提供對變更管理的功能。
4) 性能:服務器采用多進程機制,使用自帶多版本文件系統MVFS,對性能有較大負面影響。
5) 適用范圍:作為一款企業級、全面的開發配置管理工具,較適用于大型開發團隊。
6) 安全:沒有專用的安全性管理機制,依賴于操作系統。此外,ClearCase采用的C/S模式,需要共享服務器上的存儲目錄以供客戶端訪問,這也帶來一定安全隱患。
3 總結
無疑,通過軟件配置管理對軟件開發過程的管理,對提高軟件開發效率,保障軟件開發有序有著重要作用。該文主要研究了軟件配置管理的必要性與其核心所在,并將當前流行的軟件配置管理工具ClearCase進行了初步探究,大致歸納了其優勢與劣勢所在。當然,軟件配置管理過程中的種種問題還有待于我們去解決。
參考文獻:
[1] Wahli U,Brown J,Teinonen M,Trulsson L.軟件配置管理——IBM Rational ClearCase和ClearQuest UCM指南[M].李紀華,譯.北京:人民郵電出版社,2006.
[2] Kenefick S.軟件配置管理[M].王海濤,沈火林,譯.北京:清華大學出版社,2004.
[3] IBM Rational配置管理白皮書[EB/OL].http://cio.ctocio.com.cn/wpsummary/122/6219122.shtml.
[4] IBM Rational ClearCase 部署指南[EB/OL].http://www.ibm.com/developerworks/cn/rational/r-cc-hg/.