軟體配置管理

標識、組織和控制修改的技術

軟體配置管理(Software Configuration Management,SCM)是一種標識、組織和控制修改的技術。軟體配置管理應用於整個軟體工程過程。在軟體建立時變更是不可避免的,而變更加劇了項目中軟體開發者之間的混亂。SCM活動的目標就是為了標識變更、控制變更、確保變更正確實現並向其他有關人員報告變更。從某種角度講,SCM是一種標識、組織和控制修改的技術,目的是使錯誤降為最小並最有效地提高生產效率。軟體配置管理,貫穿於整個軟體生命周期,它為軟體研發提供了一套管理辦法和活動原則。軟體配置管理無論是對於軟體企業管理人員還是研發人員都有著重要的意義。

工具軟體


常用的軟體配置管理工具主要分為三個級別:
l Rational ClearCase,Perforce,CA CCC/Havest l Merant PVCS l Microsoft VSS,CVS
常用的開源免費的軟體配置管理工具有:SVN
GIT
、CVS

過程描述


一個軟體研發項目一般可以劃分為三個階段:計劃階段、開發階段和維護階段。然而從軟體配置管理的角度來看,后兩個階段所涉及的活動是一致,所以就把它們合二為一,成為“項目開發和維護”階段。

計劃階段

一個項目設立之初PM首先需要制定整個項?研發計劃之後,軟體配置管理的活動就可以展開了,因為如果不在項目開始之初制定軟體配置管理計劃,那麼軟體配置管理的許多關鍵活動就無法及時有效的進行,而它的直接後果就是造成了項目開發狀況的混亂並註定軟體配置管理活動成為一種“救火”的行為。所以及時制定一份軟體配置管理計劃在一定程度上是項目成功的重要保證。
在軟體配置管理計劃的制定過程中,它的主要流程應該是這樣的:
CCB根據項目的開發計劃確定各個里程碑和開發策略;
CMO根據CCB的規劃,制定詳細的配置管理計劃,交CCB審核;
CCB通過配置管理計劃后交項目經理批准,發布實施。

開發維護階段

這一階段是項目研發的主要階段。在這一階段中,軟體配置管理活動主要分為三個層面:
⑴主要由CMO完成的管理和維護工作;
⑵由SIO和DEV具體執行軟體配置管理策略;
⑶變更流程。這三個層面是彼此之間既獨立又互相聯繫的有機的整體。
在這個軟體配置管理過程中,它的核心流程應該是這樣的:
⑴CCB設定研發活動的初始基線;
⑵CMO根據軟體配置管理規劃設立配置庫和工作空間,為執行軟體配置管理計劃做好準備;
⑶開發人員按照統一的軟體配置管理策略,根據獲得的授權的資源進行項目的研發工作;
⑷SIO按照項目的進度集成組內開發人員的工作成果,並構建系統,推進版本的演進;
⑸CCB根據項目的進展情況,審核各種變更請求,並適時的劃定新的基線,保證開發和維護工作有序的進行。
這個流程就是如此循環往複,直到項目的結束。當然,在上述的核心過程之外,還涉及其他一些相關的活動和操作流程,下面按不同的角色分工予以列出:
各開發人員按照項目經理髮布的開發策略或模型進行工作;
SIO負責將各分項目的工作成果歸併至集成分支,供測試或發布;
SIO可向CCB提出設立基線的要求,經批准後由CMO執行;
CMO定期向項目經理和CCB提交審計報告,並在CCB例會中報告項目在軟體過程中可能存在的問題和改進方案;
在基線生效后,一切對基線和基線之前的開發成果的變更必須經CCB的批准;
CCB定期舉行例會,根據成員所掌握的情況、CMO的報告和開發人員的請求,對配置管理計劃作出修改,並向項目經理負責。
軟體配置管理
軟體配置管理
綜上所述,配置管理的工作流程如圖1所示:

實施配置管理的收益


國內很多軟體企業已經逐漸認識到配置管理的重要性,都希望通過實施配置管理來提高軟體開發管理的水平,增強企業自身的競爭力,應對市場的壓力。
針對市場的這些需求,Hansky公司在中國市場推出了業界技術領先的軟體配置管理解決方案,產品包括配置管理工具Firefly和變更管理工具Butterfly。Firefly是Hansky公司推出的軟體配置管理系統,它可以輕鬆管理、維護整個企業的軟體、代碼和文檔。Firefly是一個高性能、運行速度極快的軟體配置管理系統,支持不同的開發、運行平台,因此它能在整個企業中的不同團隊、不同項目中都得以廣泛的應用。Firefly能夠對團隊開發提供有力的支持,開發團隊一旦擁有了Firefly,就可以非常準確的定義:
軟體將在什麼時間發布;
當前發布版本中有哪些功能,由哪些組件構成;
當前版本中加入了針對哪些Bug的修改;
軟體的某個修改是誰認可的;
如何建立新的發布版本;
等等…
Butterfly是Hansky公司提供的新一代的軟體變更請求管理軟體。它以軟體產品為中心,有效的協調軟體項目中各職位人員的工作,能夠使軟體項目在較短時間內高質量完成。
Butterfly的主要功能如下:
提供對開發過程中的缺陷、建議和任務的追蹤管理;
規劃開發過程,完善源代碼編寫,提高軟體重用率,最大限度保護企業知識財富;
提供豐富的報表功能,以直觀圖形統計開發人員的工作進度和編碼質量,客觀評價員工表現;
優化業務流程,科學的工作流系統使用戶工作起來有條不紊,大大提高工作效率,同時用戶可以根據實際情況簡單、快捷地定製自己的業務流程;
掌握工作進度,在軟體開發的各個階段進行都可以進行強大的過程式控制制;
開發人員可以明確地了解他被分配的開發任務,並根據優先順序依次完成;
提供友好的人機界面,支持工作分配的電子郵件自動通知,方便各種類型的工作人員使用,增加溝通和交流;
對軟體的錯誤進行系統管理,從根本上提高軟體產品競爭力,提高產品質量;
加速開發進程,規範軟體產品開發的各個階段,避免浪費不必要的時間。
Hansky公司的配置管理解決方案給公司帶來的益處將是顯而易見的:管理者能夠輕鬆控制產品的進度、質量;開發人員將有更多的時間進行創造性的工作;測試人員將依照一個標準的流程高效完成日常工作;產品發布人員能夠確保交到用戶手中的產品的質量。
具體而言,用戶可以在資金、管理水平和保護知識財富等方面得到切實收益。
節約用戶資金
(1) Hansky配置管理系統的總體實施成本低
對硬體系統性能的要求低,可以跨平台使用,節約了用戶的投資;
安裝簡單,易於維護,無需專職的系統管理員
功能簡潔、實用,易於學習和掌握,可以有效縮短配置管理系統投入實際使用的周期;
良好的擴展性和靈活的License管理方式,以及組件式的解決方案,使得我們的配置管理系統既支持小組模式的用戶,也能夠支持大規模團隊的協同開發工作,並且能夠方便地進行擴展,用戶可以根據實際需要,靈活的配置,大大降低了降低初期投入的資金;
具有前瞻性,保護用戶的投資。Hansky公司的軟體配置管理產品採用最新的技術(如純TCP/IP技術、J2EE技術、MS .NET的開發環境等)和全新的應用模式(如三層結構、B/S應用結構等),確保系統在較長的時間內不會落後於同類產品或不需要技術上的更新;
自帶存儲庫增量備份/恢復功能,節約用戶在備份方面的支出。
(2) 縮短用戶的產品開發周期
利用Hansky的Firefly系統對開發資源進行版本管理和跟蹤,可以建立公司級的代碼知識庫,保存開發過程中的所有歷史版本,這樣大大提高了代碼的復用率,還便於同時維護多個版本和進行新版本的開發,最大限度地共享代碼。利用Butterfly組建開發團體之間的問題跟蹤及消息通訊機制,通過與電子郵件系統的結合大大增強了開發團體之間的溝通能力,通過豐富的報表功能可對發現的問題進行整理、以報表方式分類報出,作為開發的指導。通過使用Hansky的配置管理套件可以提高開發效率和產品質量,避免了代碼復蓋、溝通不夠、開發無序的混亂局面,大大縮短了產品的開發周期。
(3) 降低產品的部署費用
使用Hansky的軟體配置管理解決方案后,用戶可以在Hansky技術專家的幫助下建立規範的配置管理流程,所有的軟體產品將得到統一有效的管理。藉助Firefly和Butterfly,工程人員可以通過訪問伺服器直接獲取所需的最新版本,查找公司的知識庫,提交變更請求,收集用戶的反饋意見。開發人員無需到現場即可再現用戶環境,集中解決問題,發布補丁。這樣可以同時響應多個地點的項目,防止開發人員分配到各個項目點、力量分散、人員不夠的弊端,同時節約大量的旅差費用。
提高軟體開發管理的水平
(1) 改進用戶的開發工作模式
使用Hansky的配置管理解決方案,可以有效地改進用戶的軟體開發模式和過程,提高企業軟體能力成熟度的級別。
藉助Firefly和Butterfly,用戶可以:
有效的管理工作空間,各個成員的具有獨立的工作空間,並能記錄其變更集和整個生命周期中的完整變更歷史;
簡便建立分支,支持分支之間的比較與合併,歸併,管理基線;
支持并行開發模式,提高開發效率;
支持異地開發,Firefly通過自動或手動同步不同開發地點的的存儲庫,為地理分佈的開發團隊提供很好的支持;
集成變更請求管理與項目生存周期中的變更記錄與追蹤,優化測試流程;
完善的發布管理,可以方便的回溯任意版本,為不同的用戶定製應用程序的版本,促進系統的快速部署,提供發布版本內容的審計能力;
支持變更集和原子事務,確保變更的一致性;
支持離線的版本管理,幫助用戶記錄項目證明周期內的完整歷史;
內置Defect、RFE、Task(問題、建議、任務)工作流,符合正規軟體公司的軟體開發流程。科學的工作流系統可以使公司人員工作起來得心應手,有條不紊,從而大大提高工作效率。
(2) 加強項目管理能力
通過瀏覽器,項目負責人可以方便地查看項目進展情況以及員工工作情況;
利用Web界面即可實現代碼複查和項目狀態複查;
豐富的圖表、報告功能,可以自動生成變更統計報告、配置審計報告,支持過程管理與進度分析,能夠幫助管理者進行決策。
(3) 量化工作量考核
傳統的開發管理中,工作量一直是難以估量的指標。靠開發人員自己把握,隨意性過大;靠管理人員把握,主觀性又太強。採用Firefly和Butterfly管理后,系統能夠客觀的記錄員工的工作內容和質量,可以作為工作量的衡量指標。
(4) 規範測試流程
Butterfly和Firefly集成后,可以有效地跟蹤和處理軟體的變更,完整地記錄測試人員的工作內容,測試有了實實在在的工作,測試人員根據修改描述細節對每一天的工作做具體的測試。對測試人員也具有相應的可考核性,這樣環環相扣,有效地增強了對測試的管理。
(5) 加強協調與溝通,增加團隊競爭力
使用Firefly保存公司的所有知識財富、利用Butterfly的FAQ、檢索以及Email自動通知功能,有效地加強了項目成員之間的溝通,做到有問題及時發現、及時修改、及時通知,卻又不會額外增加很多的工作量,大大提高了開發團隊的協同工作效率。
保護企業的知識財富
從整個企業的發展戰略來說,如何在技術日新月異、人員流動頻繁的情況下,本公司的知識庫及經驗庫,把個人的知識及經驗轉變為公司的知識和經驗,這對於提高工作效率、縮短產品周期以及提高公司的競爭力都具有至關重要的作用。採用科學的配置管理思想,輔之以先進的配置管理工具,可以幫助用戶在內部建立完善的知識管理體系。
(1) 代碼對象庫
軟體代碼是軟體開發人員腦力勞動的結晶,也是軟體公司的寶貴財富,長期開發過程中形成的各種代碼對象就像一個個零件一樣,是快速生成系統的組成部分。然而長期以來的一個事實是:一旦某個開發人員離開工作崗位,其原來所編寫的代碼便基本成為垃圾,無人過問;或者由於文檔不全,無從考究。究其原因,就是沒有專門對每個開發人員的代碼、組件和文檔進行科學的管理,將其應用範圍擴大到公司一級,進行規範化,加以說明和普及。Firefly為代碼管理提供了一個平台和倉庫,有利於建立公司級的代碼對象庫,增進代碼復用,提高開發重用率和軟體質量。
(2) 業務及經驗庫
通過Firefly和Butterfly,可自動生成完整的開發日誌及問題集合,用文字記錄開發的整個過程,不會因某人的流動而消失,有利於公司積累業務經驗,無論對軟體維護或版本升級,都具有重要的指導作用。此外,利用Butterfly內建的FAQ模塊,可以建立檢索方便的經驗庫,傳播和共享集體的智慧。
(3) 安全性和可靠性
由於配置管理系統集中存儲了企業的重要知識財富,因此對其安全性和可靠性有極高的要求。Firefly可以對所有存儲的文件進行冗餘校驗,使用MD5作為文件的校驗和,並提供備份和恢復工具,確保了數據的可靠性。同時Firefly支持用戶身份驗證和訪問控制,支持用戶組,便於許可權設置。訪問控制可以針對分支、目錄,甚至單個文件設置,採用類似Windows NTFS的許可權管理方式,既靈活又安全。這些措施使得企業的知識財富得到了安全可靠的存儲和保護。
另外,由於Hansky的產品採用了三層結構設計,其存儲庫完全不依賴於網路文件體統,無需共享存儲目錄,能夠有效防止病毒攻擊所導致的存儲庫癱瘓或損壞,同時杜絕網路非法訪問。