工作區是指供開發人員依相對隔離方式和專案採用的標準來實作和測試程式碼的「專用」區域。「配置管理人員」必須為專案的每一位開發人員建立工作區環境。
工作區為每一位開發人員提供一致、有彈性、低成本及可重現的環境,此環境可選取和呈現每一支檔案的適當版本。工作區必須能夠精準地掌控共用和隔離機制。這是必要的,因為在大多數專案中,開發人員所做的變更不能彼此干擾;但同時也必須能夠結合其他開發人員所做的變更來進行單元測試。
在維護舊版發行時,開發人員必須取得舊的版本、二進位檔、文件、測試、工具及其他物件。在此情況下,工作區成為「時光機器」,將以前在環境內的一切重現眼前,不只是來源而已。
基於編輯、編譯、測試及除錯的用途,每一位開發人員的工作區必須隔離。不過,工作區的隔離性應該是相對,而非絕對:
-
其他人必須能夠追蹤開發人員的工作,然後選擇是否要整合到自己的工作中。
-
其他人必須能夠拒絕。等到後續的整合期間,那些變更可能證明不利於這些人本身的工作。
工作區可能完全為個別的開發人員所專用,或透過網路為一群開發人員所共用。
除了提供原始版本之外,工作區也必須提供專用的(隔離的)儲存體,以存放軟體開發期間產生的檔案:
-
原始檔的工作中(已移出的)版本。
-
執行檔。
-
其他工作區專用物件 - 程式碼、測試子目錄及測試資料檔。
工作區的專用儲存體通常位於工作站上的開發人員起始目錄內。一群開發人員共用的工作區可能將專用儲存區放在中央檔案伺服器上。不過,專用儲存體的實際位置並不重要。就開發人員的觀點看來,工作區的專用儲存體是完全整合。
上圖顯示整個 CM 方塊中的專用工作區和整合工作區的概念。
工作中配置(工作區設定檔)表示特定的子系統,這些子系統組成專案的工作集。工作集是實作一件工作時必須參照或修改的一連串特定版本的子系統。這份清單可能代表整個系統或一個子集。
視圖可存取專案儲存庫中的一組檔案。此外,視圖還可存取這些檔案的一組適當的版本:
-
一個新的開發視圖可能存取最新版的檔案。
-
如果有一個團隊在專案中負責一個新的使用者介面,則另一個新的開發視圖可能存取此團隊正在使用的版本。
-
一個維護視圖可能存取先前建置產品特定發行版本時所用的多個版本的檔案。
將修改成果分享給團隊其他成員之前,工作區(有時又稱為視圖)也可讓開發人員私下先做變更並完成測試。有兩種視圖:
Snapshot 視圖為開發人員提供一個穩定、不變的工作環境。類似於電腦目錄樹。Snapshot
視圖會從一或多個專案儲存庫中取得幾個適當版本的檔案。有些人以「沙坑」來比喻這種目錄樹。開發人員只要更新此視圖,就可以看見其他團隊成員所做的變更。由於以主動拉進相關資訊為主,而非透過自動重整機制來立即提供,這種工作方式又稱為拉引模型。
動態視圖由於包含所有的開發資料,可視為一種虛擬的資料結構。動態視圖不提供檔案的本端副本,而是仰賴網路立即更新。在下列情況中,動態視圖可能是最佳選擇:
-
用戶端磁碟空間有限
-
您想要利用衍生物件共用機制
-
開發團隊必須使用最新版的程式碼。當整合工作需要任何特定軟體的最新版本時,這項功能特別有用。
|