qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          怎樣選擇配置管理工具

          每一個軟件項目,不管是project類項目,還是產品類項目,都必須經歷需求分析、系統設計、編碼實現、集成測試、部署、交付、維護和支持的過程。在這個過程中,將生成各種各樣不同的工件,包含文檔、源程序、可執行代碼、支持庫。更可怕的是,頻繁出現的變更是不可避免的,因此面向如此龐大且不斷變動的信息集,怎樣使其有序、高效地存放、查找和利用就成為了一個突出的問題。
            針對這一問題,最早的開發者嘗試過的解決的方法是通過手工來實現:
            1)文檔:每次改動時都另存為一個新的文件,然后通過文件名稱進行區分,比如 "XXX 軟件需求說明書V1.0, XXX軟件需求說明書V1.1, XXX 軟件需求說明書V2.0.",并且在文件里注明每次版本號變化的內容;
            2) 源碼:每次要改動時就將整個project文件夾復制一份,將原來的文件夾進行改名,比如 "XX 項目V1.0、 XX 項目1.01、 .",然后在新的文件夾中進行改動;
            可是這樣的方法,不僅十分繁瑣,easy出錯,并且會帶來大量的垃圾數據。假設是團隊協同開發或者是項目規模較大時,還是會造成非常大的混亂。非常顯然,這樣簡陋的方法是無法應對這一問題的。
            后來,有人嘗試從制造工業領域引入了" 配置管理"這一概念,通過不懈的研究與實踐,終于形成了一套管理辦法和活動原則,這也就是軟件配置管理。
            通過軟件配置管理,將對軟件系統中的多重版本號實施系統的管理;全面記載系統開發的歷史過程,包含為什么改動,誰作了改動,改動了什么;管理和追蹤開發過程中危害軟件質量以及影響開發周期的缺陷和變化。并對開發過程進行有效地管理和控制,完整、明白地記載開發過程中的歷史變更,形成規范化的文檔,不僅使日后的維護和升級得到保證,并且更重要的是,這還會保護寶貴的代碼資源,積累軟件財富,提高軟件重用率,加快投資回報。
            常見的配置管理工具
            正如前面所述,因為軟件配置管理過程十分繁雜,管理對象錯綜復雜,假設是採用人工的辦法不僅費時費力,還easy出錯,產生大量的廢品。因此,引入一些自己主動化工具是十分有裨益的,這也是做好配置管理的必要條件。
            正是因為如此,市場上出現了大量的自己主動化配置管理工具,這些工具的實現原理與基本機制均十分接近,但因為其定位不同,因此各有特點,下面我們就對一些常見的配置管理工具做一簡單的介紹。
            元老:CCC 、SCCS、 RCS
            上個世紀七十年代初期加利福利亞大學的Leon Presser 教授撰寫了一篇論文,提出控制變更和配置的概念,之后在1975年,他成立了一家名為 SoftTool的公司,開發了自己的配置管理工具:CCC,這也是最早的配置管理工具之中的一個。
            在軟件配置管理工具發展史上,繼CCC之后,最具有里程碑式的是兩個自由軟件: Marc Rochkind 的SCCS (Source Code Control System) 和 Walter Tichy 的RCS (Revision Control System),它們對配置管理工具的發展做出了重大的貢獻,直到如今絕大多數配置管理工具基本上都源于它們的設計思想和體系架構。
            中堅:Rational ClearCase
            Rational 公司是全球最大的軟件CASE 工具提供商,現已被IBM 收購?;蛟S是受到其拳頭產品、可視化建模第一工具Rose 的影響,它開發的配置管理工具ClearCase 也是深受用戶的喜愛,是如今應用面最廣的企業級、跨平臺的配置管理工具之中的一個。
            ClearCase提供了比較全面的配置管理支持,當中包含版本號控制、工作空間管理、Build管理等,并且開發者無需針對其改變現有的環境、工具和工作方式。
            其最大的缺點就在于其價格不菲,每一個client用戶許可證大約須要幾千美金,所以在國內應用群體有限。
            1) 版本號控制
            ClearCase 不僅能夠對文件、文件夾、鏈接進行版本號控制,同一時候還提供了先進的版本號分支和歸本功能用于支持并行開發。另外,它還支持廣泛的文件類型。
            2)工作空間管理
            能夠為開發者提供私人存儲區,同一時候能夠實現成員之間的信息共享,從而為每一位開發者提供一致、靈活、可重用的工作空間域。
            3) Build管理
            對ClearCase 控制的數據,既能夠使用定制腳本,也可使用本機提供的make 程序。
            其最大的缺點就在于其價格不菲,每一個client用戶許可證大約須要幾千美金,所以在國內應用群體有限。
            新秀:Hansky Firefly
            做為Hansky公司軟件開發管理套件中重要一員的Firefly,能夠輕松管理、維護整個企業的軟件資產,包含程序代碼和相關文檔。 Firefly是一個功能完好、執行速度極快的軟件配置管理系統,能夠支持不同的操作系統和多種集成開發環境,因此它能在整個企業中的不同團隊,不同項目中得以應用。
            Firefly基于真正的客戶機/ server體系結構,不依賴于不論什么特殊的網絡文件系統,能夠平滑地執行在不同的LAN、WAN 環境中。它的安裝配置過程簡單易用,Firefly 能夠自己主動、安全地保存代碼的每一次變化內容,避免代碼被無意中覆蓋、改動。項目管理人員使用 Firefly能夠有效地組織開發力量進行并行開發和管理項目中各階段點的各種資源,使得產品公布易于管理;并能夠高速地回溯到任一歷史版本號。系統管理員使用Firefly 的內置工具能夠方便的進行存儲庫的備份和恢復,而不依賴于不論什么第三方工具。
            開源奇葩: CVS
            CVS 是Concurrent Versions System 的縮寫,它是開放源碼軟件世界的一個偉大杰作,因為其簡單易用、功能強大,跨平臺,支持并發版本號控制,并且免費,它在全球中小型軟件企業中得到了廣泛使用。
            其最大的遺憾就是缺少對應的技術支持,很多問題的解決須要自已尋找資料,甚至是讀源碼。
            小工作組級:Merant PVCS
            MERANT 公司的 PVCS 能夠提供對軟件配置管理的基本支持,通過使用其圖形界面或相似SCCS 的命令,能夠基本滿足小型項目開發的配置管理需求。 PVCS 盡管功能上也基本能夠滿足需求,可是其性能表現一直較差,逐漸地被市場所冷落。
            入門級:Microsoft Visual Source Safe
            Visual Source Safe,即VSS ,是微軟公司為Visual Studio配套開發的一個小型的配置管理工具,準確來說,它僅能夠稱得上是一個小型的版本號控制軟件。 VSS的優點在于其與Visual Studio實現了無縫集成,使用簡單。提供了歷史版本號記錄、改動控制、文件比較、日志等基本功能。
            但其缺點也是十分明顯的,僅僅支持Windows平臺,不支持并行開發,通過 Check out - Modify - Check in的管理方式,一個時間僅僅同意一個人改動代碼,并且速度慢、伸縮性差,不支持異地開發。甚至于微軟本身也不採用其做為配置管理工具,而是使用一個名為SLM 的內部工具。
          English »
           
           怎樣選擇配置管理工具
            面對這些形形色色,各有千秋的配置管理工具,怎樣依據組織特點、開發團隊須要,選擇切合適用的工具呢?筆者就結合工作實踐中的經驗與大家做一些交流與探討。
            配置管理工具的選擇所需考慮的因素大體包含下面幾個因素:
            功能是否符合實際需求?是否符合團隊特點?性能是否愜意?費用能否夠接受?售后服務怎樣?接下來,我們就這幾方面逐一深入地探討:
            1)功能是否符合實際需求,是否符合團隊特點
            工具就是用來幫助您解決這個問題的,因此功能是否符合實際需求是最重要的推斷因素。而大多數主流配置管理工具的基本功能都能夠滿足,因此主要須要推斷下面幾個因素:
            并行開發支持
            在團隊協作開發過程中,有兩種基本的模式:集體代碼權和個體代碼權。採用集體代碼權模式進行開發時,一段代碼可能同一時候會被多個開發者同一時候改動;而採用個體代碼權模式進行開發時,每一段代碼都始終被一個開發者獨享,別人須要改動時也會通過該開發者完畢。
            而配置管理軟件針對這一情況,也採用了不同的策略:Copy-Modify-Merge(拷貝、改動、合并 ) 的并行開發模式、Check out-Modify-Check in(簽出、改動、簽入)的獨占開發模式。在并行開發模式下,開發者能夠并行開發、更改代碼, Firefly會自己主動檢測到代碼沖突,并自己主動合并,或提示開發者手動解決。
            表一、并行開發支持比較表
            工具名稱
            說明
            ClearCase
            Copy-Modify-Merge 模式
            Firefly
            Copy-Modify-Merge 模式
            CVS
            Copy-Modify-Merge 模式
            PVCS
            Check out-Modify-Check in 模式
            VSS
            Check out-Modify-Check in 模式
            異地開發支持
            假設你的開發團隊分布在不同的開發地點,就須要對工具的異地開發功能進行細致的評估了。大多數工具都提供基于 Web的界面,用戶能夠通過瀏覽器執行配置管理的相關操作,并且有些工具就通過這樣的方法來實現對異地開發的支持。
            這樣的實現方法有太多的局限性,比如網絡(Internet)連接帶寬的限制、防火墻以及安全問題等。真正意義上的異地開發支持,是指在不同的開發地點建立各自的存儲庫,通過工具提供同步功能自己主動或手動同步。這樣做的優點是與網絡無關,即便各個開發地點之間沒有實時連通的網絡,也能夠通過 E-Mail 附件等其他方式將同步包發給對方,實現手動的同步。
            表二異地開發支持比較表
            工具名稱
            說明
            ClearCase
            提供MultiSite 模塊,通過自己主動或手動同步位于不同開發地點的存儲庫的方式,支持異地開發
            Firefly
            提供ServerSync 模塊,通過自己主動或手動同步位于不同開發地點的存儲庫的方式,支持異地開發
            CVS
            無專門支持的模塊
            PVCS
            無專門支持的模塊
            VSS
            無專門支持的模塊
            值得說明的是,在不同開發點建立各自存儲庫的方式,主要適用于兩個或兩個以上位于不同地點的開發團隊協作開發的情況。假設僅是採用虛擬團隊合作的方式,開發者以個體的形式散落在不同地方,則更適合通過 Internet 直接操作遠程的配置管理server。
            跨平臺開發支持
            假設企業須要從事多個不同平臺下的開發工作,就須要配置管理工具能夠對跨平臺開發提供支持,否則勢必會給開發、測試、公布等各個環節帶來不便,將使大量的時間被浪費于代碼的手工上傳、下載中。
            表三跨平臺開發支持比較表
            工具名稱
            說明
            ClearCase
            支持常見的平臺
            Firefly
            軟件本身基于Java開發,可在 Windows、Linux、 Solaris、HP-UX、 AIX等常見平臺上使用,平臺之間的移植也非常方便
            CVS
            支持差點兒全部的操作系統
            PVCS
            軟件本身基于Java 開發,能夠支持常見的平臺
            VSS
            僅支持Windows 操作系統
            與開發工具的集成性
            配置管理工具與開發工具是編碼過程中最經常使用到兩種工具,因此它們之間的集成性直接影響到開發者的便利性,假設無法良好集成,開發者將不可避免地在配置管理工具與開發工具之間來回切換。
            表四與開發工具集成性比較表
            工具名稱
            說明
            ClearCase
            直接與資源管理器集成,十分易用
            Firefly
            與常見開發工具無縫集成
            CVS
            對開發工具集成性較差
            PVCS
            僅支持Windows 操作系統
            VSS
            與Visual Studio開發工具包無縫連接,其他開發工具集成性差
            2)性能是否愜意
            配置管理工具軟件的一些性能指標對于終于的選擇也有著至關重要的影響。
            執行性能
            假設開發團隊規模不大的情況下,配置管理工具軟件的性能不會造成非常大影響,但假設項目規模比較大,團隊成員逐漸增多的情況下,其執行性能就會帶來非常大的影響。
            表五執行性能比較表
            工具名稱
            說明
            ClearCase
            server採用多進程機制,使用自帶多版本號文件系統MVFS,對性能有較大負面影響。做為一款企業級、全面的開發配置管理工具,適用于大型開發團隊
            Firefly
            server採用了多線程的應用server,性能表現優秀,做為一款企業級、全面的開發配置管理,能適用于50人到上千人的團隊
            CVS
            較高的執行性能,適用于各種級別的開發團隊
            PVCS
            server採用文件系統共享方式,對CPU、內存及網絡要求較高,性能一般,僅適用于中小型項目團隊,不適合于企業級應用
            VSS
            相對功能單一、簡陋,適用于幾個人的小型團隊,在數據量不大的情況下,性能能夠接受
            易用性
            表六易用性比較表
            工具名稱
            說明
            ClearCase
            安裝、配置、使用相對較復雜,須要進行團隊培訓
            Firefly
            在提供全面配置管理功能的情況下,安裝、配置、使用較為簡單,包含安裝、配置、培訓在內的整個實施周期一般不會超過一個月。
            CVS
            安裝、配置較復雜,但使用比較簡單,僅僅需對配置管理做簡單培訓就可以
            PVCS
            使用比較簡單,僅僅需對配置管理做簡單培訓就可以
            VSS
            安裝、配置、使用均較簡單,非常easy上手使用
            從用戶界面、與開發工具的集成性角度來說,這幾款主流的配置管理軟件均有較好的設計,均有較好的易用性。
            安全性
            表七安全性比較表
            工具名稱
            說明
            ClearCase
            採用C/S模式,須要共享server上的存儲文件夾以供client訪問,這將帶來一定安全隱患
            Firefly
            server上的存儲文件夾不用共享,對client不透明,client不可直接訪問存儲文件夾,使系統更安全可靠
            CVS
            採用C/S 模式,不須要共享server上的存儲文件夾,安全性較好
            PVCS
            基于文件系統共享,并且須要以"可寫 "的權限共享存儲文件夾,存在較大的安全隱患
            VSS
            基于文件系統共享實現對server的訪問,須要共享存儲文件夾,這將帶來一定安全隱患
            3)費用能否夠接受
            Rational ClearCase 、Hansky Firefly 兩款均屬于企業級配置管理工具軟件 ,ClearCase價格較貴,,相比之下 Hansky Firefly 是一款不錯的選擇。
            而 PVCS其價格大約是每client幾百美元的水平,對于國內企業來說,性價比不太劃算。 VSS 是微軟打包在Visual Studio開發工具包之中的,顯然花費的精力不大,價格也比較廉價,能夠做為個人、小項目團隊版本號控制之用。
            而 CVS則是一款全然免費的開源軟件,性能較之企業級配置管理工具差距不大,也是一種不錯的選擇。
            4) 售后服務怎樣
            表八售后服務比較表
            工具名稱
            說明
            ClearCase
            大型商用軟件,已被IBM公司收購,但國內市場拓展有限,因此服務支持會受到限制。如今中國用戶的支持是由位于澳大利亞悉尼的支持中心聯系
            Firefly
            大型商用軟件,已在中國成立分公司,全面拓展市場之中,在北京設有支持中心
            CVS
            做為開源軟件,無官方支持,須要用戶自己查找資料解決技術問題,如今也出現專門為CVS 做技術支持的公司
            PVCS
            在中國市場開拓有限,國內沒有支持中心
            VSS
            做為微軟的非核心產品,技術支持有限。在其站點上有提供一些常見問題,僅僅有對正式購買的用戶提供一定的技術支持
            售后服務與產品支持也是一個非常重要的考察點,工具在使用過程中出現這樣那樣的問題是非常尋常的事,有些是因為使用不當,有些則是工具本身的缺陷。這些問題都會直接影響到開發團隊的使用,因此隨時能夠找到專業技術人員解決這些問題就變成十分重要。
            實例說明
            最后,筆者介紹幾個實際的案例,希望對大家選擇軟件配置管理工具軟件有幫助。
            案例一
            某公司擁有10 名專職開發者以及一些兼職的開發者,主要從事 Windows和Linux 平臺下的軟件開發,採用的工具包含Visual Studio 系列、 GCC 等。為了能夠加強版本號控制與配置管理工作,決定引入一些自己主動化配置管理工具。
            經過謹慎的選擇,採用了兩步走的方法:
            1) 首先採用了Visual Studio 軟件包中的 VSS做為配置管理工具;
            <SPAN style="FONT-SIZE: 9pt;"word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">  ...

          posted on 2014-09-16 09:43 順其自然EVO 閱讀(246) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2014年9月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 西充县| 翁源县| 江山市| 寿光市| 林甸县| 定陶县| 黔江区| 射阳县| 新津县| 阳东县| 凌源市| 苗栗市| 乐都县| 喀什市| 普兰县| 浮山县| 崇阳县| 东源县| 汉阴县| 汉寿县| 曲周县| 张家口市| 增城市| 吉木萨尔县| 洛隆县| 芦溪县| 枣阳市| 凤凰县| 武宁县| 海晏县| 农安县| 伊春市| 泸水县| 万年县| 巴东县| 腾冲县| 保康县| 永登县| 九台市| 萍乡市| 云和县|