隨著軟件系統(tǒng)的規(guī)模、復(fù)雜度日益上升,軟件開發(fā)過程管理已經(jīng)成為保證軟件系統(tǒng)開發(fā)效率、質(zhì)量、成本的關(guān)鍵性因素。作為軟件開發(fā)過程中質(zhì)量保障的重要組成部分,行之有效的軟件配置管理(以下簡稱SCM,Software Configuration Management)能夠顯著提高軟件開發(fā)組織的自身能力、提高軟件開發(fā)過程的完整性,以及降低軟件開發(fā)的風(fēng)險。
軟件配置管理的概念
ISO 9000、CMM、ISO/IEC 12207、IEEE 729-1983對SCM的定義有不同的描述。ISO9000定義SCM為“一個管理學(xué)科,它對配置項的開發(fā)和支持生命周期給予技術(shù)上和管理上的指導(dǎo)。配置管理取決于項目的規(guī)模、復(fù)雜程度和風(fēng)險大小”。
CMM2將SCM定義為一個關(guān)鍵過程域KPA,是“貫穿于整個軟件過程中的保護性活動,它被設(shè)計來(1)標識變化,(2)控制變化,(3)保證變化被適當(dāng)?shù)陌l(fā)現(xiàn)(4)向其他可能有興趣的人員報告變化?!?。SCM包括了配置項識別、工作空間管理、版本控制、變更控制、狀態(tài)報告、配置審計等活動,其中以版本控制最為核心和關(guān)鍵。
數(shù)據(jù)集中工程軟件配置管理策略
1、數(shù)據(jù)集中工程項目背景
中國建設(shè)銀行數(shù)據(jù)集中工程的目標是通過建立總行級的數(shù)據(jù)中心,向全行38個一級分行、20000多個網(wǎng)點提供完整的核心金融服務(wù)。其核心應(yīng)用系統(tǒng)DCC-CCBS包括主機、前置、前端三大部分。主機應(yīng)用部分部署在總行級數(shù)據(jù)中心,前置應(yīng)用部分部署在數(shù)據(jù)中心前置通信網(wǎng)關(guān)、各一級分行業(yè)務(wù)大前置,前端部分部署在網(wǎng)點。
DCC-CCBS項目的SCM需要實現(xiàn)開發(fā)、發(fā)布、部署的全過程軟件配置管理。開發(fā)過程SCM的核心是系統(tǒng)源碼版本管理;發(fā)布過程的SCM核心是系統(tǒng)目標碼版本管理;部署過程以確保系統(tǒng)目標碼版本在數(shù)據(jù)中心、一級分行、網(wǎng)點和外系統(tǒng)的正確部署為首要目標。
2、開發(fā)過程軟件配置管理
系統(tǒng)源碼版本除系統(tǒng)源程序、參數(shù)外,還包括需求規(guī)格說明書、系統(tǒng)總體架構(gòu)設(shè)計說明書、主機/前置/前端系統(tǒng)結(jié)構(gòu)設(shè)計說明書、各子系統(tǒng)的詳細設(shè)計說明書、各子系統(tǒng)的對外接口規(guī)范、業(yè)務(wù)操作手冊、系統(tǒng)使用手冊、系統(tǒng)安裝維護手冊等文檔。根據(jù)配置項的不同屬性,經(jīng)過評審,形成需求基線、設(shè)計基線和源代碼基線等不同的基線。開發(fā)過程SCM按照子系統(tǒng)的性質(zhì),分為主機、前置、前端三部分獨立管理。
DCC-CCBS項目總體組負責(zé)整個需求和變更的控制。通過審批的需求按照功能分布分解為主機、前置、前端的子需求,再由各部門分別管理和實現(xiàn)。環(huán)境及版本控制小組負責(zé)向各部門提出形成“系統(tǒng)基線”的要求,以同步主機、前置、前端的源碼版本。
3、發(fā)布過程軟件配置管理
發(fā)布過程的系統(tǒng)目標碼版本包括系統(tǒng)目標碼(執(zhí)行碼)、系統(tǒng)參數(shù)及相關(guān)文檔等。按照用途,系統(tǒng)目標碼版本可分為測試版和正式版。以前置平臺為例,發(fā)布過程SCM的主要活動包括:
構(gòu)建環(huán)境管理,保證編譯環(huán)境的純凈性和正確性;
構(gòu)建過程管理,保證構(gòu)建過程的自動化操作,及其正確性和完整性;
版本編號管理,統(tǒng)一版本命名規(guī)則,確保目標碼版本號的性和可追蹤性;
目標碼版本生成管理,從各版本管理工具系統(tǒng)收集、整理、打包相應(yīng)的目標碼、參數(shù)和文檔,形成完整的或部分(補丁)的目標碼版本;
配置狀態(tài)檢查,檢查目標碼版本包中內(nèi)容的正確性、完整性和一致性;
4、部署過程軟件配置管理
部署過程SCM的主要任務(wù)是:建立安全、可靠和迅速的傳輸流程和傳輸渠道;建立目標碼版本記錄和追蹤機制、版本運行時刻檢查機制和版本恢復(fù)機制;確保正確的版本、按照正確的渠道、在規(guī)定時間遞交到正確的用戶并生效。
在DCC-CCBS生產(chǎn)環(huán)境中,軟件開發(fā)中心將通過數(shù)據(jù)中心版本管理系統(tǒng)發(fā)布各單位所需的目標碼版本,各單位在版本管理系統(tǒng)和數(shù)據(jù)傳輸通道的支持下,實現(xiàn)版本/補丁的主動分發(fā)、查詢、下載和生效。
軟件配置管理實施經(jīng)驗
1、樹立正確的企業(yè)配置管理意識
SCM是一門管理學(xué)科。歸根結(jié)底,其關(guān)鍵是“管理”,然后才是“軟件配置”。項目級SCM能否成功實施,與企業(yè)的軟件配置管理目標、策略、能力、組織和資源息息相關(guān)。
2、提高全員的配置管理素質(zhì)
SCM是規(guī)則和流程的集合,需要依靠流程中所有部門和人員共同的支持和努力。任何環(huán)節(jié)上的疏忽和懈怠,都將直影響SCM的實施效果。
3、采用合適的工具
功能強大的或昂貴的工具未必是合適的工具。往往20%的功能即可解決80%的配置管理問題。目前比較流行的版本管理工具包括CVS、PVCS、ClearCase、Harvest、VSS、Endeavor等。在選擇具體工具時,往往需要考慮以下因素:(1)工具將要使用的范圍;(2)工具自身的功能、穩(wěn)定性、擴展行,以及對環(huán)境的要求;(3)工具使用的復(fù)雜度;(4)工具與其他流程和工具的集成度和交互性;(5)工具的投資和維護費用。
4、及時的檢查和梳理
大系統(tǒng)開發(fā)過程中,配置管理往往采用分步離散管理方式,因此保證整個系統(tǒng)配置管理的完整性成為一件精密細致的工作,需要投入大量人力及時修訂基線,防微杜漸,避免混亂,以滿足對配置管理正確性、完整性和及時性的要求。
5、系統(tǒng)化思考、分步實施、持續(xù)改進
SCM不是一項孤立的管理活動。企業(yè)的戰(zhàn)略目標、管理能力、文化背景、組織結(jié)構(gòu),項目的規(guī)模、性質(zhì)、技術(shù)、人員等都是影響SCM決策的重要因素。因此需要在項目乃至企業(yè)的整體環(huán)境中系統(tǒng)的考慮SCM的實施策略和方法。
通過分階段實施量化的、漸進的配置管理目標,可以避免由于引入復(fù)雜管理流程所造成的混亂,有利于方便靈活地優(yōu)化配置管理流程。同時,階段性目標的實現(xiàn)將有助于整個團隊提高士氣、增強信心,并逐步提高開發(fā)隊伍的配置管理素質(zhì)。
軟件配置管理的概念
ISO 9000、CMM、ISO/IEC 12207、IEEE 729-1983對SCM的定義有不同的描述。ISO9000定義SCM為“一個管理學(xué)科,它對配置項的開發(fā)和支持生命周期給予技術(shù)上和管理上的指導(dǎo)。配置管理取決于項目的規(guī)模、復(fù)雜程度和風(fēng)險大小”。
CMM2將SCM定義為一個關(guān)鍵過程域KPA,是“貫穿于整個軟件過程中的保護性活動,它被設(shè)計來(1)標識變化,(2)控制變化,(3)保證變化被適當(dāng)?shù)陌l(fā)現(xiàn)(4)向其他可能有興趣的人員報告變化?!?。SCM包括了配置項識別、工作空間管理、版本控制、變更控制、狀態(tài)報告、配置審計等活動,其中以版本控制最為核心和關(guān)鍵。
數(shù)據(jù)集中工程軟件配置管理策略
1、數(shù)據(jù)集中工程項目背景
中國建設(shè)銀行數(shù)據(jù)集中工程的目標是通過建立總行級的數(shù)據(jù)中心,向全行38個一級分行、20000多個網(wǎng)點提供完整的核心金融服務(wù)。其核心應(yīng)用系統(tǒng)DCC-CCBS包括主機、前置、前端三大部分。主機應(yīng)用部分部署在總行級數(shù)據(jù)中心,前置應(yīng)用部分部署在數(shù)據(jù)中心前置通信網(wǎng)關(guān)、各一級分行業(yè)務(wù)大前置,前端部分部署在網(wǎng)點。
DCC-CCBS項目的SCM需要實現(xiàn)開發(fā)、發(fā)布、部署的全過程軟件配置管理。開發(fā)過程SCM的核心是系統(tǒng)源碼版本管理;發(fā)布過程的SCM核心是系統(tǒng)目標碼版本管理;部署過程以確保系統(tǒng)目標碼版本在數(shù)據(jù)中心、一級分行、網(wǎng)點和外系統(tǒng)的正確部署為首要目標。
2、開發(fā)過程軟件配置管理
系統(tǒng)源碼版本除系統(tǒng)源程序、參數(shù)外,還包括需求規(guī)格說明書、系統(tǒng)總體架構(gòu)設(shè)計說明書、主機/前置/前端系統(tǒng)結(jié)構(gòu)設(shè)計說明書、各子系統(tǒng)的詳細設(shè)計說明書、各子系統(tǒng)的對外接口規(guī)范、業(yè)務(wù)操作手冊、系統(tǒng)使用手冊、系統(tǒng)安裝維護手冊等文檔。根據(jù)配置項的不同屬性,經(jīng)過評審,形成需求基線、設(shè)計基線和源代碼基線等不同的基線。開發(fā)過程SCM按照子系統(tǒng)的性質(zhì),分為主機、前置、前端三部分獨立管理。
DCC-CCBS項目總體組負責(zé)整個需求和變更的控制。通過審批的需求按照功能分布分解為主機、前置、前端的子需求,再由各部門分別管理和實現(xiàn)。環(huán)境及版本控制小組負責(zé)向各部門提出形成“系統(tǒng)基線”的要求,以同步主機、前置、前端的源碼版本。
3、發(fā)布過程軟件配置管理
發(fā)布過程的系統(tǒng)目標碼版本包括系統(tǒng)目標碼(執(zhí)行碼)、系統(tǒng)參數(shù)及相關(guān)文檔等。按照用途,系統(tǒng)目標碼版本可分為測試版和正式版。以前置平臺為例,發(fā)布過程SCM的主要活動包括:
構(gòu)建環(huán)境管理,保證編譯環(huán)境的純凈性和正確性;
構(gòu)建過程管理,保證構(gòu)建過程的自動化操作,及其正確性和完整性;
版本編號管理,統(tǒng)一版本命名規(guī)則,確保目標碼版本號的性和可追蹤性;
目標碼版本生成管理,從各版本管理工具系統(tǒng)收集、整理、打包相應(yīng)的目標碼、參數(shù)和文檔,形成完整的或部分(補丁)的目標碼版本;
配置狀態(tài)檢查,檢查目標碼版本包中內(nèi)容的正確性、完整性和一致性;
4、部署過程軟件配置管理
部署過程SCM的主要任務(wù)是:建立安全、可靠和迅速的傳輸流程和傳輸渠道;建立目標碼版本記錄和追蹤機制、版本運行時刻檢查機制和版本恢復(fù)機制;確保正確的版本、按照正確的渠道、在規(guī)定時間遞交到正確的用戶并生效。
在DCC-CCBS生產(chǎn)環(huán)境中,軟件開發(fā)中心將通過數(shù)據(jù)中心版本管理系統(tǒng)發(fā)布各單位所需的目標碼版本,各單位在版本管理系統(tǒng)和數(shù)據(jù)傳輸通道的支持下,實現(xiàn)版本/補丁的主動分發(fā)、查詢、下載和生效。
軟件配置管理實施經(jīng)驗
1、樹立正確的企業(yè)配置管理意識
SCM是一門管理學(xué)科。歸根結(jié)底,其關(guān)鍵是“管理”,然后才是“軟件配置”。項目級SCM能否成功實施,與企業(yè)的軟件配置管理目標、策略、能力、組織和資源息息相關(guān)。
2、提高全員的配置管理素質(zhì)
SCM是規(guī)則和流程的集合,需要依靠流程中所有部門和人員共同的支持和努力。任何環(huán)節(jié)上的疏忽和懈怠,都將直影響SCM的實施效果。
3、采用合適的工具
功能強大的或昂貴的工具未必是合適的工具。往往20%的功能即可解決80%的配置管理問題。目前比較流行的版本管理工具包括CVS、PVCS、ClearCase、Harvest、VSS、Endeavor等。在選擇具體工具時,往往需要考慮以下因素:(1)工具將要使用的范圍;(2)工具自身的功能、穩(wěn)定性、擴展行,以及對環(huán)境的要求;(3)工具使用的復(fù)雜度;(4)工具與其他流程和工具的集成度和交互性;(5)工具的投資和維護費用。
4、及時的檢查和梳理
大系統(tǒng)開發(fā)過程中,配置管理往往采用分步離散管理方式,因此保證整個系統(tǒng)配置管理的完整性成為一件精密細致的工作,需要投入大量人力及時修訂基線,防微杜漸,避免混亂,以滿足對配置管理正確性、完整性和及時性的要求。
5、系統(tǒng)化思考、分步實施、持續(xù)改進
SCM不是一項孤立的管理活動。企業(yè)的戰(zhàn)略目標、管理能力、文化背景、組織結(jié)構(gòu),項目的規(guī)模、性質(zhì)、技術(shù)、人員等都是影響SCM決策的重要因素。因此需要在項目乃至企業(yè)的整體環(huán)境中系統(tǒng)的考慮SCM的實施策略和方法。
通過分階段實施量化的、漸進的配置管理目標,可以避免由于引入復(fù)雜管理流程所造成的混亂,有利于方便靈活地優(yōu)化配置管理流程。同時,階段性目標的實現(xiàn)將有助于整個團隊提高士氣、增強信心,并逐步提高開發(fā)隊伍的配置管理素質(zhì)。