王 夢(mèng), 王飛飛, 劉 鈺
(濰柴動(dòng)力股份有限公司, 山東濰坊 261061)
CMMI是由卡內(nèi)基梅隆大學(xué)軟件工程研究所指定和發(fā)布的用來(lái)評(píng)價(jià)開(kāi)發(fā)商過(guò)程能力和組織成熟度的一套標(biāo)準(zhǔn), 也可以作為廠商提升產(chǎn)品開(kāi)發(fā)過(guò)程中管理水平的參考模型。CMMI框架的模型包含CMMI服務(wù)、 CMMI開(kāi)發(fā)、 CMMI采購(gòu),其中CMMI開(kāi)發(fā)包含16個(gè)過(guò)程域, 配置管理過(guò)程域 (CM)為CMMI開(kāi)發(fā)的核心過(guò)程域之一, 它貫穿軟件開(kāi)發(fā)工作全生命周期, 與軟件品質(zhì)有著緊密關(guān)系, 做好軟件配置管理,能夠有效保障軟件品質(zhì)。
配置管理的主要目的是保證項(xiàng)目和產(chǎn)品的整個(gè)生存周期內(nèi), 工作產(chǎn)品處于受控狀態(tài)、 為項(xiàng)目參與者提供準(zhǔn)確的信息、 實(shí)現(xiàn)歷史版本維護(hù)、 在項(xiàng)目需要時(shí)能 “返回” 過(guò)去的狀態(tài), 保證產(chǎn)品可追溯性。
配置管理三要素: 配置項(xiàng)、 基線、 配置庫(kù)。
1) 配置項(xiàng)是工作產(chǎn)品的集合, 可以作為單個(gè)實(shí)體進(jìn)行處理, 配置項(xiàng)的版本和標(biāo)識(shí)具有唯一性, 即一個(gè)項(xiàng)目中某一配置項(xiàng)具有唯一的版本和標(biāo)識(shí), 可采用版本樹(shù)實(shí)現(xiàn)追溯。
2) 基線是一組正式評(píng)審?fù)ㄟ^(guò)的工作產(chǎn)品, 基線內(nèi)的產(chǎn)品作為進(jìn)一步開(kāi)發(fā)的基礎(chǔ), 只有通過(guò)更改控制過(guò)程方可進(jìn)行修改, 為配置項(xiàng)連續(xù)演變提供穩(wěn)定的基礎(chǔ)。 常見(jiàn)的基線有3條, 分別為功能基線、 分配基線、 產(chǎn)品基線。
功能基線主要包含輸入至項(xiàng)目的協(xié)議文件與軟件研制任務(wù)書(shū)文件, 功能基線的建立, 標(biāo)志著需求已被理解和確認(rèn)。
分配基線在功能基線基礎(chǔ)上增加需求規(guī)格說(shuō)明文件,分配基線的建立, 標(biāo)志著需求已被分解為具體條目化軟件需求, 可直接指導(dǎo)軟件開(kāi)發(fā)與設(shè)計(jì)。
產(chǎn)品基線包含分配基線及需要交付至客戶的配置項(xiàng),產(chǎn)品基線的建立, 標(biāo)志著產(chǎn)品已通過(guò)測(cè)試及驗(yàn)證, 可被客戶獲取與使用。
3) 配置庫(kù)用于存放項(xiàng)目生命周期中產(chǎn)生的配置項(xiàng)與數(shù)據(jù), 是用于支持項(xiàng)目開(kāi)發(fā)、 保護(hù)項(xiàng)目資產(chǎn)的過(guò)程資產(chǎn)庫(kù)。 項(xiàng)目應(yīng)當(dāng)具備3 個(gè)配置庫(kù), 分別為開(kāi)發(fā)庫(kù)、 受控庫(kù)和產(chǎn)品庫(kù)。
開(kāi)發(fā)庫(kù)主要用于存放項(xiàng)目中所有配置項(xiàng)與數(shù)據(jù)項(xiàng), 所有項(xiàng)目組成員均具有開(kāi)發(fā)庫(kù)的讀寫(xiě)權(quán)限, 開(kāi)發(fā)庫(kù)是軟件研發(fā)時(shí)項(xiàng)目組成員信息交互的主要場(chǎng)所, 應(yīng)當(dāng)保證其公開(kāi)性。
受控庫(kù)主要用于存放已通過(guò)產(chǎn)品測(cè)試或者評(píng)審的配置項(xiàng), 作為階段性產(chǎn)品的集合。 受控庫(kù)需具有嚴(yán)格的權(quán)限管理, 通常僅有配置管理員 (執(zhí)行配置管理操作的人員) 具有寫(xiě)權(quán)限, 項(xiàng)目組所有成員具有讀權(quán)限, 且配置項(xiàng)進(jìn)行受控庫(kù)出入庫(kù)前, 要經(jīng)過(guò)項(xiàng)目級(jí)CCB (配置控制委員會(huì))的審批授權(quán), 此角色通常由本項(xiàng)目的項(xiàng)目經(jīng)理承擔(dān)。 此外,基線也納入受控庫(kù)進(jìn)行配置管理。
產(chǎn)品庫(kù)用于存放已定型 (鑒定) 且供交付、 生產(chǎn)、 檢驗(yàn)驗(yàn)收的配置項(xiàng)。 產(chǎn)品庫(kù)應(yīng)當(dāng)具有嚴(yán)格的權(quán)限管理, 僅有配置管理員具有產(chǎn)品庫(kù)的讀寫(xiě)權(quán)限, 項(xiàng)目組成員及客戶具有讀權(quán)限, 客戶只具有產(chǎn)品庫(kù)的讀權(quán)限, 不具有受控庫(kù)和開(kāi)發(fā)庫(kù)的讀寫(xiě)權(quán)限, 以此保證開(kāi)發(fā)過(guò)程對(duì)外具有保密性。只有在產(chǎn)品基線建立完成后, 才將產(chǎn)品基線內(nèi)的工作產(chǎn)品納入產(chǎn)品庫(kù)進(jìn)行管理。 產(chǎn)品庫(kù)內(nèi)配置項(xiàng)的出庫(kù)及更改必需由公司級(jí)CCB進(jìn)行審批授權(quán) (一般為部門(mén)領(lǐng)導(dǎo)), 且必需征得客戶同意, 產(chǎn)品庫(kù)內(nèi)配置項(xiàng)出庫(kù)需嚴(yán)格按照變更控制的要求執(zhí)行。
配置管理過(guò)程主要有以下幾個(gè)步驟。
1.3.1 制定 《配置管理計(jì)劃》
《配置管理計(jì)劃》 需按照 《軟件開(kāi)發(fā)計(jì)劃》 中對(duì)配置管理的要求來(lái)制定, 需明確配置庫(kù)、 配置項(xiàng)、 基線、 項(xiàng)目組成員權(quán)限、 配置管理工具等內(nèi)容, 《配置管理計(jì)劃》 經(jīng)過(guò)利益相關(guān)方評(píng)審確定后, 方可由配置管理人員按照該計(jì)劃內(nèi)容開(kāi)展配置管理活動(dòng), 若有 《配置管理計(jì)劃》 發(fā)生變更,應(yīng)按照變更管理要求執(zhí)行, 變更后的文件在評(píng)審?fù)ㄟ^(guò)后方可生效。
1.3.2 建立并維護(hù)配置庫(kù)
在建立配置庫(kù)前, 應(yīng)選取合適且成熟的配置管理工具,常見(jiàn)的配置工具有: IBM公司的ClearCase系統(tǒng)、 SVN系統(tǒng),或其它本地化開(kāi)發(fā)管理工具。 根據(jù)項(xiàng)目成員角色設(shè)置對(duì)應(yīng)配置庫(kù)的讀寫(xiě)權(quán)限, 根據(jù)項(xiàng)目階段及各過(guò)程域設(shè)置配置庫(kù)結(jié)構(gòu), 并在整個(gè)項(xiàng)目生命周期內(nèi)進(jìn)行維護(hù), 確保配置項(xiàng)按照配置管理要求進(jìn)行管理。
1.3.3 配置項(xiàng)出入庫(kù)及基線的建立
按照 《配置管理計(jì)劃》 中明確的配置項(xiàng)明細(xì)與入庫(kù)時(shí)機(jī), 開(kāi)展配置項(xiàng)入庫(kù), 并根據(jù)配置管理規(guī)程執(zhí)行出庫(kù)操作。 出入庫(kù)申請(qǐng)單按配置管理規(guī)程審批通過(guò)后, 才可由配置管理員執(zhí)行出入庫(kù)操作, 且執(zhí)行出入庫(kù)前需對(duì)配置項(xiàng)版本、 標(biāo)識(shí)、 名稱和實(shí)際內(nèi)容符合性進(jìn)行審核, 并檢查配置項(xiàng)是否完好無(wú)損壞。 出入庫(kù)操作完成后, 需及時(shí)將出入庫(kù)明細(xì)記錄在配置項(xiàng)狀態(tài)表中, 以便后續(xù)追溯配置項(xiàng)變更情況。
基線的建立按照 《配置管理計(jì)劃》 執(zhí)行, 需按照明確的時(shí)機(jī)及納入的配置項(xiàng)清單完成建立。 基線建立前需要向?qū)?yīng)的項(xiàng)目級(jí)CCB或公司級(jí)CCB進(jìn)行申請(qǐng), 申請(qǐng)通過(guò)后方可執(zhí)行基線建立。 基線建立完成后應(yīng)當(dāng)進(jìn)行基線發(fā)布, 可以采用郵件、 會(huì)議等方式通知利益相關(guān)方。
配置項(xiàng)出入庫(kù)及基線建立的時(shí)機(jī)均需在配置管理體系文件中明確, 以便指導(dǎo)配置管理員準(zhǔn)確執(zhí)行操作。
1.3.4 配置活動(dòng)審核
配置活動(dòng)審核主要包含功能配置審核、 物理配置審核、配置管理審核。
1) 功能配置審核主要審核配置項(xiàng)的功能、 性能是否達(dá)到功能基線文件中提出的需求, 開(kāi)展功能配置審核時(shí), 可通過(guò)測(cè)試及評(píng)審結(jié)果輔助審核。
2) 物理配置審核包含入庫(kù)前審核與基線建立或變更時(shí)審核。 入庫(kù)前主要審核版本、 標(biāo)識(shí)及配置項(xiàng)內(nèi)容與文檔是否一致且正確可用; 在基線建立及變更時(shí)開(kāi)展的物理配置審核需對(duì)配置庫(kù)內(nèi)的配置項(xiàng)進(jìn)行全面檢查, 確保入庫(kù)的配置項(xiàng)內(nèi)容與其文檔一致且正確可用。
3) 配置管理審核主要審核配置管理工作是否按配置管理相關(guān)標(biāo)準(zhǔn)與 《配置管理計(jì)劃》 執(zhí)行, 配置管理活動(dòng)是否有效。
1.3.5 變更的控制
變更在項(xiàng)目開(kāi)發(fā)中無(wú)法避免, 變更發(fā)生時(shí)會(huì)產(chǎn)生大量工程及管理工作。 由于軟件是看不見(jiàn)摸不著, 內(nèi)部又錯(cuò)綜復(fù)雜, 配置項(xiàng)之間也有著密切關(guān)系, 針對(duì)變更造成的潛在影響一旦未被識(shí)別, 將會(huì)給測(cè)試、 使用、 維護(hù)造成風(fēng)險(xiǎn)和困難。 為保證項(xiàng)目變更有效準(zhǔn)確進(jìn)行, 必需制定變更控制規(guī)程, 并對(duì)變更影響模板進(jìn)行定制式出具。 常見(jiàn)的變更影響分析主要考慮以下幾方面: 對(duì)開(kāi)發(fā)進(jìn)度的影響、 對(duì)發(fā)布進(jìn)度的影響、 對(duì)人員安排的影響、 對(duì)成本的影響、 對(duì)現(xiàn)有功能的影響、 風(fēng)險(xiǎn)分析、 對(duì)其他工作產(chǎn)品的影響、 對(duì)基線的影響。
配置管理是軟件項(xiàng)目管理的核心, 如果配置管理工作做不好, 會(huì)造成軟件開(kāi)發(fā)過(guò)程中多代碼多版本混亂, 無(wú)法準(zhǔn)確地進(jìn)行追溯、 增加產(chǎn)品返工的風(fēng)險(xiǎn)。 在配置管理工作中, 常見(jiàn)問(wèn)題如下。
在軟件研制項(xiàng)目中, 部分項(xiàng)目任命未接受過(guò)專業(yè)培訓(xùn)的項(xiàng)目開(kāi)發(fā)人員擔(dān)任配置管理員, 由于該人員未經(jīng)過(guò)系統(tǒng)學(xué)習(xí), 缺少配置管理工作經(jīng)驗(yàn), 在配置管理過(guò)程中易導(dǎo)致配置項(xiàng)受控時(shí)機(jī)不準(zhǔn)確, 配置審核有效性差, 不能及時(shí)發(fā)現(xiàn)問(wèn)題及糾正。
建議任命經(jīng)過(guò)專業(yè)培訓(xùn)的專人承擔(dān)配管工作, 若由于人力資源緊張, 則可以由一個(gè)專業(yè)配置管理員承擔(dān)多個(gè)項(xiàng)目的配管工作。 若缺少具備專業(yè)能力的配置管理員, 建議由項(xiàng)目助理或集成人員兼職, 項(xiàng)目助理需參與項(xiàng)目全生命周期, 需整體掌握項(xiàng)目進(jìn)度及交付物情況; 集成人員在集成前需要準(zhǔn)確提取模型代碼, 需具備對(duì)配置項(xiàng)準(zhǔn)確識(shí)別的能力, 并在開(kāi)展系統(tǒng)測(cè)試前, 需有能力檢查模型及代碼是否完整。 此外, 項(xiàng)目品質(zhì)保證人員需要保證對(duì)配置管理工作的審核能力, 并根據(jù)關(guān)鍵節(jié)點(diǎn)多頻次、 全方位開(kāi)展審核工作。
由于 《配置管理計(jì)劃》 制定后評(píng)審不足, 與實(shí)際工作要求不符, 工作中未按照計(jì)劃開(kāi)展配置管理工作及建立基線, 導(dǎo)致實(shí)際工作與計(jì)劃沖突, 出現(xiàn)未及時(shí)對(duì)計(jì)劃進(jìn)行變更, 漏入庫(kù)或者多入庫(kù)的情況。
建議軟件配置管理計(jì)劃完成后組織有效的同行評(píng)審,確保計(jì)劃準(zhǔn)確、 與工作實(shí)際相符。 配置管理員執(zhí)行入庫(kù)時(shí)需嚴(yán)格按照計(jì)劃執(zhí)行, 當(dāng)計(jì)劃無(wú)法滿足工作實(shí)際時(shí), 應(yīng)及時(shí)對(duì) 《配置管理計(jì)劃》 進(jìn)行修訂。 進(jìn)行物理配置審核時(shí),按照計(jì)劃內(nèi)容對(duì)入庫(kù)的明細(xì)與計(jì)劃入庫(kù)明細(xì)進(jìn)行對(duì)比, 確保工作產(chǎn)品完整入庫(kù)。
變更管理是配置管理的難點(diǎn)所在, 常出現(xiàn)問(wèn)題有: 實(shí)際變更內(nèi)容與申請(qǐng)變更內(nèi)容不一致; 配置項(xiàng)變了, 基線未變; 變更不完整或錯(cuò)誤; 變更審批有效性差。
建議出具專業(yè)的變更申請(qǐng)單及變更報(bào)告單模板, 當(dāng)發(fā)生變更時(shí), 按照模板內(nèi)容進(jìn)行填寫(xiě)、 執(zhí)行評(píng)審, 明確本次變更的配置項(xiàng)及對(duì)應(yīng)內(nèi)容, 明確變更后要重新建立的基線明細(xì), 變更后需開(kāi)展的審核及對(duì)應(yīng)審核的執(zhí)行人員和時(shí)間。配置管理員在執(zhí)行變更出庫(kù)時(shí), 應(yīng)核對(duì)變更申請(qǐng)單和出庫(kù)申請(qǐng)單內(nèi)容, 確認(rèn)無(wú)誤后再執(zhí)行出庫(kù)操作, 變更后入庫(kù)時(shí)對(duì)變更報(bào)告單及入庫(kù)申請(qǐng)單進(jìn)行核對(duì), 確認(rèn)無(wú)誤后再執(zhí)行入庫(kù)操作。 不同類型變更由不同級(jí)別CCB審核, 并制定對(duì)應(yīng)檢查項(xiàng)列表, 審核變更時(shí)采取會(huì)議形式, 按照檢查項(xiàng)列表逐條進(jìn)行審核, 減少不必要的變更, 確保變更審批有效性。
本文通過(guò)介紹配置管理過(guò)程的內(nèi)容、 常見(jiàn)問(wèn)題及改進(jìn)建議, 旨在有效降低軟件項(xiàng)目版本管理中存在的風(fēng)險(xiǎn), 提升軟件管理水平, 保證軟件品質(zhì), 推動(dòng)軟件研制過(guò)程標(biāo)準(zhǔn)化, 使配置管理過(guò)程能更好地服務(wù)于科研生產(chǎn)。