[一]---澄清誤解
關(guān)于UCM(unified chanage management)自己有些實(shí)踐,很早想與大家分享;其實(shí)UCM有很多話題,該如何說起呢?先從頭說吧……
對(duì)UCM的認(rèn)識(shí)存在誤解,有的朋友簡單的認(rèn)為UCM是clearcase+clearquest的集成,這種理解是錯(cuò)誤的。UCM其實(shí)是Clearcase的一種使用模型,即使不作clearcase跟clearquest的集成一樣可以在clearcase中使用UCM projcet、創(chuàng)建UCM 對(duì)象,只是關(guān)聯(lián)活動(dòng)的控制無法使用到ClearQuest中的功能特性了。即使一起使用了clearcase和clearquest,在clearcase當(dāng)中采用的是base VOB對(duì)軟件資產(chǎn)進(jìn)行配置管理,在ClearQuest當(dāng)中僅僅是對(duì)活動(dòng)進(jìn)行單獨(dú)管理也不能稱之為UCM。
讓我們來看看RUP關(guān)于UCM的定義:
Unified Change Management (UCM) is Rational Software's approach to managing change in software system development, from requirements to release. UCM spans the development life cycle, defining how to manage change to requirements, design models, documentation, components, test cases, and source code。
One of the key aspects of the UCM model is that it unifies the activities used to plan and track project progress and the artifacts undergoing change. The UCM model is realized by both process and tools. The Rational products Rational ClearCase and Rational ClearQuest are the foundation technologies for UCM ClearCase manages all the artifacts produced by a software project, including both system artifacts and project management artifacts. ClearQuest manages the project's tasks, defects, and requests for enhancements (referred to generically as activities) and provides the charting and reporting tools necessary to track project progress。
從中我們不難看出,UCM是一個(gè)model,他的意義在于建立了動(dòng)態(tài)的工件和開發(fā)活動(dòng)的關(guān)聯(lián)及統(tǒng)一管理,貫穿軟件開發(fā)的始終,實(shí)現(xiàn)了對(duì)開發(fā)過程真正意義上的變更管理(包括軟件資產(chǎn)變更和開發(fā)活動(dòng)變更),這個(gè)模型的實(shí)現(xiàn)主要是來自于過程和工具兩個(gè)方面的,因此僅僅認(rèn)為把工具集成使用是UCM的觀點(diǎn)其實(shí)是一種誤解。
[二]---整合
進(jìn)入正題前先來看一幅圖:
這是IBM Rational使用頻率很高的一幅宣傳UCM的圖片,當(dāng)?shù)谝谎劭吹剿男螤,你想到了什么?它的形狀很象陰陽、太極。
UCM提高了抽象的層次,把開發(fā)看成是“進(jìn)行開發(fā)活動(dòng),開發(fā)工件“。這里活動(dòng)(activity)是泛指一切開發(fā)中的活動(dòng),工件(artifact)則包括測試腳本、文檔、代碼等一切開發(fā)資產(chǎn)。這樣,開發(fā)過程的管理的關(guān)鍵是如何管理活動(dòng)和工件。
把這兩件事情整合在一起確實(shí)是非常有意義的。我們?cè)谌粘i_發(fā)工作中經(jīng)常碰到這樣的情況:
.項(xiàng)目經(jīng)理把任務(wù)分派給了開發(fā)人員,但是卻無法及時(shí)準(zhǔn)確的驗(yàn)證真正的開發(fā)情況,往往都是靠“自覺”,由開發(fā)人員自己上報(bào)。
.開發(fā)人員得到開發(fā)任務(wù),卻在尋找對(duì)應(yīng)代碼的時(shí)候浪費(fèi)了很多時(shí)間,尤其是剛剛加入的人員或變動(dòng)頻繁的復(fù)雜項(xiàng)目。
.測試用例發(fā)生了變更,不知道什么版本的測試用例對(duì)應(yīng)哪些測試執(zhí)行和缺陷。
.項(xiàng)目開發(fā)中需求頻繁發(fā)生變更,找不到代碼因什么而更改,正確的代碼版本被覆蓋。
.回歸測試時(shí)所謂“已修正”的bug再次出現(xiàn)。出現(xiàn)這些問題的原因是因?yàn)殚_發(fā)活動(dòng)和開發(fā)工件無法建立起對(duì)應(yīng)關(guān)系,被割裂了,雖然對(duì)于兩者都會(huì)去管理,但是往往出現(xiàn)遺漏和損失。
在IBM Rational中使用ClearCase管理工件,使用ClearQuest管理活動(dòng)。
ClearCase是眾所周知的功能為全面和強(qiáng)大的配置管理工具,ClearQuest通過內(nèi)置的設(shè)計(jì)器則可以適用于管理各種活動(dòng)并定制活動(dòng)流程。(甚至可以定制來管理辦公審批流程)。
更有趣的是兩者通過變更集(change set)整合在了一起。在ClearQuest里面可以通過變更集直接找到對(duì)應(yīng)于某個(gè)開發(fā)活動(dòng)的工件。你可以輕而易舉的在系統(tǒng)中查到和維護(hù)活動(dòng)的相關(guān)信息、描述、狀態(tài)、優(yōu)先級(jí)甚至附件和歷史(可定制的),并通過變更集直接關(guān)聯(lián)到一個(gè)組工件的具體版本。通過使用UCM日常的開發(fā)工作被組織成為了更為合理的“工作單元”,“工作單元”包含了開發(fā)工作所需要的活動(dòng)/變更信息、對(duì)應(yīng)工件,以及集成和追溯的能力。它不但使得開發(fā)工作的過程在一定程度上自動(dòng)化還改變了原有的工作方式,當(dāng)你的工作成果被提交的時(shí)候,你不再提交“文件”,而是提交包含一組特定版本工件的“活動(dòng)”。于是對(duì)于開發(fā)活動(dòng)的管理更加有效并緊密的與開發(fā)產(chǎn)物結(jié)合在了一起,這樣上面出現(xiàn)的問題迎刃而解了。
UCM平衡了工件和活動(dòng),確實(shí)讓人感覺到有點(diǎn)象陰陽平衡。如果你學(xué)習(xí)了UCM以及ClearCase和ClearQuest的細(xì)節(jié)后也許你會(huì)發(fā)現(xiàn)更多的平衡,比如在工作空間管理上,stream對(duì)獨(dú)立工作空間和共享的平衡等。。。