規範軟體開發過程——軟體配置管理實踐

myattitude發表於2008-07-09

隨著軟體系統的規模、複雜度日益上升,軟體開發過程管理已經成為保證軟體系統開發效率、質量、成本的關鍵性因素。作為軟體開發過程中質量保障的重要組成部分,行之有效的軟體配置管理(以下簡稱SCM,Software Configuration Management)能夠顯著提高軟體開發組織的自身能力、提高軟體開發過程的完整性,以及降低軟體開發的風險。

軟體配置管理的概念

ISO 9000、CMM、ISO/IEC 12207、IEEE 729-1983對SCM的定義有不同的描述。ISO9000定義SCM為“一個管理學科,它對配置項的開發和支援生命週期給予技術上和管理上的指導。配置管理取決於專案的規模、複雜程度和風險大小”。

CMM2將SCM定義為一個關鍵過程域KPA,是“貫穿於整個軟體過程中的保護性活動,它被設計來(1)標識變化,(2)控制變化,(3)保證變化被適當的發現(4)向其他可能有興趣的人員報告變化。”。SCM包括了配置項識別、工作空間管理、版本控制、變更控制、狀態報告、配置審計等活動,其中以版本控制最為核心和關鍵。

資料集中工程軟體配置管理策略

1、 資料集中工程專案背景

中國建設銀行資料集中工程的目標是通過建立總行級的資料中心,向全行38個一級分行、20000多個網點提供完整的核心金融服務。其核心應用系統DCC-CCBS包括主機、前置、前端三大部分。主機應用部分部署在總行級資料中心,前置應用部分部署在資料中心前置通訊閘道器、各一級分行業務大前置,前端部分部署在網點。

DCC-CCBS專案的SCM需要實現開發、釋出、部署的全過程軟體配置管理。開發過程SCM的核心是系統原始碼版本管理;釋出過程的SCM核心是系統目標碼版本管理;部署過程以確保系統目標碼版本在資料中心、一級分行、網點和外系統的正確部署為首要目標。

2、 開發過程軟體配置管理 系統原始碼版本除系統源程式、引數外,還包括需求規格說明書、系統總體架構設計說明書、主機/前置/前端系統結構設計說明書、各子系統的詳細設計說明書、各子系統的對外介面規範、業務操作手冊、系統使用手冊、系統安裝維護手冊等文件。根據配置項的不同屬性,經過評審,形成需求基線、設計基線和原始碼基線等不同的基線。開發過程SCM按照子系統的性質,分為主機、前置、前端三部分獨立管理。

DCC-CCBS專案總體組負責整個需求和變更的控制。通過審批的需求按照功能分佈分解為主機、前置、前端的子需求,再由各部門分別管理和實現。環境及版本控制小組負責向各部門提出形成“系統基線”的要求,以同步主機、前置、前端的原始碼版本。

3、 釋出過程軟體配置管理

釋出過程的系統目標碼版本包括系統目標碼(執行碼)、系統引數及相關文件等。按照用途,系統目標碼版本可分為測試版和正式版。以前置平臺為例,釋出過程SCM的主要活動包括:

  • 構建環境管理,保證編譯環境的純淨性和正確性;
  • 構建過程管理,保證構建過程的自動化操作,及其正確性和完整性;
  • 版本編號管理,統一版本命名規則,確保目標碼版本號的唯一性和可追蹤性;
  • 目標碼版本生成管理,從各版本管理工具系統收集、整理、打包相應的目標碼、引數和文件,形成完整的或部分(補丁)的目標碼版本;
  • 配置狀態檢查,檢查目標碼版本包中內容的正確性、完整性和一致性;

4、 部署過程軟體配置管理

部署過程SCM的主要任務是:建立安全、可靠和迅速的傳輸流程和傳輸渠道;建立目標碼版本記錄和追蹤機制、版本執行時刻檢查機制和版本恢復機制;確保正確的版本、按照正確的渠道、在規定時間遞交到正確的使用者並生效。

在DCC-CCBS生產環境中,軟體開發中心將通過資料中心版本管理系統釋出各單

位所需的目標碼版本,各單位在版本管理系統和資料傳輸通道的支援下,實現版本/補丁的主動分發、查詢、下載和生效。

軟體配置管理實施經驗

1、 樹立正確的企業配置管理意識

SCM是一門管理學科。歸根結底,其關鍵是“管理”,然後才是“軟體配置”。專案級SCM能否成功實施,與企業的軟體配置管理目標、策略、能力、組織和資源息息相關。

2、 提高全員的配置管理素質

SCM是規則和流程的集合,需要依靠流程中所有部門和人員共同的支援和努力。任何環節上的疏忽和懈怠,都將直影響SCM的實施效果。

3、 採用合適的工具 功能強大的或昂貴的工具未必是合適的工具。往往20%的功能即可解決80%的配置管理問題。目前比較流行的版本管理工具包括CVS、PVCS、ClearCase、Harvest、VSS、Endeavor等。在選擇具體工具時,往往需要考慮以下因素:(1)工具將要使用的範圍;(2)工具自身的功能、穩定性、擴充套件行,以及對環境的要求;(3)工具使用的複雜度;(4)工具與其他流程和工具的整合度和互動性;(5)工具的投資和維護費用。

4、 及時的檢查和梳理

大系統開發過程中,配置管理往往採用分步離散管理方式,因此保證整個系統配置管理的完整性成為一件精密細緻的工作,需要投入大量人力及時修訂基線,防微杜漸,避免混亂,以滿足對配置管理正確性、完整性和及時性的要求。

5、 系統化思考、分步實施、持續改進

SCM不是一項孤立的管理活動。企業的戰略目標、管理能力、文化背景、組織結構,專案的規模、性質、技術、人員等都是影響SCM決策的重要因素。因此需要在專案乃至企業的整體環境中系統的考慮SCM的實施策略和方法。

通過分階段實施量化的、漸進的配置管理目標,可以避免由於引入複雜管理流程所造成的混亂,有利於方便靈活地優化配置管理流程。同時,階段性目標的實現將有助於整個團隊提高士氣、增強信心,並逐步提高開發隊伍的配置管理素質。

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

相關文章