當(dāng)軟件開發(fā)團(tuán)隊(duì)發(fā)展到一定規(guī)模時(shí),會(huì)越來越強(qiáng)調(diào)開發(fā)過程規(guī)范化和成熟度。軟件項(xiàng)目的成敗在很大程度上取決于對其開發(fā)過程的控制,這包括對質(zhì)量、源代碼、進(jìn)度、資金、人員等的控制。在軟件項(xiàng)目實(shí)施過程中正確、有效地進(jìn)行配置管理,需要進(jìn)行科學(xué)合理的規(guī)劃工作,并確定相應(yīng)的執(zhí)行策略。軟件配置管理可以幫助開發(fā)團(tuán)隊(duì)對軟件開發(fā)過程進(jìn)行有效地變更控制,高效地開發(fā)高質(zhì)量的軟件。在質(zhì)量體系的諸多支持活動(dòng)中,配置管理處在支持活動(dòng)的中心位置,它有機(jī)地把其他支持活動(dòng)結(jié)合起來,形成一個(gè)整體,相互促進(jìn),相互影響,有力地保證了質(zhì)量體系的實(shí)施。 本文針對軟件項(xiàng)目工作的特點(diǎn),介紹了配置管理工作的一般步驟和注意事項(xiàng)。
1、配置項(xiàng)的分類
在開展配置管理工作之前,首先應(yīng)根據(jù)項(xiàng)目特點(diǎn),對項(xiàng)目實(shí)施過程中涉及到的配置項(xiàng)進(jìn)行分類工作。一般來說,一個(gè)完整的軟件項(xiàng)目會(huì)包括項(xiàng)目管理文檔、軟件開發(fā)文檔、程序代碼、集成文檔、維護(hù)文檔等五類配置,對于每一類配置項(xiàng),又可以劃分為若干細(xì)類,具體的分類方法如下:在項(xiàng)目實(shí)施過程中制訂的工程總體計(jì)劃、階段計(jì)劃、周計(jì)劃,定期召開的項(xiàng)目例會(huì)或技術(shù)專題會(huì)議的紀(jì)要,質(zhì)量評審記錄、配置管理報(bào)告等與質(zhì)量相關(guān)的工作記錄等文檔,都屬于項(xiàng)目管理方面的范疇,因此均可以劃分到項(xiàng)目管理類文檔進(jìn)行管理。
作為一個(gè)軟件項(xiàng)目,必然會(huì)產(chǎn)生貫穿軟件工程標(biāo)準(zhǔn)定義的需求調(diào)研、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、單元測試、系統(tǒng)測試、用戶測試等各個(gè)階段的軟件文檔,均可以歸入到軟件開發(fā)類文檔之中。
在軟件開發(fā)過程中產(chǎn)生的各模塊程序代碼,軟件系統(tǒng)運(yùn)行所需的各類參數(shù)以及配置文件等內(nèi)容,由于其技術(shù)和管理特征與文檔有很大的不同,而且相互之間的關(guān)聯(lián)性比較強(qiáng),為了對其版本進(jìn)行有效地控制,建議單獨(dú)劃為一個(gè)類別進(jìn)行管理。
軟件系統(tǒng)的設(shè)計(jì)、開發(fā)和運(yùn)行離不開硬件環(huán)境的支持,因此在軟件項(xiàng)目的實(shí)施過程中,通常都會(huì)涉及到機(jī)房設(shè)計(jì)、主機(jī)安裝、網(wǎng)絡(luò)規(guī)劃等方面的工作內(nèi)容,因此系統(tǒng)集成類的文檔應(yīng)作為單獨(dú)的一個(gè)類別,納入到軟件項(xiàng)目的配置管理之中。
在軟件系統(tǒng)投入運(yùn)行之后,需要進(jìn)行相應(yīng)的日常維護(hù)工作,在維護(hù)過程中產(chǎn)生階段性運(yùn)行總結(jié)報(bào)告、定期產(chǎn)生的維護(hù)日志、系統(tǒng)運(yùn)行中出現(xiàn)的故障現(xiàn)象及問題解決情況等維護(hù)記錄,都需要納入維護(hù)類文檔進(jìn)行管理。
在軟件項(xiàng)目實(shí)施過程中產(chǎn)生的各類文檔、程序代碼紛繁復(fù)雜、數(shù)量眾多,通過對各類配置項(xiàng)的歸類工作,形成邏輯清晰的配置管理結(jié)構(gòu),便于對文檔和程序代碼進(jìn)行日常管理,使項(xiàng)目實(shí)施中產(chǎn)生的各類配置記錄始終處于可控狀態(tài)。
2、建立配置庫
在軟件項(xiàng)目的啟動(dòng)階段,應(yīng)指定一名專職或兼職的配置管理員,建立一臺(tái)專用的配置服務(wù)器,安裝相應(yīng)的配置工具軟件,并根據(jù)配置項(xiàng)分類方法,對程序代碼和文檔的目錄結(jié)構(gòu)進(jìn)行規(guī)劃工作,在配置工具軟件中,建立起相應(yīng)的配置目錄結(jié)構(gòu),同時(shí)根據(jù)使用者角色的不同,設(shè)定相應(yīng)的目錄訪問和存取權(quán)限。
對于每一個(gè)具體的配置項(xiàng),都需要標(biāo)識(shí)出其作者、時(shí)間、版本號(hào)、當(dāng)前狀態(tài)等基本信息,以便對配置項(xiàng)的版本進(jìn)行實(shí)時(shí)監(jiān)控,方便項(xiàng)目成員對配置項(xiàng)的檢索和更新工作。
配置管理員負(fù)責(zé)整個(gè)配置庫的安全管理工作,應(yīng)妥善保管好系統(tǒng)管理員的口令,并進(jìn)行定期的變更工作,以保證配置庫的安全性。
3、建立執(zhí)行機(jī)制
在配置庫建立起來以后,配置管理員應(yīng)將配置目錄結(jié)構(gòu)和權(quán)限分配表在項(xiàng)目組內(nèi)部進(jìn)行公布,并根據(jù)應(yīng)用行業(yè)特點(diǎn),對CMM/ISO9001的配置管理過程進(jìn)行合理裁減,制訂適用于本項(xiàng)目的配置工作流程,明確項(xiàng)目組中的每位成員在配置管理方面的分工職責(zé),并對項(xiàng)目組成員進(jìn)行相應(yīng)的職責(zé)和流程培訓(xùn)工作。
配置管理員除了負(fù)責(zé)對各類配置項(xiàng)進(jìn)行管理之外,還應(yīng)對項(xiàng)目配置狀況進(jìn)行分析,定期提供配置報(bào)告,發(fā)布新的配置項(xiàng)狀態(tài),提出改進(jìn)建議并跟蹤執(zhí)行情況,避免出現(xiàn)因?yàn)槲臋n或程序代碼版本更新的不一致,而導(dǎo)致系統(tǒng)故障的情況發(fā)生。
在配置管理工作中,為了保證配置項(xiàng)的可靠性,應(yīng)制訂相應(yīng)的備份策略,對配置庫中的不同類型的配置項(xiàng)進(jìn)行定期備份。在軟件系統(tǒng)的設(shè)計(jì)開發(fā)階段,程序代碼類的配置項(xiàng)由于變更頻繁,建議每天備份一次,在正式發(fā)布之后,可以改為每周備份一次。文檔類的配置項(xiàng)變更機(jī)率相對較小,建議每周備份一次。具體的備份方法,可以采用手工方式執(zhí)行備份操作,也可以在工具軟件或操作系統(tǒng)中設(shè)定備份策略,定期自動(dòng)執(zhí)行備份操作,同時(shí)配置管理員應(yīng)做好相應(yīng)的備份記錄工作。
由于配置工具軟件本身一般都提供對每一個(gè)配置項(xiàng)歷史版本的追溯機(jī)制,因此對配置庫的備份操作,一般只需對當(dāng)前配置庫的內(nèi)容進(jìn)行備份即可。這里需要注意的一點(diǎn)是,在執(zhí)行配置庫的備份操作之前,應(yīng)對配置庫目錄中的數(shù)據(jù)是否正常進(jìn)行檢查,以避免因庫文件損壞而使錯(cuò)誤數(shù)據(jù)覆蓋正常備份庫,從而導(dǎo)致配置項(xiàng)丟失的情況出現(xiàn)。
4、經(jīng)驗(yàn)總結(jié)
在軟件系統(tǒng)投入運(yùn)行之時(shí),應(yīng)對配置庫進(jìn)行整理和提煉,形成從項(xiàng)目啟動(dòng)到系統(tǒng)運(yùn)行階段,涵蓋項(xiàng)目管理、軟件開發(fā)、系統(tǒng)集成等領(lǐng)域的一套完整的項(xiàng)目檔案,隨同軟件系統(tǒng)正式交付給用戶,并給予適當(dāng)?shù)呐嘤?xùn)和輔導(dǎo),使用戶能夠快速有效地開展系統(tǒng)維護(hù)工作,為生產(chǎn)系統(tǒng)的穩(wěn)定與可靠運(yùn)行提供了保證。
如果配置工作流程制訂得過于復(fù)雜,不具備可操作性,反而起不到應(yīng)有的管理作用,因此在開展配置管理工作時(shí),應(yīng)以簡單、有效、適合應(yīng)用行業(yè)特點(diǎn)為基本準(zhǔn)則,推進(jìn)軟件項(xiàng)目實(shí)施過程中的配置管理工作。
配置管理對象不僅于CMM/ISO9001體系規(guī)定的內(nèi)容,凡是與項(xiàng)目實(shí)施有關(guān)的文檔、代碼或數(shù)據(jù)均應(yīng)納入配置管理,這樣可以實(shí)現(xiàn)對項(xiàng)目實(shí)施中的每一項(xiàng)工作進(jìn)行追溯,及時(shí)處理項(xiàng)目實(shí)施過程中出現(xiàn)的各類問題。