五、逐步完善分支創建方式
1、依據開發需要,創建平臺分支
由管理層次決定的分支是一個主分支一個集成分支,但隨著開發活動的深入,系統平臺開發和應用開發之間出現互相牽制問題,平臺程序變更后在沒有與應用程序聯調之前,會影響到應用程序的開發,嚴重時會使應用程序開發工作無法正常進行,為了查找原因,有時需要花上一兩天時間,影響了開發進度。鑒于這種情況,新創建了系統平臺分支,系統平臺子項目組在該分支開發集成,待測試通過并與應用聯調后再利用分支歸并功能,將程序歸并到集成分支,既達到了程序控制的目的,又不影響開發進度,有效的提高了開發效率。這一分支方式說明了通過科學管理可以出效率。
2、為了方便管理,建立鏈接分支
平臺分支和集成分支應用一段時間后,又出現了新的問題,平臺的變更,需要通過應用程序進行測試。但是,系統平臺分支上的應用程序不能時時更新,除非將集成分支的應用合并到平臺分支,這樣給管理帶來許多麻煩,為了解決該問題,利用FireflyV3.0版本中提供的鏈接功能,在系統分支上創建了鏈接,鏈接到集成分支的應用部分,這樣,平臺分支可以隨時得到應用系統變更的文件,大大方便了測試版本的制作。(圖5鏈接點)。
開發過程中系統分支和應用集成分支以及鏈接的應用,使平臺開發和應用開發可以有序進行,消除了平臺變更對應用開發帶來的影響,促進了開發進度,有效地控制了平臺和應用的變更,為開發階段版本管理和控制起到了很好的作用。
javascript:return big(this)" hspace=0 src="http://www.kjueaiud.com/attachments/2009/06/54376_200906290954375V3sh.gif" onload="javascript:if(this.width>498)this.style.width=498;" align=baseline border=0>
圖5 鏈接點
3、為發布產品,啟用主干分支
在項目開發階段基本結束,進入產品發布階段后,除了建立產品基線外,啟用了主干分支為發布分支,集成分支上測試通過的程序,及時合并到發布分支制作發布版本。在產品發布初期,用戶和試生產發現問題比較多,程序變更頻繁,每周要集成一個新版本,為了標示不同時間編譯的版本,除了版本號之外,附加了BuildNumber來標示,如圖4所示的標簽。
六、依據測試階段,集成軟件版本
從軟件工程化和保證產品質量出發,軟件測試采用三級測試方式:單元測試、集成測試和生產性測試(試生產),由于項目開發時間緊,不能一級測試結束,再開始下一級測試,而均采用滾動開發測試方式進行,多數情況下是同時進行,這給版本控制和集成帶來很大困難,為此,建立了三種集成環境。三個版本的版本控制和集成是通過分支、測試基線、分支合并來完成。
1、單元測試
單元測試由開發人員在相對穩定的系統開發平臺上進行,其中,相對穩定的系統平臺需要集成一個系統平臺版本。
2、集成測試
集成測試是將各個子系統組成一個可運行系統的重要階段。由于一體化軟件是系統平臺與應用系統幾乎同時開發的項目,系統平臺內部、應用系統內部,以及平臺與應用之間的組裝都需在集成測試階段完成。
3、生產測試
生產測試要求集成測試后比較穩定的版本,該版本利用標簽進行標示。
4、版本回溯
在測試中,經常出現新修改的程序版本有問題,需要回溯到上一個版本,這是,使用配置管理系統提供的版本管理功能非常方便地回到任意一個程序版本。
七、完善和改進配置管理體系
在兩年來的開發管理和版本控制中,有成功也有教訓,最初使用配置管理系統時,對其功能和使用方式不熟悉,出現了許多問題,對項目開發產生了一些影響,一度出現了放棄配置管理工具的念頭,最終在各方面人員的支持下,使得配置管理系統得以繼續在管理中發揮作用。
1、改進管理層次
在系統集成階段使用配置管理系統進行版本控制,解決了許多問題,促進了開發效率,為項目按期完成提供了有利保證。但是,在管理層次中,開發人員的開發活動沒有納入統一的控制之中,這種方式容易造成修改的版本不是最終版本問題。
針對上述現象和兩年來的使用經驗,在項目開發進入一個新的階段時(開發2.0版本),將版本控制范圍擴大到每一位開發人員,使每個開發人員的開發活動始終處于版本控制之中,管理層次如圖6所示。
2、增加子分支
為達到上述目的,子系統配置管理員也應該是分支管理員,為此,在集成分支下創建應用子系統的子分支,子分支分別由子系統配置管理員管理并設置用戶權限,進行子系統集成,然后再歸并到集成分支。
3、本地工作區
每位開發人員的工作空間都使用與配置管理系統相連的本地工作區,開發活動始終處于受控之中。
八、經驗與體會
在版本控制和管理方面的經驗主要體現以下幾個方面:
1、創建以“版本控制”為中心的大規模軟件配置管理體系
對于一體化系統這樣前所未有的超大規模、且開發周期僅兩年的軟件開發項目,如何保證軟件開發在有序與受控方式下進行,是項目成功開發要解決的關鍵問題。
首先,要制定一套體現項目特點的軟件配置管理體系,才能使開發處于受控之中。據此,項目組決定引進配置管理系統進行配置管理和版本控制,這也是首次在如此大規模的軟件項目中使用配置管理系統。由于是初次使用,基于過去軟件開發的經驗,結合本項目的特點和軟件配置管理的現狀,制定了適合本項目的版本控制層次結構(見圖1),分支策略和權限控制。
2、依據軟件開發的需要,創建配置管理體系
在項目開發過程中,依據每個開發階段的具體運作實踐,對版本控制層次結構和分支策略進行完善與實用化改進。配置管理體系的建立,使開發機構的開發模式逐步邁入工程化開發管理的新時期。
九、結束語
通過兩年項目開發實踐,許多開發人員對版本控制的概念有了新的認識,從最初的抵觸情緒到后來主動要求要使用配置管理系統,基本形成了軟件工程化的開發氛圍。
兩年來,在項目長、各級子項目長和項目部主管領導的支持下,一體化系統配置管理體系得到了有史以來的發展和完善,管理人員和開發人員的觀念得到了轉變,初步形成了一套適合大規模應用軟件項目開發的版本控制與管理體系,積累了比較豐富的技術與管理經驗。配置管理體系的建立,增強了開發團隊對大規模軟件開發的版本控制能力,為開發團隊的可持續發展奠定了技術基礎,積累了軟件財富。
有效地記錄并控制軟件開發過程產品版本演化進程,是搞好過程控制的基礎。軟件配置管理體系的有效實施,使軟件開發活動合理有序,為進一步搞好軟件項目管理和開發管理奠定了基礎。建立開發、測試受控庫,確定受控基線,對源程序、運行環境進行嚴格的版本管理與變更控制,確保項目過程產品的一致性、正確性和安全性,有效地降低了開發風險,縮短了產品的開發周期。因此,配置管理體系作為開發管理的主要過程之一,對處理、解釋一體化系統的開發成功起到了不可替代的作用。
文章來源于領測軟件測試網 http://www.kjueaiud.com/