關鍵詞:CMMI 配置管理 CM 配置項 基線 變更
在筆者進行CMMI咨詢時,當問及軟件技術人員什么是“配置管理”的時候,很多人的回答就是“版本管理”,而且很多人都會說出各種各樣的版本管理工具,例如:VSS、TFS、CVS或SVN等等。但這樣的回答是不正確、不全面的。版本管理只是軟件配置管理的一個小的部分,在CMMI中配置管理分為 “配置項和基線的管理”、“變更控制管理”和“基線的完整性”三個部分。
凡是提到軟件“配置管理”(Configuration Management),我會先給它下個定義:“它是軟件工程的核心部分,是CMMI中最基礎的PA”。為什么它會如此重要呢?首先配置管理的工作就是確保軟件項目時時保持條理清晰,隨時想要任何工作產品都可以迅速找到,并且工作產品的內容不會出錯,這也就是大家常講的可回溯性、完整性和正確性;其次軟件配置管理活動始終貫穿整個軟件項目的生命周期。因此說軟件配置管理是最基礎、最核心的管理工作一點都不夸張。
(一) 軟件配置項
在CMMI的“配置管理”過程域CM中SP1.1首先提到的就是“配置項”的概念,在大家開展配置管理工作前應該先識別哪些是本項目的配置項!芭渲庙棥本褪桥渲霉芾淼膶ο,簡單來講它符合以下任意一個特點:
1、它會被兩個或兩個以上的項目成員共同使用。
2、它會隨著項目的開展而發生變化。
3、對項目重要的工作產品。
4、一些工作產品之間的關系非常緊密,一個變化其他的就會受到影響。
通過以上定義大家會發現項目中的很多東西都屬于配置項,例如:各種需求文檔、設計文檔等都會經常變更;程序的代碼是大家共享的,而且代碼文件之間又有較高的相互依賴性。
那大家也許會發現還有一些工作產品不符合以上定義,例如:各種周報、會議記錄等。這些也是配置項嗎?很顯然,它們不符合以上特點,那么這些工作產品就不屬于配置項的范圍,但有時在進行CMMI實施時,項目組也往往會將其一并進行管理。
既然配置項是“配置管理”的基礎,那么大家還需要給每一個配置項起一個唯一標識,這樣才能夠做到清晰不混淆。舉個例子:“今晚大家一起出去聚餐,到中山一路的‘東北人’吃飯”,這里的‘東北人’餐廳是特指中山一路的,因此這唯一確定了就餐的地點;“我們訂的包房叫‘靠山屯’”,這里具體的就餐房間也被唯一標識了出來,是‘靠山屯’而不是‘瘦狗嶺’;服務員拿來的菜單上每個菜的名字也是唯一的,這樣送上來的菜就不會重樣,當我們吃完結賬的時候就不會算錯價錢,這些都是典型的唯一標識配置項的例子。假如配置項沒有被唯一識別出來,那么大家去聚會就會找錯地方,點的菜也可能會上錯,結賬的時候也可能會算錯,那么將是一團糟,因此在項目管理中一定要將識別配置項重視起來。
配置項本身的變化可以使用“版本管理”對其進行控制。通常像大家的程序代碼已經被各種版本管理工具進行控制,但大家千萬不要忘記對文檔也要進行版本管理。
(二)軟件的基線
前面提到“配置項”的其中一個定義就是“配置項可能會隨著項目的開展而發生變化”,那么單個的配置項是通過版本管理工具進行管理的,每次變化都會產生一個新的版本號。但是對于一組配置項該如何進行管理呢?根據CMMI配置管理過程域的SP1.3中的要求,這就需要使用基線管理的方法。簡單來講就是將一組配置項拿“線”穿起來作為一個整體進行統一命名,并將其作為一個新的配置項進行管理。在上面聚餐的例子中,最后結賬時的賬單就是一條基線,它將所有菜肴集中起來一起買單。
(三)配置庫的劃分
配置庫就是指各種版本管理工具所創建的用于管理配置項的數據庫,也就是大家常用的VSS或CVS等工具創建的數據庫或文檔庫。筆者在以往進行的CMMI咨詢時常常發現項目組對配置庫的目錄結構沒有進行功能的劃分,為了確保項目永遠不會出現混淆,簡單來說按照權限應該將配置庫劃分為三大類,如圖1-1所示:
文章來源于領測軟件測試網 http://www.kjueaiud.com/