而軟件配置管理中也類似,需要記錄誰“借”出了什么文件,什么時候“還”的。在這一“借”一“還”的過程中,程序員修改了它,而軟件配置管理記錄下了這些修改。那么,為什么要記錄呢?
因為軟件資產與圖書資產不同,軟件資產在不斷變化,不斷演進。項目初始的時候,可能只有一份簡單的項目計劃,而項目結束時,已是可以交付給用戶的產品。如果縮小視野,單就某個源代碼文件來看,也會看到,通常它會在項目的某個時刻,被某個程序員創建第一個版本,然后,可能有不同的程序員,不斷修改它,產生新的版本。軟件配置管理關心:是不是這個文件的各個歷史版本應該被記錄,以便今后翻閱?是不是各次修改的修改者、修改的原因應該被記錄,以便將來可以理解當時的情形,理解為什么做出這樣的改動?更扣人心弦的是,當兩個人同時想要修改一個文件的時候,可能會導致其中一個人的改動丟失,也就是常說的版本覆蓋。那么,是讓他們一個改完了另一個再改呢,還是讓他們同時改,在將來合并?等等。
所以說,軟件配置管理是關于不斷演進的軟件資產的管理。
為什么稱作配置管理?
機器由零部件組成。例如,汽車一般由底盤、發動機、車身和電器設備四大部分組成。其中,汽車底盤一般包括傳動系、轉向系、制動系和行駛系。傳動系主要由離合器、變速器、傳動軸和減速器等部件組成。再往下,基本就是零件了.
機器由正確型號的零部件配置而成。每個零件都有型號、編號。零件組成的部件也有。一直到整個機器,一輛汽車。要保證制造出來的機器是正確的,就要保證選取了所有正確型號的零部件。那么,容易想到,應該有某種列表或文檔,標明各零部件型號和組成關系,也就是說,標明配置信息。而當配置有變動的時候,要更新這樣的列表或文檔。并且,這種變動不能隨隨便便,是否應該先讓總工程師批準?是否應該做相應的測試?這些都屬于對配置的管理。
從軟件配置管理的視角看,軟件也是這么配置起來的。往小了說,各個源代碼文件的正確版本配置在一起,編譯產生了正確的可運行程序。往大了說,若干軟件組件的特定版本,配置構成了特定的軟件產品。而有些軟件組件,可能參與了不止一個軟件產品的配置構成。而當某個軟件組件參與不止一個軟件產品的配置構成的時候,可能是這個軟件組件的同一個版本,也可能是不同版本?,問題有多復雜!不管理怎么行!
軟件配置管理,與對機械系統的配置的管理相比,是有一些自己的特點的。主要有兩點:第一,軟件更容易發生變化,向前演進。一個程序員,修改一個Bug,可能5分鐘就搞定了,于是,5分鐘前與5分鐘后,已經是不同的版本了。更何況,不止一個程序員在工作。如此快速的、眾多的變化,如果靠一個書記員手工記錄相關信息,那恐怕比較累。所以需要某種自動化的工具,提供這方面的支持。
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/