作者:Jim 著
本文選自:UMLChina
2002年10月30日
ClearCase是一種配置管理工具,由Rational公司開發,是開發小組用來跟蹤、管理軟件開發過程各個工件的配置管理系統,
ClearCase可以協助開發組織更好地管理軟件開發進程。
ClearCase可以和Rational公司的其他軟件緊密結合,例如UCM、ClearQuest等等。
ClearCase包括兩套:ClearCase LT和ClearCase (MultiSite)。前者可以用于在同一個局域網的開發小組,適合于中小型開發組織;ClearCase
(MultiSite)則適應于分布于不同地理位置、不同局域網的開發小組,適合于大型的開發組織。
因此,一般的公司使用ClearCase LT就足夠了。
注:在后續文章中,經常將ClearCase簡稱為CC。
系統組成
ClearCase LT由ClearCase LT Server和ClearCase LT Client兩個部分組成,其中服務器部分負責數據的集中管理;客戶端部分則安裝在各個需要使用ClearCase服務的機器上,以及主要開發人員的計算機上,屬于典型的Client/Server結構。
ClearCase LT Server采用VOB(Versioned Object Base)存儲配置管理數據,用戶通過視圖(VIEW)的方式獲取VOB中存儲的數據;UCM方式(參見“項目管理”部分)中,主要通過Stream(流)和Activity(活動)管理項目。
VOB、VIEW
VOB是ClearCase存儲軟件系統各個組成元素的所有版本數據的倉庫,一個版本是其中包含的特定文件或目錄;VIEW則是通過一定的規則選擇出來的各個元素特定版本的集合,用戶通過VIEW存取、修改各個元素。
VOB和VIEW的關系如下圖所示:
視圖有兩種類型:快照視圖(snapshot view)及動態視圖(dynamic
view)。
快照視圖,是將CC服務器中的視圖內容拷貝到開發人員的機器中,開發人員需要經常與服務器同步以保持數據的一致性,快照視圖的好處在于開發人員不必一直通過網絡與CC服務器保持連接;動態視圖則是動態的將CC服務器中的內容同步到開發人員的機器中,這就要求開發人員一直保持與服務器的網絡連接。一般來講,由管理員決定選用哪種視圖。
開發人員的開發涉及到兩個視圖:開發視圖和集成視圖。如果用戶的名字為pat,參與的項目叫做test,那么兩個視圖缺省的名字為pat_test和pat_test_integration。
開發視圖用于開發人員的開發過程,開發人員在開發視圖中完成軟件的開發、修改、提交等工作;集成視圖的作用是存放開發人員完成的工作,使得開發人員可以通過該視圖中的內容對其開發進行驗證。
CHECK-IN & CHECK-OUT
像其他配置管理工具一樣,ClearCase LT通過Check-in和Check-out的方式實現配置管理。Check-out一個文件時,ClearCase就會在視圖中創建該文件的一個可編輯的版本,可以對該文件進行修改;Check-in一個文件時,ClearCase就在VOB中創建該文件的一個新的永久的版本,本地視圖中對應的文件就會變成只讀屬性,無法修改。
基線(Baseline)
在軟件開發過程中,可以將各個元素的不同的版本組合成一個基線。通過基線表示軟件項目開發達到了一定的要求,也可以說是里程碑。
項目管理員可以根據情況設置相應的基線,并隨著項目的發展逐步設置新的基線。
活動(Activity)
活動是開發者為完成、提交一項開發任務而創建的,是用來記錄開發者創建或修改的文件集合(變化集合)的對象,例如下圖所示的修改BUG。一個活動包含一個組件(Component)兩個或多個元件(Element)的多個版本。
活動是UCM的基本對象。
上圖表明活動Fixing bug(排錯) 2144包含foo.c和bar.c。
通過活動,開發者可以一次完成對多個文件的操作,而不必一一處理,可以極大地提高工作效率。
流(Stream)
流記錄了在項目的私有工作區和共享工作區中的所有活動歷史。流同時也定義了開發者通過私有工作區可以存取相應元件(例如文件foo.c)的哪個版本。
下圖表示了一個流:
裝ClearCase LT Server
安裝ClearCase LT Server的步驟參見后續章節的ClearCase安裝部分。
安裝完畢ClearCase LT Server以后,需要進行一些設置,主要是數據的準備、環境變量設置、權限設置等。
生成基礎VOB
ClearCase 服務器安裝完畢之后,會自動啟動ClearCase
服務器設置向導,設置初始的VOB。
也可在以后單獨運行該向導。
如果需要額外的VOB數據,需要通過ClearCase 管理控制臺(Administration
Console)完成。
設置環境變量
由于Windows NT/2000中的BUG,ClearCase要正常完成授權管理,必須設置環境變量:
a.打開控制面板,選擇"系統"進入"系統特性"設置
b.選擇"高級"頁面,點擊"環境變量"按鈕,進入環境變量設置。在"用戶變量"一欄中點擊"新建"按鈕,輸入變量名稱:CLEARCASE_PRIMARY_GROUP
變量值設置為將要訪問ClearCase的用戶組,例如CLEARCASE_USERS,表示CLEARCASE_USERS組可以訪問ClearCase。(在安裝ClearCase
Client的Windows 2000/NT的機器里面也必須設置CLEARCASE_PRIMARY_GROUP,方法參照b;Windows98需要在autoexec.bat文件里面設置該環境變量)
權限管理
權限管理在ClearCase的使用管理中十分重要,必須正確設置權限,才能正常使用ClearCase的各種功能。
· ClearCase LT 服務器端的權限設置
ClearCase通過Windows提供的用戶組(或者UNIX用戶組)實現用戶登錄管理,因此必須設置相應的可以訪問ClearCase功能的用戶組。
以上一節提供的數據為例,ClearCase管理員需要在ClearCase服務器上生成一個用戶組CLEARCASE_USERS,然后產生要使用ClearCase進行軟件開發的用戶賬號,并且將這些賬號指定到CLEARCASE_USERS組。
注意:指定的用戶組名稱必須和前面設置的環境變量CLEARCASE_PRIMARY_GROUP中的名字相同!
· ClearCase 客戶的設置
ClearCase客戶端必須采用在服務器中提供的賬戶,登錄到服務器域,才能使用ClearCase。
· 其他事項
如果遇到問題,可以使用ClearCase提供的“Rational ClearCase
LT Doctor”檢查問題所在,然后根據它提供的方法解決問題。
該工具在ClearCase LT 服務器和客戶端都有。
· 配置License Server(許可服務器)
運行ClearCase安裝程序,根據提示逐步進行,到達如下畫面:

點擊按鈕"Configure Licenses…"(配置許可):

點擊按鈕"下一步(N) >":
在彈出的新的對話框中繼續點擊按鈕"下一步(N) >":

在Server Name(服務器名稱)中輸入認證服務器的名稱或IP地址,如上圖為192.168.0.12,然后點擊按鈕"完成"。
如果設置正確,將會彈出如下窗口:

關閉Rational License Key Administrator(Rational許可密鑰管理器),這時,安裝界面變成了如下形式:

可以看出,Rational ClearCase LT Client和Rational ClearCase LT Server前面出現了綠色的"√"。
安裝ClearCase LT軟件
要安裝ClearCase LT Server,則使用鼠標選中"Rational ClearCase LT Server",然后點擊按鈕"下一步",開始安裝Server。
要安裝ClearCase LT Client,則使用鼠標選中"Rational ClearCase LT Client",然后點擊按鈕"下一步",開始安裝Client軟件。
根據提示,繼續安裝,就可以完成Server或者是Client的安裝。
ClientCase 客戶端配置
安裝完畢客戶端軟件后,需要對客戶端系統進行一些設置。
首先配置用戶組,具體方法參照3.3設置環境變量。對于Windows 98中設置環境變量的方法,請自行參考相應的文檔。
其次設置網絡屬性,設置客戶機的網絡ID以及登陸的域。注意:需要在域中填寫ClearCase LT Server所在計算機的域名稱。
在Windows 2000中,通過控制面板打開"系統"功能,進入"網絡標識"頁面,點擊"屬性"按鈕,設置計算機名稱和所屬的域。
用戶每次登錄計算機時,必須選擇登錄到域。輸入在ClearCase LT Server計算機上的用戶名稱和密碼,這樣才能使用ClearCase提供的服務。
使用CC進行項目管理,可以采用兩種方式:Base ClearCase方式和UCM(Unified Change Management)方式。
Base ClearCase方式是基于文件的管理方式,UCM方式則主要采用Activity方式進行項目管理。與Base ClearCase方式相比,UCM方式具有以下一些優點:
· UCM比Base ClearCase更加有效
· UCM使用Stream方式管理項目,比Base ClearCase采用Branch方式管理項目的方式減少了配置工作
· UCM方式對基線的管理更加自動化并提供了附加的執行操作
· UCM方式使用活動管理項目,更加簡單,并提供了與ClearQuest工具集成的功能
· UCM方式更加有利于并行開發模式
下面對項目管理的討論主要基于UCM方式。
UCM基礎
項目管理周期

UCM方式采用一種迭代開發過程,開發人員在同一個UCM項目中工作。
項目管理者負責創建項目,維護項目公共區域。
一個項目包括了公共區域和多個私有工作區域,私有工作區域允許開發人員在活動上各自獨立地進行工作。
工作過程如下:
·
項目管理者創建項目并且為項目中的元件確定初始基線集合;
·
開發人員通過創建私有工作區域、獲取項目基線內容,加入該項目;
·
開發人員創建活動并且一次在一個活動上工作,與活動相關的文件集合稱為變化集;
·
當開發人員完成活動,并且在其私有工作區對其工作進行了測試后,通過執行交付將其工作與開發組共享。交付操作將開發者私有區域中的工作合并到項目共享區域。
·
項目管理者在項目共享區域集成開發人員交付的工作。
·
項目管理者定期在項目共享域創建新的基線,用來集成開發人員的工作。
·
項目管理者執行快速驗證測試,以保證新的基線可以正常工作。軟件質量工程師將執行更多的擴展測試。
·
項目管理者定期在基線的質量和穩定性提高后調整極限的晉升級別(如:創建、測試、發布)以反映適當的里程碑。當新的基線經過了足夠的測試,項目管理者可以將其指定為推薦基線。
· 開發者執行rebase操作來修改其私有工作區,使其包含新的推薦基線所確定的新版本集。
·
開發者繼續如下的開發循環:基于活動進行開發工作、發布完成的活動、根據新基線修改其私有工作區域。
上述的任務可以分為兩個循環:項目管理和開發

創建項目

創建并配置一個項目,需要按照以下步驟進行:
· 創建存放項目信息的倉庫
· 創建包含開發者使用的文件集組件
· 創建基線,以便開發人員可以確定開始其工作的文件版本
· 選擇希望采取的開發策略
注意:創建新的項目應當以安裝CC時使用的用戶登錄,其他用戶才能正常使用該項目。
創建步驟:
a.使用安裝了CC LT Server的計算機,運行其中的"Rational ClearCase LT Administration Console",加入保存新的項目數據所需要的VOB。

在此創建的VOB為TEST(具體是否創建VOB根據實際需求而定)。
b.打開運行Rational ClearCase程序組中的"Rational ClearCase LT Project Explorer",進入項目瀏覽器:

按照上圖,創建新的項目,根據提示操作,選擇缺省的選項,一直到第三步:New Project - Step 3
c.添加項目使用的基線

點擊"Add"按鈕:

從組件列表中選擇指定的組件(component),在此,選擇剛剛創建的組件TEST,然后基線列表中出現了與組件相關的基線,選擇一個基線,新的組件只有一個基線:xxxx_INITIAL,此處選擇的是TEST_INITIAL基線。點擊OK:

這樣,就為將要創建的項目選擇了初始基線,點擊下一步,進入步驟四。
d.設置可修改組件、調整項目策略

選擇項目中需要修改的組件,在此選擇TEST,實際應用中需要根據實際情況做出選擇。
點擊按鈕"Policies",調整項目的策略:

具體的項目策略應當根據實際情況進行調整,一般是將"For All deliveries"策略設置為Enabled.
e.繼續選擇缺省的配置,完成項目的創建。這樣就生成了一個以缺省VOB為基礎的新項目,新項目生成一個缺省的Integration_Stream:testa_Integration(這里假定剛剛生成的新項目名稱為testa)
通知開發組成員加入新的項目
創建了新項目后,需要通知、指導開發人員加入到新創建的項目中,具體的方法參見開發部分。
管理項目
當通知開發人員加入到新項目開發中后,項目管理員的職責就是不斷監視項目開發的進展情況,對不同開發者提交的源代碼進行相應的管理、驗證工作;在開發進展到一定程度后,為項目生成新的基線;指定新的推薦基線,直到項目開發完畢。(參見UCM基礎部分)
· 生成新的基線
管理員需要根據開發人員的開發情況,經常針對當前開發生成新的基線,以便更好的保存項目的開發過程。
操作過程如下:
(1)啟動" Rational ClearCase LT Project Explorer",選擇當前的項目,選中項目的集成視圖,點擊鼠標右鍵,選擇"Properties"功能,修改屬性:進入Lock頁面,將狀態改為Locked。鎖定Integration Stream,防止用戶提交新的數據。
(2)選中項目的集成視圖,點擊鼠標右鍵,選擇"make baseline…"功能,如下圖所示:


在彈出的"make baseline"對話框中,輸入基線的名稱、描述、類型,并且在"View Context"中選擇對應的集成視圖。上圖中選擇的是遞增類型視圖、以jim_testa_integration視圖為基礎。
(3)按照(1)中的方法,將Integration Stream的狀態改為Unlocked。
· 管理基線
在項目開發過程中會產生許多的基線,管理員需要根據項目開發的進展來管理基線,例如改變基線的屬性、提升基線等。
下面舉例說明如何提升基線,這主要涉及到修改基線的屬性。(可以在多個地方修改基線的屬性,下面只是其中的一種)
a.進入Integration Stream屬性功能

b.選擇基線

按照上圖中的1、2、3、4的步驟進入基線屬性功能。
c.調整基線屬性

在晉升(promotion)下拉框中,列出了缺省的晉升級別,根據當前項目的進展情況選擇一個,然后點擊"確定"按鈕。
REJECTED表示該基線所代表的內容被拒絕接受;INITIAL表示該基線為初始基線;BUILT表示該基線的內容已經創建成應用程序;TESTED表示該基線已經被測試過;RELEASED表示該基線已經發布。
· 指定推薦基線
在一個開發團隊并行開發項目的過程中,很可能出現各個開發人員修改不同步的情況,有時會導致對同一個文件出現不同的版本,這就需要管理員對此進行跟蹤管理,采用的主要手段是推薦基線。
采用推薦基線就是要求各個開發人員將他的開發視圖中的內容與基線所代表的內容保持一致,以避免沖突。
對于各個開發人員提交的開發數據,管理人員進行審查、測試,創建基線,當提交的代碼已經達到一定的穩定程度或者是一定規模后,管理人員可能認為需要讓所有的開發人員與當前的代碼保持一致,他就可以將認為可行的基線設置為推薦基線,然后要求各個開發人員rebase他們的開發視圖與該推薦基線中的內容保持一致,然后再在此基礎上繼續開發。
在一個項目的開發過程中,管理員不斷的生成新的基線,根據實際情況變動推薦基線,以保證各開發人員工作的一致性。
操作方法如下:(多種方式中的一種)


管理員可以根據實際情況添加、刪除或者改變當前的基線。
完成設置新的推薦基線后,需要通知各個開發人員rebase他們的開發視圖,以便與推薦基線的內容保持一致。
項目開發
ClearCase LT Client工具簡介
ClearCase LT Client安裝成功后,啟動菜單里面的程序組如下所示:
上述各個工具中,Rational ClearCase LT Explorer將是開發人員最常使用的工具,其他一些工具許多都已經集成在Rational ClearCase LT Explorer中了。
Rational ClearCase LT Explorer左邊是ShortCut Pane(快捷區),通過它可以方便的進行各項操作,包括兩個部分:Toolbox(根據箱)和Views(視圖),Toolbox中包括各種工具,Views中則是開發人員所參與的各個項目的視圖。
· 下圖是Toolbox中各項的內容:
Getting Started中是使用幫助部分;
UCM部分是統一變化管理部分,開發人員將主要使用該部分來進行開發過程的控制,功能包括:加入項目開發、提交數據、Rebase、打開項目瀏覽器;
Base ClearCase部分是基礎的CC功能,包括修改視圖屬性、創建新的視圖、刪除視圖、修改快捷視圖等。
· 下圖是Views中的內容
在Views中列出了開發人員參與的各個項目的視圖,一般每個項目包括兩個視圖:開發視圖和集成視圖。上圖顯示的是項目testa的開發視圖jim_testa,該視圖中尚無內容,其中可以看到一項view.dat,該文件表示了與視圖相關的內容,開發過程中切勿刪除此文件,否則CC將失去該視圖,恢復操作很復雜。
下面開始詳細介紹ClearCase的使用。
開發流程

開發人員的主要的工作流程是加入項目,然后基于活動實施開發,提交活動,根據管理員的要求rebase工作區,然后繼續開發,直到開發完成。
加入一個項目
要加入一個項目,主要點擊Rational ClearCase LT Explorer / Toolbox /UCM中的"Join Project按鈕"(參見ClearCase LT Client工具簡介部分),然后根據提示進行操作,就可以完成加入項目開發的過程。
加入項目后,點擊菜單View/Refresh View Shortcuts,在左邊面板的Views中就會出現項目的視圖:

同時,在計算機的硬盤(缺省的是C盤)中會產生兩個目錄:user_project和user_project_integration。上面的例子中生成的目錄為:jim_testa、jim_testa_integration。
以后,開發工作將會在user_project中展開,測試工作將會在user_project_integration中進行。
注:要想加入到項目開發,計算機的登錄用戶應當滿足"ClearCase LT設置"部分的要求。
進行開發工作
加入到一個項目后,就可以開始著手開發工作,在開發過程中,可以使用不同的開發工具,可以提交的東西包括軟件源代碼、設計文檔以及根據管理員要求可以提交的其他內容。開發人員可以使用開發工具直接在開發視圖中進行修改。
但是,在開發中一定需要記住一點:在開發視圖中對文件進行修改之前,一定需要將準備修改的內容check
out,然后才能修改,修改完畢后,使用check in加入到視圖中。
· 加入文件、目錄
最初加入項目的開發人員可能面對的是一個空的項目,需要不斷加入新文件或者是目錄,這可以在Rational
ClearCase LT Explorer中或者Windows資源管理器中完成。
下面是兩種可能方式的圖示:

上圖左邊是使用ClearCase LT Explorer的方式,右邊時使用Windows資源管理器方式,可以看出在開發視圖對應的文件夾的快捷菜單出現了ClearCase的快捷操作方式。
通過Windows資源管理器,在開發視圖目錄中生成新的目錄,拷貝加入文件。例如:在jim_testa\test目錄中加入文件夾source、doc,source文件夾中加入新的文件home.html,這是Rational ClearCase LT Explorer中的情況如下:

這時新產生的目錄和文件并沒有納入CC的管理之下,必須手工將其加入到CC管理,即Add to Source Control。
首先選擇需要加入到CC控制的目錄或者是文件,然后通過Tools/Add to Source Control或者快捷按鈕將其加入到版本控制中。
添加到版本控制中要求選擇"活動",(UCM方式基于活動),輸入活動名稱:

上圖所示,此處,活動被命名為add folder。這樣新加入的內容就加入到CC控制之下。
注意:任何新加入的文件/目錄都需要通過Add to Source Control加入到CC中。
· Check Out
加入新的代碼在開發過程中需要不斷的修改,首先需要完成Check Out工作。操作比較簡單,選中需要Check Out進行修改的目錄或文件,然后通過Tools菜單或快捷菜單或快捷按鈕,實現Check Out功能。任何需要修改的文件,都要執行Check Out功能,才能進行修改。
執行了Check Out之后,可以將ClearCase的各個工具關閉。
Check Out以后的情況如下所示:

· 修改
Check Out以后,開發人員就可以對相應的文件進行修改了,可以在開發視圖目錄中直接修改,也可以在其他地方修改之后,覆蓋該視圖中原來的文件。
· Check In
修改后,要將新改動的內容加入到CC中,這就需要Check In。如果一次修改了許多文件,為了防止漏掉一些修改的內容,可以使用快捷菜單中的Find Checkouts功能:

這樣可以找出所有的被CheckOut的文件,選中這些文件,然后選擇Check In,要取消這次修改,也可以選擇Undo Checkout:

當然也可以在View中選擇某個或某些文件,從快捷菜單中選擇Check In完成Check In操作。
提交工作
當開發工作進行一定時間之后,要提交所作的改動,以便管理員及其他開發人員看到這些改動。
這樣,改動的部分就會加入到集成視圖中,CC服務器也會得到改動的部分,管理員可以根據新的數據進行測試、生成新的基線、晉升基線、生成新的推薦基線等工作。
具體的操作方法有兩種:

上圖左邊和右邊分別表示了提交的方法。
當系統完成提交工作后,提交工作并沒有真正的完成,CC會彈出下面的對話框,請操作者確認:

(全文完)
文章來源于領測軟件測試網 http://www.kjueaiud.com/