是的,軟件配置管理,確實不太好解釋。軟件開發過程中的其它工作,似乎都比它容易理解。開發工程師在編寫源代碼;測試工程師在測試,挑毛;需求分析師跟用戶確定需求,并且用精確嚴謹的語言表達出來……雖說這樣說未必嚴謹,但是至少能夠得到一個大致的印象。但是,軟件配置管理呢?軟件配置管理是什么?
下面是軟件配置管理的一個權威定義:
“A discipline applying technical and administrative direction and surveillance to identify and document the functional and physical characteristics of a configuration item, control changes to those characteristics, record and report change processing and implementation status, and verify compliance with specified requirements.”
“一套應用技術上和管理上的指導和監督的方法,用來:識別和記錄配置項的功能特征和物理特征;控制這些特征的變更;記錄和報告變更的處理和執行的狀態;以及驗證其符合特定的需求!
如果你看得一頭霧水,別擔心,這不是你能力上的問題。大部分人和你的感受相同。這個定義,以及類似的權威定義,都高度抽象。用一兩句話,確實很難把握好軟件配置管理這個概念。需要更多的描述,才能把它說清楚。事實上,這一整本書,就是在認識和理解軟件配置管理。而在這一章中,我們將用一些我們相對熟悉的概念來打比方,做對比,來講解軟件配置管理這個概念。通過這樣一種方式,讓大家對軟件配置管理有一個初步的,但比較正確的認識。
與圖書管理作對比
軟件配置管理,是關于軟件資產的管理。什么是軟件資產呢?源代碼,設計文檔,可以運行的程序,這些在軟件研發過程中產生的有價值的東西,都是軟件資產。軟件配置管理就是關于這些內容的管理。那么,具體有什么要管理的呢?讓我們把它和圖書館的圖書管理做個對比。
它們有一些相似點。首先,圖書管理管的是圖書資產;軟件配置管理管的是軟件資產。這兩種管理,管的都是信息資產。其次,圖書管理,需要把圖書進行分類,以便檢索,需要將圖書存放在合適的地方,以便存取,還要防止蟲吃鼠咬;而軟件配置管理也類似,需要把軟件資產——主要是源代碼,放在合適的目錄結構里,放在合適的地方存儲,防止丟失或者弄亂。再次,在圖書館,要記錄誰借出了哪本書,還沒還。這是為了保證,圖書館的書不會丟失
而軟件配置管理中也類似,需要記錄誰“借”出了什么文件,什么時候“還”的。在這一“借”一“還”的過程中,程序員修改了它,而軟件配置管理記錄下了這些修改。那么,為什么要記錄呢?
因為軟件資產與圖書資產不同,軟件資產在不斷變化,不斷演進。項目初始的時候,可能只有一份簡單的項目計劃,而項目結束時,已是可以交付給用戶的產品。如果縮小視野,單就某個源代碼文件來看,也會看到,通常它會在項目的某個時刻,被某個程序員創建第一個版本,然后,可能有不同的程序員,不斷修改它,產生新的版本。軟件配置管理關心:是不是這個文件的各個歷史版本應該被記錄,以便今后翻閱?是不是各次修改的修改者、修改的原因應該被記錄,以便將來可以理解當時的情形,理解為什么做出這樣的改動?更扣人心弦的是,當兩個人同時想要修改一個文件的時候,可能會導致其中一個人的改動丟失,也就是常說的版本覆蓋。那么,是讓他們一個改完了另一個再改呢,還是讓他們同時改,在將來合并?等等。
所以說,軟件配置管理是關于不斷演進的軟件資產的管理。
為什么稱作配置管理?
機器由零部件組成。例如,汽車一般由底盤、發動機、車身和電器設備四大部分組成。其中,汽車底盤一般包括傳動系、轉向系、制動系和行駛系。傳動系主要由離合器、變速器、傳動軸和減速器等部件組成。再往下,基本就是零件了.
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/