天天看點

什麼是配置管理?軟體配置管理标準化流程

前言

配置管理(Configuration Management, CM)的目的是通過執行版本控制、變更控制等規程,以及使用配置管理軟體,來保證所有配置項的完整性和可跟蹤性。配置管理是對工作成果的一種有效保護。

配置管理過程域是SPP模型的重要組成部分。本規範闡述了配置管理過程域的四個主要規程:

◆ 制定配置管理計劃 [SPP-PROC-CM-PLANNING]

◆ 配置庫管理 [SPP-PROC-CM-LIB]

◆ 配置項版本控制 [SPP-PROC-CM-VERSION]

◆ 配置項變更控制 [SPP-PROC-CM-CHANGE]

上述每個規程的“目标”、“角色與職責”、“啟動準則”、“輸入”、“主要步驟”、“輸出”、“完成準則”和“度量”均已定義。

本規範适用于國内IT企業的軟體研發項目。建議使用者根據自身情況(如商業目标、研發實力等)适當地修改本規範,然後推廣使用。

17.1 介紹

項目研發和管理過程中會産生許許多多的工作成果,例如文檔、程式和資料等,它們都應當被儲存起來,以便查閱和修改。如果把所有檔案一股腦地塞進計算機裡,那麼使用起來肯定很麻煩。毫無疑問,人們應當将檔案分門别類、有條理地儲存起來。

凡是納入配置管理範疇的工作成果統稱為配置項(Configuration Item, CI),配置項主要有兩大類:

(1)屬于産品組成部分的工作成果,例如需求文檔、設計文檔、源代碼、測試用例。

(2)項目管理和機構支撐過程域産生的文檔。這些文檔雖然不是産品的組成部分,但是值得儲存。

每個配置項的主要屬性有:名稱、辨別符、檔案狀态、版本、作者、日期等。所有配置項都被儲存在配置庫裡,確定不會混淆、丢失。配置項及其曆史記錄反映了軟體的演化過程。

基線(Baseline)由一組配置項組成,這些配置項構成了一個相對穩定的邏輯實體。基線中的配置項被“當機”了,不能再被任何人随意修改(見變更控制規程)。基線通常對應于開發過程中的裡程碑(Milestone),一個産品可以有多個基線,也可以隻有一個基線。基線的主要屬性有:名稱、辨別符、版本、日期等。通常将傳遞給客戶的基線稱為一個“Release”,為内部開發用的基線則稱為一個“Build”。

所有的項目成員都要使用配置管理軟體來保護自己的工作成果。機構應當采用統一的配置管理軟體,常見的配置管理軟體有Microsoft的Visual SourceSafe和Rational的ClearCase等。為了提高配置管理的效率和安全性,機構應當有專門的配置管理者(角色)。配置管理者為每個項目制定《配置管理計劃》,建立和維護配置庫。

鑒于配置管理的重要性和複雜性,機構還應當設立配置控制委員會(Configuration Control Board, CCB)。CCB是個虛拟小組,對配置管理各項活動擁有決策權(例如審批計劃,審批變更請求等)。對于配置管理而言,CCB是決策者,而配置管理者是執行者。

如果機構的各個項目緊密相關(例如一個産品線下的多個項目),建議機構設立公共的CCB,這個公共的CCB對所有項目的配置管理擁有決策權。如果機構的各個項目相對獨立,那麼每個項目可以設立各自的CCB。CCB的決策采用“少數服從多數”原則。

配置管理的流程如圖17-1所示。

什麼是配置管理?軟體配置管理标準化流程

圖17-1 配置管理流程圖

一、制定配置管理計劃

配置管理者制定《配置管理計劃》,主要内容包括配置管理軟硬體資源、配置項計劃、基線計劃、傳遞計劃、備份計劃等。CCB審批該計劃。

二、配置庫管理

配置管理者為項目建立配置庫,并給每個項目成員配置設定權限。各項目成員根據自己的權限操作配置庫。配置管理者定期維護配置庫,例如清楚垃圾檔案、備份配置庫等。

三、版本控制

在項目開發過程中,絕大部分的配置項都要經過多次的修改才能最終确定下來。對配置項的任何修改都将産生新的版本。由于我們不能保證新版本一定比老版本“好”,是以不能抛棄老版本。版本控制的目的是按照一定的規則儲存配置項的所有版本,避免發生版本丢失或混淆等現象,并且可以快速準确地查找到配置項的任何版本。

配置項的狀态有三種:“草稿”、“正式釋出”和“正在修改”,本規程制定了配置項狀态變遷與版本号的規則。

四、變更控制

在項目開發過程中,配置項發生變更幾乎是不可避免的。變更控制的目的就是為了防止配置項被随意修改而導緻混亂。

修改處于“草稿”狀态的配置項不算是“變更”,無需CCB的準許,修改者按照版本控制規則執行即可。

當配置項的狀态成為“正式釋出”,或者被“當機”後,此時任何人都不能随意修改,必須依據“申請-審批-執行變更-再評審-結束”的規則執行。

五、配置審計

為了保證所有人員(包括項目成員、配置管理者和CCB)都遵守配置管理規範,品質保證人員要定期審計配置管理工作。配置審計是一種“過程品質檢查”活動,是品質保證人員的工作職責之一。請參考品質保證規範SPP-PROC-QA,此處不再論述。

配置管理過程域産生的主要文檔有:

◆《配置管理計劃》

◆《配置庫管理報告》

◆《配置項變更控制報告》

17.2 制定配置管理計劃

17.2.1 目的

制定配置管理計劃,以便有計劃地開展配置管理工作。

17.2.2 角色與職責

配置管理者制定《配置管理計劃》。

CCB審批《配置管理計劃》。CCB的人數視項目的規模而定。通常CCB由項目經理、資深項目成員等人組成,項目經理為CCB負責人。CCB的決策采用“少數服從多數”原則。

17.2.3 啟動準則

《項目計劃》已經制定

配置管理者和CCB已經确定。

17.2.4 輸入

《項目計劃》

17.2.5 主要步驟

[Step1] 确定配置管理的軟硬體資源

配置管理者根據項目的規模以及财力,确定配置管理軟體以及計算機資源(考慮記憶體、外存、CPU等)。常用的配置管理軟體有Microsoft公司的Visual SourceSafe和Rational公司的ClearCase等。

[Step2] 制定配置項計劃

配置管理者識别項目的主要配置項。每個配置項都有唯一的辨別符,辨別符的參考格式為Project-Type…Type-Number。

◆ 可以在Project(或Product)前面加上公司的辨別符。

◆ Type…Type表示配置項類型,可以采用多級縮寫。

◆ Number為3為數字,範圍從001到999,表示一個配置項有若幹個檔案。若配置項隻有一個檔案,則該項可以省略。

配置項計劃的參考格式如下:

類型 主要配置項 辨別符 預計正式釋出時間

[Step3] 制定基線計劃

配置管理者确定每個基線的名稱(辨別符)及其主要配置項,估計每個基線建立的時間。基線計劃的參考格式如下:

基線名稱/辨別符 基線所包含的主要配置項 預計建立時間

[Step4] 制定配置庫備份計劃

配置管理者制定配置庫備份計劃,指明“何人”在“何時”(頻度)将配置庫備份到“何處”。

[Step5] 審批《配置管理計劃》

CCB審批《配置管理計劃》。若該計劃被準許,則請CCB負責人簽字認可。否則,配置管理者按照CCB的意見修改《配置管理計劃》,直到該計劃被準許為止。

17.2.6 輸出

《配置管理計劃》

17.2.7 結束準則

《配置管理計劃》已經制定并被CCB的準許。

17.2.8 度量

配置管理統計工作量以及文檔的規模,彙報給項目經理。

17.3 配置庫管理

17.3.1 目的

所有人員依照配置管理規範和《配置管理計劃》操作配置庫。

17.3.2 角色與職責

配置管理建立并維護配置庫。

項目成員在權限之内操作配置庫。

17.3.3 啟動準則

《配置管理計劃》已經制定。

配置管理的軟體硬體已經存在。

17.3.4 輸入

《配置管理計劃》

17.3.5 主要步驟

[Step1] 建立配置庫

配置管理者建立配置庫,并且至少建立配置庫的所有第一級目錄。

[Step2] 配置設定權限

配置管理者為每個項目成員配置設定操作權限。一般地,項目成員擁有Add, Checkin/Checkout, Download等權限,但是不能擁有“删除”權限。配置管理者的權限最高。具體操作視所采用的配置管理軟體而定。

[Step3] 配置庫操作與管理

項目成員根據自己的權限操作配置庫,例如Add, Checkin/Checkout, Download等。

配置管理者根據“基線計劃”建立與維護基線,“當機”配置項,控制變更。

配置管理者定期清除配置庫裡的垃圾檔案。

配置管理者定期備份配置庫。

傳遞管理。這裡“傳遞”是指從配置庫中提取配置項,傳遞給客戶或項目外的人員。傳遞出去的配置項必須有據可查,避免發生混亂。流程如下:

(1) “索取人”向CCB提出傳遞申請。

(2) CCB審批該申請。如果該申請不合法(合理),則拒絕傳遞配置項。如果同意傳遞,CCB應給出詳細的傳遞清單。

(3) 配置管理者依據CCB的批示,從配置庫中提取配置項傳遞給“索取人”。

(4) “索取人”驗收後簽字。

17.3.6 輸出

《配置庫管理報告》(由配置管理者撰寫)

17.3.7 結束準則

對配置庫的操作與管理将持續到項目結束。

17.3.8 度量

配置管理者統計工作量以及文檔規模。

17.3 版本控制

17.3.1 目的

按照一定的規則儲存配置項的所有版本,避免發生版本丢失或混淆等現象,并且可以快速準确地查找到配置項的任何版本。

17.3.2 角色與職責

所有項目成員都必須遵照版本控制規程操作配置庫。

17.3.3 配置項狀态變遷規則

配置項的狀态有三種:“草稿”(Draft)、“正式釋出”(Released)和“正在修改”(Changing)。

配置項狀态變遷如圖17-2所示。配置項剛建立時其狀态為“草稿”。配置項通過評審(或審批)後,其狀态變為“正式釋出”。此後若更改配置項,必須依照“變更控制規程”執行,其狀态變為“正在修改”。當配置項修改完畢并重新通過評審(或審批)時,其狀态又變為“正式釋出”,如此循環。

什麼是配置管理?軟體配置管理标準化流程

圖17-2 配置項狀态變遷圖

17.3.4 配置項版本号規則

配置項的版本号與配置項的狀态緊密相關:

(1)處于“草稿”狀态的配置項的版本号格式為:0.YZ

◆ YZ數字範圍為01-99。

◆ 随着草稿的不斷完善,“YZ”的取值應遞增。“YZ”的初值和增幅由使用者自己把握。

(2)處于“正式釋出”狀态的配置項的版本号格式為:X.Y

◆ X為主版本号,取值範圍為1-9。Y為次版本号,取值範圍為1-9。

◆ 配置項第一次“正式釋出”時,版本号為1.0。

◆ 如果配置項的版本更新幅度比較小,一般隻增大Y值,X值保持不變。隻有當配置項版本更新幅度比較大時,才允許增大X值。

(3)處于“正在修改”狀态的配置項的版本号格式為:X.YZ

◆ 配置項正在修改時,一般隻增大Z值,X.Y值保持不變。

◆ 當配置項修改完畢,狀态重新成為“正式釋出”時,将Z值設定為0,增加X.Y值。參見規則(2)。

17.3.4 配置項版本控制流程

[Step1] 建立配置項

項目成員依據《配置管理計劃》,在配置庫中建立屬于其任務範圍内的配置項。此時配置項的狀态為“草稿”,其版本号格式為0.YZ。

[Step2] 修改處于“草稿”狀态的配置項

項目成員使用配置管理軟體的Checkout/Checkin功能,可以自由修改處于“草稿”狀态的配置項(不受變更控制規程限制),版本号格式為0.YZ。

[Step3] 技術評審或上司審批

如果配置項是技術文檔,則需要接受技術評審(參見技術評審規程[SPP-PROC-TR])。如果配置項是“計劃”這類檔案,則需要項目經理(或上級上司)的審批。

若配置項通過了技術評審或上司審批,則轉向 [Step4],否則轉向 [Step2]。

[Step4] 正式釋出

配置項通過技術評審或上司審批之後,則配置項的狀态從“草稿”變遷為“正式釋出”,版本号格式為X.Y。

[Step5] 變更

修改處于“正式釋出”狀态的配置項,必須按照“變更控制規程”執行,主要步驟如下(詳見變更控制規程):

◆ 如果CCB同意變更,則配置項狀态從“正式釋出”變遷為“正在修改”。

◆ 項目成員使用Checkout/Checkin功能,可以修改處于“正在修改”狀态的配置項,版本号格式為X.YZ。

◆ 修改完畢後,該配置項要重新接受技術評審或上司審批,轉向[Step3]。

17.4 配置項變更控制

17.4.1 目的

防止配置項被随意修改而導緻混亂。

17.4.2 角色與職責

CCB對審批變更申請。

17.4.3 啟動準則

待變更的配置項狀态為“正式釋出”,或者該配置項已經成為某個基線的一部分(即被“當機”)。

17.4.4 輸入

待變更的配置項

17.4.5 主要步驟

[Step1] 變更申請

變更申請人向CCB送出變更申請,重點說明“變更内容”和“變更原因”。

[Step2] 審批變更申請

CCB審批該申請,分析此變更對項目造成的影響。如果同意變更,則轉向 [Step3],否則終止本規程。

補充說明:一個配置項的變更可能導緻其它配置項也發生變更,CCB在審批變更申請時一定要考慮這些問題。

[Step3] 安排變更任務

CCB指定變更執行人,安排他們的任務。CCB需要和變更執行人就變更内容達成共識。

補充說明:變更執行人可能是變更申請人,也可能不是。

[Step4] 執行變更任務

變更執行人根據CCB安排的任務,修改配置項。

CCB監督變更任務的執行,如檢查變更内容是否正确、是否按時完成工作等。

[Step5] 對更改後的配置項重新進行技術評審(或審批)

如果配置項是技術文檔,則需要接受技術評審(參見技術評審規程[SPP-PROC-TR])。如果配置項是“計劃”這類檔案,則需要項目經理(或上級上司)的審批。

若配置項通過了技術評審或上司審批,則轉向 [Step6],否則轉向 [Step4](即重新修改)。

[Step6] 結束變更

當所有變更後的配置項都通過了技術評審或上司審批,這些配置項的狀态從“正在修改”變遷為“正式釋出”。CCB在《配置項變更控制報告》中簽字,結束變更。

17.4.6 輸出

本規程的所有資訊都記錄在《配置項變更控制報告》中。

17.4.7 結束準則

CCB簽字結束變更。

17.4.8 度量

CCB統計變更工作量。

17.5 實施建議

要求所有人員對其工作成果進行配置管理。

對全員進行配置管理教育訓練。

由于配置庫裡儲存的是項目的所有工作成果,應當選擇“責任心強、可靠”的人員擔任配置管理者。

選用合适的軟體工具,盡量減少配置管理過程的工作量。

附錄一:《配置管理計劃》

什麼是配置管理?軟體配置管理标準化流程

目錄

1. 人員及職責

提示:

(1)根據《項目計劃》中的角色配置設定,确定配置管理者,CCB(配置控制委員會)成員。

(2)CCB的人數根據項目規模而定。一般地,項目經理是CCB的負責人。

角色 人員 職責、工作範圍
配置管理者

(1)制定《配置管理計劃》

(2)建立和維護配置庫

CCB負責人

(1)審批《配置管理計劃》

(2)審批重大的變更

CCB成員 例如:審批某些配置項或基線的變更

2. 用于配置管理的軟硬體資源

提示:

(1)配置管理者确定本項目的配置管理軟體。例如采用Microsoft公司的Visual SourceSafe或者Rationa公司的l ClearCase。

(2)配置管理者根據所采用的配置管理軟體,确定計算機資源(考慮記憶體、外存、CPU等)。

配置管理軟硬體資源 說明
計算機名稱 記憶體、外存、CPU等

3. 配置項計劃

提示:配置管理者辨別配置項,估計每個配置項的正式釋出時間。辨別符的參考格式為Project-Type…Type-Number。例如:

類型 主要配置項 辨別符 預計正式發表時間
計劃 《項目計劃》
《品質保證計劃》
《配置管理計劃》
需求 《使用者需求說明書》
《軟體需求規格說明書》
《需求跟蹤報告》
設計 《體系結構設計報告》
《資料庫設計報告》
《子產品設計報告》
《使用者界面設計報告》
程式設計 源程式
二進制庫
測試 《測試計劃》
《測試用例》
《測試報告》
……

4. 基線計劃

基線名稱/辨別符 基線所包含的主要配置項 預計建立時間

5. 配置庫備份計劃

提示:配置管理者制定配置庫備份計劃,指明“何人”在“何時”(頻度)将配置庫備份到“何處”。

備份頻度、時間 備份人 備份内容、目的地、方式等

附錄:本計劃審批意見

CCB 審批意見:

CCB 負責人簽字

日期

附錄二:《配置庫管理報告》

什麼是配置管理?軟體配置管理标準化流程

目錄

1. 基本資訊

配置管理者
CCB 負責人和成員
配置管理計算機
配置管理軟體
配置庫名稱
……

2. 項目成員的操作權限

提示:配置管理者為每個項目成員配置設定操作權限。一般地,項目成員擁有Add, Checkin/Checkout, Download等權限,但是不能擁有“删除”權限。配置管理者的權限最高。具體操作視所采用的配置管理軟體而定。

項目成員 權限,說明

3. 配置項記錄

提示:配置管理者記錄主要配置項的版本資訊。

主要配置項 正式釋出日期 作者 版本變化曆史

4. 基線記錄

基線名稱、版本 建立日期 包含的配置項 備注

5. 配置庫備份記錄

提示:配置管理者周期性地備份配置庫。

批次 備份日期 備份内容、說明 備份到何處 責任人

6. 配置項傳遞記錄

提示:配置管理者依據CCB的批示,從配置庫中提取配置項傳遞給接受人。

批次 傳遞日期 傳遞内容、說明 CCB批示 接受人

7. 配置庫重要記錄檔

提示:配置管理者記錄自己和他人對配置庫的重要操作,例如删除檔案等。

日期 人員 事件

附錄三:《配置項變更控制報告》

1. 變更申請

申請變更的

配置項

輸入名稱,版本,日期等資訊

變更的内容

及其理由

估計配置項變更将對

項目造成的影響

變更申請人簽字
2. 審批變更申請
CCB審批意見

審批意見

CCB負責人簽字

日期

準許變更的配置項 變更執行人 時間限制
3. 變更配置項
變更後的配置項 重新評審結論 完成日期 責任人
4. 結束變更
CCB簽字

CCB負責人簽字

日期:

繼續閱讀