1. 程式人生 > >什麼是軟體配置管理?

什麼是軟體配置管理?

1、什麼是軟體配置管理

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

    2、為什麼需要配置管理

   如果沒有軟體配置管理,最大的麻煩是工作成果無法回溯。隨著工作的進展新的程式覆蓋了老的程式,當突然發現新程式有問題而老程式正確時怎麼辦?那隻能重寫老的程式來覆蓋新的程式。過一段時間又發現原來的老程式有問題,而解決方法在原來的新程式中……您是不是快要發瘋了。

    為了避免成果被覆蓋,包括我自己在內的很多人早期採用手工管理版本的方式,例如當一個新版本產生時用當時的日期來命名資料夾,然後再複製一下以後的修改在複製的資料夾內進行,這樣上一個版本就被儲存下來了,周而復始不同的版本不會被覆蓋。雖然這種方式可以從某種程度上解決版本的回溯問題,但他存在的缺點是顯而易見的:第一點如果保留結果過於頻繁,將會導致產生大量的有著重複內容的資料夾,龐大的物理空間,管理起來很麻煩;如果保留舊版本的時間間隔太長,可能產生某些有用的老程式無法回溯。拿我最近開發的一個程式來說程式只有幾十兆,經過一年的開發各版本累計到1G。第二容易產生版本的混亂,如果是團隊開發軟體,這種簡單的方法更難解決問題的本質了。

    3、人的問題

    配置管理的方法是成熟的,而且相應的軟體工具也是成熟的,基本上不存在看不懂、不會用的問題。配置管理的執行效果如何,完全是事在人為。妨礙配置管理的主要問題是人們嫌麻煩和僥倖心理作怪。

    在沒出亂子的情況下,執行版本控制看起來有些麻煩。每次修改工作的時候總是要Get Latest Version,接著Check Out,修改完後又要Check In,多做了三步。其實這三步加起來也就十幾秒鐘,而且不費腦子,根本沒有新增多少麻煩,僅僅是個人感覺不爽而以。然而不執行版本控制的話,萬一發生工作成果被覆蓋或丟失等問題,麻煩就大了。

    4、軟體配置管理規範

    軟體研發和管理過程中會產生許許多多的工作成果,例如文件、程式和資料等,他們都應當妥善地保管起來,以便查閱和修改。如果把所有檔案一股腦的塞進計算機裡,那麼使用起來很麻煩。

    凡是納入配置管理範疇的工作成果統稱為配置項配置項主要有兩大類:一類是屬於產品的組成部分,例如需求文件、設計文件、原始碼、測試用例等等;另一類是在管理過程中產生的文件,例如各種計劃、報告等。

    每個配置項的主要屬性有名稱、識別符號、檔案狀態、版本、作者、日期等。配置項及歷史紀錄反映了軟體的演化過程。

    基線由一組配置項組成,這些配置項構成了一個相對穩定的邏輯實體。基線中的配置項被凍結後,不能在被任何人隨意更改。基線通常對應於開發過程中的里程碑。通常將交付該客戶的基線稱為一個Release,為內部開發用的基線稱為一個Build。

版本控制的目的是按照一定的規則儲存配置項的所有版本,避免發生版本丟失或混亂等現象。配置項的狀態有三種:“草稿”、“正式釋出”和“正在修改”

配置項的版本號與配置項的狀態緊密相關:

(1)    處於“草稿”狀態的配置項的版本號格式為:0.YZ

(2)    處於“正式釋出”狀態的配置項的版本號格式為:X.Y。

一般只是Y值遞增,當Y值到達一定的範圍時X值才發生變化。

(3)    處於“正在修改”狀態的配置項的版本號格式為:X.YZ。

一般只增大Z值,當配置項修改完畢,狀態重新變成“正式釋出”時,將Z值變為0,增加X.Y值。

    5、常用的配置管理軟體

    A)、自從20世紀80年代後期研製並完善了“增量儲存演算法”後配置管理工具的春天便開始了,目前國內常用的配置管理工具大概有SourceSafe、CVS和ClearCase。

    SourceSafe是Micrsoft公司推出的一款支援團隊協同開發的配置管理工具,是Visual Studio的套件之一。因為其短小精悍,又繼承了微軟整合銷售的一貫作風使用者可以相對於免費的價格得到,使用者量絕對是第一位。

SourceSafe簡單易用人們在使用配置管理工具時候,80%的時間只是用Add,Check in,Check out等區區幾個功能。

SourceSafe 的主要侷限性:只支援WINDOWS不支援異構環境下的配置管理;對INTERNET支援不夠完善。

B)、在詳細介紹SourceSafe首先簡單概述一下它的基本機制。SourceSafe是使用伺服器、本地機的概念來進行操作的,它認為所有需要操作的檔案都存在伺服器版本檔案和本地機版本檔案,無論您的SourceSafe的架構是伺服器客戶機形式還是個人單機版形式,它的機制都是這樣。使用者所用的修改都是在本地機上完成的,修改完成後再上傳伺服器。單機版也是這樣操作。我們一定要明確兩個版本後再來分析。

伺服器版本檔案是一個絕對受配置管理軟體限制的檔案,使用者只能通過SourceSafe的規定的許可權和操作方法修改它,因為它並不是您一個人的,它是大家的。本地檔案是一個基本不受限制的檔案,您可以象操作本地檔案一樣操作它。

SourceSafe由Visual SourceSafe 6.0 Admin、Microsoft Visual SourceSafe 6.0、Analyze VSS DB、Analyze & Fix VSS DB四部分組成。

C)、Analyze VSS DB、Analyze & Fix VSS DB兩個工具不是很常用,前者用於檢查SourceSafe資料庫檔案的完整性,後者主要是修正SourceSafe資料庫檔案存在的錯誤。

D)、Visual SourceSafe 6.0 Admin的功能類似於win2k的使用者管理器,軟體配置管理人員用它來分配使用者和設定相應的許可權。

管理員的管理操作一般都集中在Visual SourceSafe 6.0 Admin中,系統中只有一個系統管理員Admin可以登陸到此程式中進行管理工作,一般剛剛安裝的系統中此使用者的密碼預設為空。而且系統為Admin這個使用者保留的一切權力,不可更改。

資料庫的建立這個操作必須在伺服器上執行,因為通過客戶端建立資料庫的操作,只是在客戶端的機器上建立的資料庫,這個資料庫往往只能單機使用。同時要必須注意,由於VSS是通過WINDOWS的網路共享來完成伺服器端受控版本檔案的共享,因此VSS服務端的資料庫必須建立在伺服器的一個完全共享的目錄之中。否則,客戶端將無法獲得資料庫中的檔案。

資料庫的備份與恢復,備份資料庫或者其中的一個專案,點選tools-archive projects…選單彈出對話方塊,根據提示一步步進行備份,最後會形成一個副檔名為*.ssa的備份檔案檔案。

如果要從檔案檔案中恢復VSS資料庫中的檔案資料,點選tools-restore projects選單根據提示一步步完成資料恢復工作。其中,在恢復過程中,可以選擇恢復為原有工程,也可改變恢復成其他工程目錄。

E)、Microsoft Visual SourceSafe 6.0是SourceSafe的主要使用平臺,樣子象Windows的檔案管理器,它所顯示的路經是以‘$’符號為根節點的相對路徑,在這裡介紹一下此平臺的主要使用方法。

(1)新增專案

您可以在根節點下新增專案,方法是:File—Add File出現Add File對話方塊後選中相關檔案,按Add即可。

你可以繼續通過File-Create Project在根目錄下建立一個專案後在此專案節點下新增檔案。

新增完檔案後,您所新增原始檔的屬性自動變為只讀,並在所新增檔案的資料夾下生成一個vssver檔案 ,以後對檔案的操作基本與原檔案沒有關係了。

(2)瀏覽Source Safe Server中的檔案

在Visual SourceSafe Explore中雙擊要開啟的檔案,會彈出一個對話方塊,您直接點選OK即可。這時SourceSafe Explore會將檔案拷貝一份到本地機的臨時資料夾中(臨時資料夾路徑在tools-options-general下設定),因原檔案前面提到已經變了只讀,所以臨時檔案也是隻讀屬性,而且檔名會通過系統自動更改。

(3)設定工作資料夾

SourceSafe 的資料夾需要在本地計算機上指定一個“working folder”。當“check out”時,相應檔案會下載到這個本地工作資料夾中。我們在本地的檔案中修改檔案,然後把修改後的檔案“check in”回伺服器的source safe中。

我們可以利用“set working folder”這條命令來建立source safe的資料夾和本地“working folder”的對應關係。方法在source safe的檔案目錄樹中選中要建立對應關係的資料夾-右單擊-選擇“set working folder”即可。

(4)、下載最新版本檔案到本地機

“get latest version”命令可以將一個檔案、一組檔案或整個資料夾的最新版本從source safe中拷貝到本地的計算機中,並用只讀的形式儲存起來。方法如下:

在左側的檔案樹中選擇相應的資料夾右單擊後,選擇“get latest version”

這時會彈出一個對話方塊,它包括三個複選框:三個複選框全空時,只將source safe資料夾根目錄下的檔案拷貝到本地計算機,如同DOS中的COPY命令;recursive選項選中時,會將source safe資料夾下的所有資料夾及檔案都拷貝到本地計算機,如同DOS中的DISKCOPY,make writable選中,拷貝到本地的檔案是可寫的。

    如果我們單擊“advance”按鈕,就會出現更多的選擇項。在“set file”中的四個選項第一如下:current為拷貝操作發生時的當前時間;Modification為檔案最近一次修改的時間;check in為檔案最後一次check in是的時間;default同current.

   在replace writable中的四個選項作用是,當本地機有一個和要下載的檔案同名時,且本地機的檔案是可寫的同名檔案時,設定系統如何執行拷貝:ask系統提示是否覆蓋本地的同名檔案;replace自動覆蓋本地的同名檔案;skip不覆蓋本地的同名檔案;merge將兩個檔案合併。

    一定要養成先Get Latest Version的習慣,否則如果別人更新了程式碼,VC會提示你存在版本差異並問您是否覆蓋、整合、保留等,如果選錯了就會把別人的程式碼Cancel掉,所以一定小心。

    (5)下載檔案到本地操作

    當我們要修改一個檔案時,首先要把檔案從source safe中複製到“working folder”中,並且以可寫的形式儲存,這一系列動作的命令就是check out。具體使用方法如下:選擇要下載到本地機的檔案,右單擊後選擇check out,這時會彈出一個對話方塊。預設的狀態下“don’t get local copy”這個選項是不選的,他的意義是這樣的:如果不選保持預設狀態,當本地的同名檔案是隻讀時,則系統首先用source safe的檔案更新本地的檔案,本地的檔案變為可寫。當本地的檔案是可寫時,則會出現另一提示框其中的選項leave this file:本地檔案保留當前狀態,source safe中的檔案也保留當前狀態,這樣有可能兩個檔案不一致。選項Replace your local file with this version from source safe:用source safe中的檔案更新本地的檔案。如果您選擇don’t get local copy選項:則不把source safe的檔案拷貝到本地。

    檔案check成功後,您可以看到檔案上有紅色標記,這時您的本地檔案是可寫的,您就可以修改檔案了。上面的選項也許讓您心亂,為了操作更簡便,我們推薦一種check out 方法:

    當本地的檔案比source safe中的檔案內容新時,選擇don’t get local copy選項。然後check in使本地機與伺服器內容同步;

    當source safe中的檔案比本地機的檔案內容新時,則在source safe中選擇此檔案,然後get latest version命令,然後按照預設選項進行check out;

    當兩者內容相同時,按照預設選項操作。

    注意:source safe中使用了檔案鎖的概念當一個檔案被別人check out時,其他人不能check out 此檔案;如果檔案鎖是無效的,您可以檢視Visual SourceSafe 6.0 Admin-tools-general-allow multiple chechouts選項是否被選中。只有當check out 修改檔案完畢後,一定要check in,來保證source safe中的檔案最新。

    謹記check out時將是使得程式碼對自己可寫,對別人只讀,請僅僅Check Out自己需要修改的部分,不然你工作的時候同組成員只能休息了。

    (6)上傳檔案到伺服器操作

    我們必須利用 check in命令保證source safe本地的檔案同步,check in與check out 成對出現,它的作用是用本地的檔案更新source safe中被check out 的檔案。

具體操作在source safe選中處於check out狀態的檔案,右單擊選擇check in即會出現一個對話方塊:預設狀態下它的兩個複選框處於非選狀態,Keep checked out選項,可以在check in 後自動的再次check out,等於是省略了下一步check out操作;remove local copy選項,可以在check in的同時,刪除本地機上working folder中的同名檔案。

一般按照預設選項就可以了。Check in成功後,source safe和本地的檔案是完全相同的,本地的檔案變成了只讀檔案。要再次修改檔案時,再執行check out操作,此時本地機的檔案屬性自動變為可寫狀態。一定記住check out 後要check in,不然導致的後果就如同寫完了檔案不儲存差不多。

一定要保證你的文件正確、可編譯後再Check In不然會使得其他人也無法通過編譯,整個工程沒法除錯了。

(7)undo check out 操作

當一個檔案被check out 後,您如果想要撤銷這項操作,可以使用undo check out命令,操作步驟:選中處於check out 狀態的檔案,右單擊後選擇undo check out.

    當source safe中的檔案和本地的檔案完全相同時,則不出現提示資訊,檔案恢復為普通狀態。

    當source safe中的檔案和本地的這個檔案不完全相同時,則出現提示視窗,對話方塊local copy中包括三個選項:

replace 選項選中後會出現,系統詢問是否覆蓋的資訊,如果單擊yes則是用source safe上的檔案最後一個版本覆蓋本地機上的檔案,如果選擇no保留本地計算機上檔案的內容,source safe上的檔案是上次check in後的內容。此時,兩個檔案可能出現不同;

leave選項保留當前計算機上的內容,source safe上的檔案是上次check in後的內容,兩個檔案可能出現不同;

delete 選項刪除本地計算機上的這個檔案。

選擇一個選項後,單擊OK後,檔案回到普通狀態。

(8)edit操作

edit命令是一個組合命令,是先check out再修改的命令的組合。應當注意的是,執行edit命令後,我們修改了檔案,但是source safe中的檔案並沒有同步的修改,我們還是要check in完成本地檔案與source safe上檔案的同步。   

(9)檢視檔案的歷史內容

方法選中此檔案,右單擊選擇show history,出現一對話方塊後,經選擇OK後彈出一窗體,我們可以看到這個檔案的所有版本,要檢視某個版本可以選中VIEW按鈕。如果想下載某個先前的版本可以點選get按鈕。

(10)關於source safe的許可權

預設狀況下,專案安全管理是以簡單模式來執行,即使用者對工程的操作的許可權只有兩種,一種只讀許可權,一種讀寫許可權。要啟用高階模式,可以在Visual SourceSafe 6.0 Admin-tools-project security-enable project security將此選項選選中。

source safe的許可權分為5級:

無許可權級:看不到檔案

read級:自能瀏覽檔案,可以使用get latest version命令

check in/check out級:可以更新檔案,但不能對檔案進行刪除

delete級:可以刪除檔案,但通過某些命令這些檔案還能恢復。

Destroy級:可以徹底的刪除檔案,刪除之後無法恢復。

為使用者設定許可權的工作一般由軟體配置管理員在Visual SourceSafe 6.0 Admin中完成。

許可權管理就是管理使用者和工程目錄之間的操作許可權的關係。因此,有兩種管理方式。一種就是以工程目錄為主線來管理許可權,一種是以使用者為主線來管理許可權。

以目錄為主線管理使用者許可權則點選tools-right by project…選單,彈出對話方塊來管理專案的使用者訪問許可權。

如果以使用者為主線來使用者許可權,則應先在主介面的下方的使用者列表中選中一個使用者,再點選rights assignments for user…選單,彈出對話方塊,對話方塊下方列出了該使用者對資料庫各專案目錄的訪問許可權,如果訪問某個專案在列表上沒有列出,則說明該專案的許可權是繼承上級目錄的訪問許可權。只要您點選一個目錄,就可以編輯該使用者對該專案目錄的訪問許可權。

許可權複製就是將一個使用者的許可權直接複製給另外一個使用者,管理員可以通過copy user right…選單來實現。

(11)關於password的更改

password一般是由軟體配置管理員分配的,如果我們需要修改密碼,可以在tools-change password 下修改。

需要說明的一點是當你的source safe密碼和windows密碼相同時,啟動source safe,不會出現提示您輸入密碼的對話方塊。這是微軟的的一貫作風,在SQL server資料庫管理系統下也能找到這個影子,因為微軟認為windows的密碼應該比其他軟體的密碼級別要高,既然您能用相同的使用者名稱和密碼進入 windows那麼您也有權使用相同的使用者名稱進入其他的軟體。