關於多個開發中心開發同一軟體的配置管理

myattitude發表於2008-07-24
        做軟體專案開發的人員都熟悉版本控制,但一般都為在同一開發地點的版本控制,所有相關的開發人員在同一個地點做開發,用一個版本控制軟體來Check in 和Check out,達到版本控制的效果。但如果同時在幾個不同的地方進行同一軟體的開發,怎樣來做版本控制?很少見到這方面的介紹,我就現在參與的一個專案的實際情況來介紹一下這方面的經驗。

        我公司是一個香港軟體公司,在香港、北京和深圳各有一個開發中心,三地正在合作開發一個大型的香港金融軟體專案,現在涉及到一個三地的版本控制和協同開發問題。首先由於客戶在香港,整個系統的整合和整體測試(IAT)、使用者測試(UAT)在香港開發中心來完成,那麼北京和深圳開發的程式要彙總到香港來進行編譯、整合,由於同一模組甚至同一程式在三地都可能同時修改,程式的Check in和Check out一定要嚴格控制,否則版本的一致性將會失控。另外程式還分成IAT測試環境、UAT測試環境、生產系統三個版本,分別管理系統在各生命週期的程式。

        為了到達此目標,我們公司自己開發了一個小的配置管理軟體CMS(Configuration Management System) 用來進行版本控制。

        首先各開發中心安裝自己的版本控制軟體VSS,在開發新功能或修改現有功能之前,從香港的版本控制部門通過郵件或FTP方式得到系統最新的原始碼、配置檔案,然後基於這個版本的進行程式開發。在進行單元測試正確後,要向版本控制中心進行程式提交,程式設計師通過HTTP方式登入香港版本控制中心的CMS系統進行登記。

        程式開發人員在提交請求後,需要經過專案組長或主管的審批,審批人員在審批過程中主要檢查申請單填寫是否正確,是不是需要提交這些檔案,檔案路徑、名稱是否正確;版本控制人員根據這些提交申請來進行處理。

        如果是新程式Check In for New,開發人員把新程式FTP或Email給版本控制人員,版本控制人員在收到新程式後,Check In 到版本控制中心的VSS中;

        如果是Check Out請求,版本控制人員把版本控制中心的VSS中相應的程式Check Out,並把這些程式發給開發人員,開發人員收到這些程式後,與自己修改過的程式相比較,合併自己改過的和這段時間其他人改過的地方成一個新版本;然後填寫Check In的申請單,把合併後的程式傳送版本控制人員。
        
        在當日所有相關開發人員的新增和修改的程式提交以後,版本控制中心就可以對系統進行編譯了,測試人員就可以基於新的系統版本進行測試;如果編譯過程中出現錯誤,一般是由於開發人員遺漏了某些程式的Check in,或者在程式合併過程中出現混亂,造成其他人的修改過的地方被刪除掉了。

        系統在整合測試環境通過後,就可以提交給UAT環境了,UAT的提交一般為在香港開發中心的主管來決定,根據UAT的測試計劃,提交相關的程式功能給客戶進行測試,在填寫UAT程式提交單之前,先用比較工具,比較Testing和UAT環境中程式的差異,記錄需要更新到UAT的程式,填寫程式到UAT環境的申請單,處理流程同IAT測試環境,只不過不需要提交程式,程式可以直接從Testing環境複製到UAT環境。

        雖然這種Check In 和Check Out的方式比較煩瑣,而且還有專門的版本控制人員來進行處理,但對版本控制提供了強有力的手段。希望能給遇到同樣問題的軟體專案管理人員提供參考。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14780914/viewspace-409903/,如需轉載,請註明出處,否則將追究法律責任。

相關文章