2006 年 3 月 15 日 本文來自 Rational Edge:這篇文章包含兩個部分,提供了對IBM Rational Method Composer——IBM下一代過程管理工具平臺及用于創(chuàng)造,、裁剪和部署開發(fā)過程的概念框架的詳細介紹,。第一部分,也就是本文,,提供了對RMC的關(guān)鍵功能的高級理解,,并提供了對關(guān)鍵概念和典型RMC使用場景的綜述。 對于那些發(fā)展成為隨需應(yīng)變商業(yè)1的公司和組織來說,,要在一個被多種技術(shù)以及消失的地理政治邊界所不斷激活的世界中競爭——Thomas Friedman稱這些激活因子為“扁平器”2,,系統(tǒng)和應(yīng)用軟件的創(chuàng)造,集成,,現(xiàn)代化,,擴展和部署已成為關(guān)鍵。現(xiàn)在,,信息技術(shù)不僅支持業(yè)務(wù),,在很多組織中,信息技術(shù)正在定義業(yè)務(wù),。3我們正在經(jīng)歷一個新的計算模型的出現(xiàn),,IBM將其稱為“業(yè)務(wù)驅(qū)動開發(fā)”(BDD)4;BDD組織對將開發(fā)過程與不同業(yè)務(wù)線的業(yè)務(wù)過程以及IT操作進行完全的集成并靈活的排列,,以提高商業(yè)性能,。 運行業(yè)務(wù)驅(qū)動的開發(fā)項目需要非常靈活的開發(fā)過程。這些過程不僅需要為現(xiàn)代開發(fā)實踐(比如敏捷的,,迭代的,,以架構(gòu)為中心的,風(fēng)險和質(zhì)量驅(qū)動的軟件開發(fā))提供具體的支持和指導(dǎo),,還需要有足夠的靈活性以支持過程本身迅速的裁剪和應(yīng)用,。這些過程還需要隨著項目不斷發(fā)展,而正在執(zhí)行中的項目必須能夠按照在其完成前商業(yè)需求的變化自我發(fā)展,。5 IBM Rational的統(tǒng)一過程(RUP)通過其架構(gòu)和工具對過程裁剪,,擴展及部署的支持提供了這種靈活性,它作為市場上的主流商業(yè)過程框架產(chǎn)品已有很長的歷史,。6本文將要介紹RUP開發(fā)團隊下一代的過程管理工具平臺和概念框架——IBM Rational Method Composer (RMC),,它提供了完全重新設(shè)計的用戶體驗和大量創(chuàng)造,裁剪,,以及部署開發(fā)過程的新特性,。 這一新平臺包含了創(chuàng)造,,配置和瀏覽方法內(nèi)容和過程的工具7。它取代了IBM Rational當(dāng)前的工具:Rational Process Workbench,,RUP Builder和MyRUP。它還包括了基于RUP的方法內(nèi)容和打包在不同變體版本中的過程,。在本文成文之時,,它作為一個商業(yè)產(chǎn)品以及稱為“Eclipse過程框架”的計劃框架已經(jīng)可以獲得了,如圖1所示,。
本文分為兩個部分。第一部分提供了對RMC關(guān)鍵功能的高級理解,,并提供了對關(guān)鍵概念和典型RMC使用場景的綜述,。下個月,第二部分將提供關(guān)于創(chuàng)造方法內(nèi)容和過程的更詳細信息,,包括指導(dǎo)和對RMC支持的不同形式的指導(dǎo)的評述,。 圖1:Rational Method Composer與Eclipse Process Framework概覽。兩列中的黑色字體指出了上個發(fā)布中已有的特性,。藍色字體指出了此次發(fā)布新增的特性,。 IBM Rational Method Composer:目的和功能 Rational Method Composer (RMC)是一個工具平臺,負責(zé)維護和實現(xiàn)開發(fā)組織或個人項目過程的過程工程師,,項目領(lǐng)導(dǎo),,和項目經(jīng)理可使用該平臺,。 對這類過程的實現(xiàn)有兩個典型的關(guān)鍵問題需要指出。首先,,開發(fā)者需要理解軟件開發(fā)的方法,。他們需要熟悉基本開發(fā)任務(wù),比如如何引出并管理需求,,如何進行分析和設(shè)計,,如何實現(xiàn)一個設(shè)計或一個測試用例,如何測試實現(xiàn)是否滿足需求,,如何管理項目規(guī)模和變化,,等等。盡管流行的敏捷開發(fā)方法依賴于自我組織的團隊9——假設(shè)開發(fā)者已經(jīng)知道如何進行這些工作而無須記錄他們的方法——很多組織仍然需要依賴明確的文檔記錄并把這些方法變成一般和常規(guī)的實踐,。此外,,有很多組織必須遵從規(guī)定做事情。(注意RMC通過明確方法內(nèi)容選項同時支持這兩類組織,,詳見“關(guān)鍵方法和概念綜述”,。) 其次,開發(fā)團隊還需要定義如何在整個項目生存期中應(yīng)用他們的開發(fā)方法,。換句話說,,他們需要定義或選擇一個開發(fā)過程。例如,,在項目的早期,,需求管理的重點是引出涉眾的需要并規(guī)劃前景,這一階段的需求管理方法必須以一種方式應(yīng)用,,而在項目的后期,,需求管理的重點轉(zhuǎn)移到了管理需求更新和變化,并對這些需求變化進行影響分析,,這時的需求管理方法就要以另一種方式加以應(yīng)用,。團隊還應(yīng)清楚地理解方法內(nèi)的不同任務(wù)之間的關(guān)聯(lián):例如,在整個生命周期中變化管理方法是如何影響需求管理方法以及回歸測試方法的,。即使是自我組織的團隊,,也需要定義一個至少給出了關(guān)于開發(fā)在生命周期中的規(guī)模,關(guān)于實現(xiàn)和測試階段目標(biāo)的實踐,,等等的指導(dǎo)的過程,。 針對上述需要,RMC有兩個主要目的:
圖2:一個通過Rational Method Composer發(fā)布的站點,,包含并展示了用戶選擇發(fā)布的所有方法和過程。示例顯示了IBM Rational統(tǒng)一過程框架的一種配置,。Eclipse過程框架或任何用戶產(chǎn)生的內(nèi)容的配置將會以近似方式出現(xiàn),。 Rational Method Composer以及Eclipse項目框架的目標(biāo)是為常規(guī)問題提供解決方案,,這些問題是開發(fā)領(lǐng)導(dǎo)和團隊在獲得和管理他們的方法和過程時要面對的。例如:
IBM Rational Method Composer取代了IBM Rational Process Workbench,RUP Organizer,,以及RUP Builder并提供了以下新的關(guān)鍵功能:
為了有效地使用Rational Method Composer,,你需要理解一些用于組織內(nèi)容的概念,。這一部分提供了關(guān)于這些概念的綜述。 方法內(nèi)容與過程 RMC最基本的原則是可復(fù)用的核心方法內(nèi)容與它在過程中的應(yīng)用分離,。這直接與上一部分中描述的RMC的兩個目的相關(guān),。幾乎所有RMC的其它概念都按照這一分離原則分類,如圖6所示(見后文),。方法內(nèi)容描述了要產(chǎn)生的內(nèi)容,,必要的技術(shù),以及描述具體開發(fā)目標(biāo)是如何實現(xiàn)的逐步漸進的解釋,。這些方法內(nèi)容描述是獨立于開發(fā)生命周期的,。過程描述了開發(fā)生命周期。它們使用方法內(nèi)容元素并將它們關(guān)聯(lián)到半排列的序列中,,這些序列是根據(jù)項目的具體類型定制的,。 圖3:Rational統(tǒng)一過程中方法內(nèi)容和過程分離的二維表示,。 方法內(nèi)容與過程的分離并不是一種新思想。它可追溯到Rational統(tǒng)一過程(RUP)的產(chǎn)生,,并在1992年得到描述,。10但是在RMC方面,這是第一次載入了RUP的過程裁剪工具,,它支持兩方面的自由修改,。(這些工具先前的版本強調(diào)了方法內(nèi)容方面,對過程方面只提供了有限的創(chuàng)造和裁剪能力,。) 圖3用一種二維表達表示了這一分離在RUP中是如何描述的,。方法內(nèi)容描述了開發(fā)工作是如何進行的,根據(jù)規(guī)程的不同由y軸表示,。然后這些工作被引用并在過程中被排序,,表現(xiàn)在時間軸x軸上。這是一個開發(fā)項目的生命周期,;它表達了在何時具體工作應(yīng)被完成,。中間的圖表示了每種規(guī)程的預(yù)計工作量。正如你看到的,,例如,,在RUP中,對需求做的工作永遠不會停止,,但當(dāng)然,,中間會有一些高峰時期,這個時期進行了需求引出和描述工作,。而在另一些時期則可以觀察到下降趨勢,,那時需要處理的需求變化很少,于是項目得以結(jié)束,。這避免了“特性蔓延”——需求工作保持不變甚至增加的情況,。因此,過程表達了生命周期中不同規(guī)程下需要進行的工作的變化,,而工作本身是由方法內(nèi)容描述的,。 方法內(nèi)容 為了學(xué)習(xí)開發(fā)方法,人們在圖書館中查閱資料或接受培訓(xùn),。很多開發(fā)方法在書,,文章,培訓(xùn)材料,,標(biāo)準(zhǔn),,規(guī)則,和其它形式的文檔中有所描述。通常這些資源以不同方式記錄方法,,但是多數(shù)是通過在常見情況中以一種特定實現(xiàn)具體開發(fā)目標(biāo)的方式提供逐步漸進的解釋來描述開發(fā)方法的,。舉例如下:將需求文檔變換為分析模型;基于功能和非功能需求定義一個架構(gòu)方案,;建立一個開發(fā)迭代項目計劃,;為功能需求定義一個質(zhì)量保證計劃;基于一個新的策略方向重新設(shè)計商業(yè)組織,;等等,。 RMC采用這些內(nèi)容并使用一個預(yù)定義的方案以具體方式對內(nèi)容進行結(jié)構(gòu)化。這一方案是在統(tǒng)一過程架構(gòu) (UMA)11中定義的,,該統(tǒng)一過程架構(gòu)是基于SPEM 1.1 OMG標(biāo)準(zhǔn)對RUP 2003方案(也被稱為元模型)進行的發(fā)展,。12UMA還與其它IBM方法方案集成,比如IBM通用服務(wù)方法或IBM Rational Summit Ascendant,。這一方案支持對開發(fā)方法和過程的大量描述的組織,。這些方法內(nèi)容和過程并不局限于軟件工程,它們可以覆蓋其它設(shè)計和工程原則,,比如力學(xué)工程,,商業(yè)變化,銷售周期,,等等,。 按照這一UMA方案,在RMC中方法內(nèi)容被表示為由定義了開發(fā)技能的角色創(chuàng)建和對于工作產(chǎn)品的職責(zé),。這些工作產(chǎn)品是由任務(wù)產(chǎn)生的,任務(wù)由角色完成,,并把工作產(chǎn)品作為輸入和輸出,。圖4描繪了方法內(nèi)容的典型來源以及在RMC中方法內(nèi)容是如何表達的。圖4中的RMC屏幕截圖的左面的樹狀瀏覽圖顯示了這些方法內(nèi)容元素是如何組織的,。與庫類似,,這些樹狀瀏覽圖為可獲得的元素提供了不同索引以方便快速訪問。截圖的右面顯示了一個任務(wù)表示的示例,。這一任務(wù)表示根據(jù)需要被執(zhí)行以實現(xiàn)任務(wù)目標(biāo)的步驟定義了任務(wù),。你還可以發(fā)現(xiàn),任務(wù)有各種關(guān)系,,比如與執(zhí)行任務(wù)的角色的關(guān)系,,與作為任務(wù)的輸入和輸出的工作產(chǎn)品的關(guān)系。(本文的第二部分將提供關(guān)于任務(wù),,角色,,以及工作產(chǎn)品的詳細解釋。)除了任務(wù),角色,,和工作產(chǎn)品,,RMC支持額外的指導(dǎo)元素。指導(dǎo)是指支持性的,,形式自由的文檔,,比如白皮書,概念描述,,指南,,模板,示例,,等等,。 圖4:方法內(nèi)容在關(guān)于軟件工程方法的書籍和出版物中有所介紹。Rational Method Composer使用諸如任務(wù),,角色,,工作產(chǎn)品和指導(dǎo)的概念表達方法內(nèi)容。這張圖顯示了在RMC中任務(wù)是如何表示的一個示例,。 過程 一個開發(fā)過程定義了被角色執(zhí)行工作的序列,,以及工作產(chǎn)品是如何產(chǎn)生和隨時間發(fā)展的。圖5顯示了過程通常被表示為工作流或分解結(jié)構(gòu),。 圖5:在RMC中過程被表示為工作流或分解結(jié)構(gòu),。它們利用了方法內(nèi)容并定義了在其描述的項目生命周期中方法是如何被執(zhí)行的。 定義一個嚴(yán)格的序列,,比如在瀑布模型中,,與在并行工作中定義一個半排序的迭代序列是基本相同的。它們只是表示了不同的開發(fā)方法,。13在定義過程時,,方法內(nèi)容可以與指明工作在時間上是如何組織的結(jié)構(gòu)組合起來,以支持不同的開發(fā)方法,,并滿足開發(fā)項目的特定類型的需要,,比如一個在線系統(tǒng)的軟件與一個嵌入式系統(tǒng)的軟件和硬件。 RMC支持基于不同開發(fā)方法的過程,,并可用于定義不同的生命周期模型,,例如瀑布,遞增,,或迭代生命周期模型,。RMC還支持不同的過程表示,比如工作分解結(jié)構(gòu)或工作流表示,。你還可以在RMC中為靈活的,,自組織的團隊定義使用最小方法內(nèi)容集或根本不使用方法內(nèi)容的過程(本文的第二部分將提供詳細內(nèi)容)。 圖5中的RMC屏幕截圖展示了一個由嵌套活動的分解結(jié)構(gòu)表示的過程。它還顯示了一個由這一分解同步的工作流,,而該工作流是由一個特定活動——初始階段——的活動圖表示的,。圖形還通過兩個藍色箭頭指出,來自圖4的特定的方法內(nèi)容任務(wù)“詳述一個用例”,,在過程中被兩次應(yīng)用:先是在初始階段的“定義系統(tǒng)”活動中,,然后在細化階段的“細化系統(tǒng)定義”活動中。在這些被稱為RMC的任務(wù)描述符的任務(wù)應(yīng)用下,,你可以看到執(zhí)行角色清單以及輸入輸出工作產(chǎn)品,。如果你深入調(diào)查,你就會發(fā)現(xiàn)兩個任務(wù)描述符的列表是不同的,,表達了在整個生命周期中執(zhí)行詳述用例方法任務(wù)的不同,。你看到涉及到的角色的不同,要考慮到的輸入清單的變化以及要產(chǎn)生和更新的輸出清單,。在這個例子中,,這些變化是由建立過程的人定義的,目的是表達在生命周期的這一特定時刻對任務(wù)執(zhí)行的精確集中,。除了為任務(wù)描述符更新功能以及輸入輸出工作產(chǎn)品,,你還可以提供額外的文本描述并選擇在該任務(wù)的此次執(zhí)行中哪些任務(wù)步驟需要被執(zhí)行哪些不需要被執(zhí)行。 小結(jié) 圖6顯示了RMC的關(guān)鍵概念是如何與方法內(nèi)容與過程分離相關(guān)聯(lián)的,。正如你看到的,,方法內(nèi)容主要由工作產(chǎn)品,角色,,任務(wù),,以及指導(dǎo)表示。 圖6:RMC概念術(shù)語總攬 指導(dǎo),,比如清單,,示例,或路標(biāo),,也可以被定義,用于提供背景和示范性地實踐一個過程,。在圖6的右邊,,你可以看到用于表達RMC中的過程的概念。主要概念是可嵌套定義分解結(jié)構(gòu)的活動,?;顒酉嗷リP(guān)聯(lián)以定義工作流。它們包含了引用方法內(nèi)容的描述符,,并被用于定義RMC主要支持的兩種過程:發(fā)布過程和能力模式,。發(fā)布過程表達了一個執(zhí)行某個具體類型的項目的完整和集成的過程模板。它們描述了一個完整的端到端的項目生命周期并被作為運行特點近似的項目的參考。能力模式是表達對于關(guān)鍵領(lǐng)域——比如規(guī)程或最佳實踐——的過程知識的過程,。它們可以直接被過程從業(yè)者用來指導(dǎo)他們的工作,,也可以作為構(gòu)建模塊來集成發(fā)布過程或更大的能力模式,因此保證了對它們表達的關(guān)鍵實踐的最佳的復(fù)用和應(yīng)用,。 讓我們首先看一下Rational Method Composer或Eclipse過程框架的最典型使用場景,。盡管RMC是一個強大的過程創(chuàng)造環(huán)境,仍能不同程度以不同模式地利用RMC的能力進行創(chuàng)造,。RMC包含了很多現(xiàn)成的方法和過程內(nèi)容,。因此,在很多情況下,,實際上不需要多少創(chuàng)造,。要做的只是選擇,配置,,和裁剪已有內(nèi)容來適應(yīng)你的需要,。 RMC最簡單的使用場景涉及的是直接使用導(dǎo)入的過程——現(xiàn)有的過程。RMC的商業(yè)版本包含完整的Rational統(tǒng)一過程框架(RUP v7.0)資源,,它包括了覆蓋廣泛開發(fā)情境的上千的方法和過程元素,。它還包括了將RUP擴展到針對各領(lǐng)域的應(yīng)用(比如開發(fā)具體技術(shù),像Java企業(yè)版(JEE),,或不同開發(fā)情境,,比如采用一個商業(yè)構(gòu)件(COTS))的各種方法插件。Eclipse過程框架包含了一個由項目贊助人提供的迅速增長的內(nèi)容庫,。 盡管如此,,注意,沒有組織或項目一開始就需要所有這些文檔,。你應(yīng)該處理一個稱為方法配置的子集,,它根據(jù)具體需要對過程進行裁剪。在選擇和裁剪活動的過程中,,你可能還需要包括進你自己的內(nèi)容并把它鏈接到已有的材料中,。這里RMC的創(chuàng)造能力為你提供了使用簡單但功能強大的編輯器,使你能夠無縫地完成添加工作,。 你也可以從RMC開始不依賴于任何我們提供的明確的方法定義,。在這種情況下創(chuàng)造完成的所有過程創(chuàng)造都將包括使用發(fā)布、階段,、迭代,、沖刺來定義的你的生命周期結(jié)構(gòu),或者你想要組織你的生命周期的任何方式,,并將這一生命周期結(jié)構(gòu)與高級活動,,里程碑,,和對關(guān)鍵發(fā)布的定義等組合起來。 下面的各個部分概括了RMC最常見的使用場景,。14 選擇和配置已有方法內(nèi)容和過程 這代表了RMC最簡單的使用場景之一,。RUP 2003的用戶將把它看作一個“RUP Builder”情境。你通過瀏覽RMC方法庫(包含了你購買的以及你從RMC資源中心15或Eclipse過程框架社區(qū)下載的全部內(nèi)容)選擇滿足你的需要的過程和其隱含的方法內(nèi)容,。一旦你找到了一個合適的過程,,你開始通過選擇和取消選擇我們稱為“方法包”的東西對其進行配置(如圖7所示)。刪除一個方法包將從過程的所有地方刪除所有對這個包的內(nèi)容的引用,。比如,,你可以通過刪除包含你不希望進行的工作元素的包來“拆開”一個過程,使它只包含它的內(nèi)容的最小子集,?;蛘撸憧梢蕴砑影囟I(lǐng)域內(nèi)容的方法包,,這樣過程就可以選擇性地支持該領(lǐng)域的應(yīng)用(例如,,“普通”的J2EE和含SOA 特定內(nèi)容的J2EE)。 圖7:通過選擇(被過程引用)和取消選擇(不被過程引用)方法包配置過程和方法內(nèi)容,。你可以建立幾個方法配置,,它們在RMC的整體方法庫上定義過濾器。使用工具條中的組合框來在不同方法配置中迅速切換,。左下角的配置視圖總是顯示一個方法配置的結(jié)果內(nèi)容,。 在RMC中,方法內(nèi)容和過程是按照它們?yōu)橛行渲媒?gòu)邏輯單元的方式組織的,。例如,,所有屬于一個特定規(guī)程,比如需求或變更管理,,的內(nèi)容可以在一個方法包中被找到,。每一個這種包還可以根據(jù)規(guī)程內(nèi)的具體實踐被進一步分為子包。例如,,RUP中的需求規(guī)程把所有和它的用例相關(guān)的內(nèi)容包括在一個單獨的包中,。因此,對你的過程,,你可以只添加或刪除用例實踐,,也可以添加或刪除整個需求管理規(guī)程,而你要做的只是通過鼠標(biāo)點擊選擇或是取消選擇用例方法或需求包,。 結(jié)果是一個配置好的過程,你可以用HTML將其發(fā)布和部署到你的團隊(例如,,圖2所示),,并/或?qū)⑵鋵?dǎo)出到你的項目管理工具,。注意你既可以為延伸到整個開發(fā)生命周期的過程,也可以為一或多個階段,,迭代,,活動,等等建立這種方法配置,。因此,,你無需在最開始定義你的整個生命周期。你可以根據(jù)需要重復(fù)地配置你的過程,。 裁剪一個現(xiàn)有過程 除了簡單配置一個過程,,你還可以通過使用一或多個RMC的編輯器主動修改過程,使它們更好地遵守你的具體需要,。你可以為一個已有過程建立所謂的過程配置,,它定義了該過程的不同變化。你可以直接添加,,刪除,,或取代過程中的元素。因此,,對比變更配置——它將對過程做出全局性改變——你可以只在你需要的地方定義個體變化,。RMC提供了豐富的動態(tài)鏈接能力,它們將你的更改從原始過程定義中分離出來,,這樣當(dāng)下層的過程變化時,,你可以簡單升級而不會丟失你做的更改。(在第二部分中,,我將提供過程裁剪的示例,。) 建立一個新過程 作為裁剪已有過程的另一種選擇,你還可以從開始創(chuàng)造一個全新的過程,,或者一個從一或多個已有過程中復(fù)用材料的過程,。在你無法找到任何可復(fù)用材料的情況下,你可以從頭創(chuàng)造一個全新的過程,。但在多數(shù)情況下,,你可以從集成可復(fù)用方法內(nèi)容的建構(gòu)模塊以及預(yù)定義的過程模式(我們稱之為能力模式)開始開發(fā)你自己的過程。能力模式是一個定義可復(fù)用活動集的迷你過程,,在一般的過程域中它通常被一次次重復(fù),。能力模式的例子包括:“基于用例的需求管理”,“開發(fā)組件”,,“驗證構(gòu)建”,,或“持續(xù)管理和支持”。除了在每次由模式描述的工作被執(zhí)行的時候復(fù)制這些模式外,,RMC還允許你把模式動態(tài)鏈接到你的過程,。當(dāng)模式變化時,,模式的所有應(yīng)用將自動被更新。 RMC的過程創(chuàng)造能力使你能夠完全利用方法內(nèi)容與過程分離的特性,,如在“關(guān)鍵術(shù)語和概念綜述”中所指出的,。你可以從定義你自己的生命周期模型開始建立你的過程,然后系統(tǒng)地添加你自己定義的或從方法庫中復(fù)用的方法內(nèi)容和/或能力模式,。 圖8顯示了一個Eclipse過程框架的例子,,指出了方法內(nèi)容和能力模式是如何在兩個使用不同生命周期模型的過程中被復(fù)用的。 圖8:兩個使用不同生命周期模型的過程應(yīng)用相同的能力模式和方法內(nèi)容,。 圖8的右邊包含了兩個分解結(jié)構(gòu)過程編輯器,。上面的一個定義了基本統(tǒng)一過程(BUP),它是RUP的靈活,、輕量的改編版,。16下面的編輯器定義了一個類Scrum過程。兩個過程有各自截然不同的生命周期模型,。BUP使用四個RUP階段——啟始,,精化,構(gòu)建,,和產(chǎn)品化——并定義了它們的迭代,。Scrum過程的組織迭代形式也被稱為“沖刺”。如果你仔細檢查圖8中的兩個過程,,你會發(fā)現(xiàn)它們既有共同之處也有具體的不同之處,。管理迭代或管理沖刺之類的活動有不同任務(wù),因為兩個過程有不同管理方法,。管理方法是針對每個過程創(chuàng)造的,。 在另一方面,兩個過程有一些共同活動,,比如開發(fā)解決方案或驗證構(gòu)建,。 這些活動代表了基本統(tǒng)一過程中被定義為基本構(gòu)建模塊的能力模式;正如你看到的,,它們被列在圖8左面的樹狀瀏覽器中,。這些模式被Scrum過程的作者通過簡單的拖拽操作復(fù)用到過程中。忠實的Scrum從業(yè)者可能會說,,這一過程由于為工作提供了明確任務(wù)而不是為自組織的團隊提供任務(wù)而違背了Scrum原則,。但是,我們建立了這個例子來告訴你,,像Scrum這樣的過程是如何通過利用RMC的過程創(chuàng)造能力即復(fù)用模式和任務(wù)來得到強化的,;這些模式和任務(wù)的作用在于指導(dǎo),而不是作為缺乏經(jīng)驗的團隊的嚴(yán)格工作指令,。 開發(fā)方法內(nèi)容和建立或擴展過程 介紹的最后一個情境是復(fù)用RMC或第三方方法內(nèi)容不僅來建立或裁剪過程,,而且來開發(fā)你自己的方法內(nèi)容并使用該方法內(nèi)容來裁剪已有過程或建立新過程,。 在方法內(nèi)容的創(chuàng)造中,你既可以定義全新的內(nèi)容,,也可以擴展已有的方法內(nèi)容。如果你需要定義你自己的功能,,想要添加額外的工作產(chǎn)品類型,,想要添加你的開發(fā)方法,或只是想添加額外的指導(dǎo)——如白皮書,,你的組織的具體規(guī)則和方針,,或你自己的工作產(chǎn)品模板或清單,則你要開發(fā)新的內(nèi)容,。如果你只是要修改方法庫中已有的方法內(nèi)容,,要向一個功能中添加一個工作產(chǎn)品責(zé)任,向一項任務(wù)中添加步驟,,或向一個已有的清單中添加幾個檢查點,,你就可以使用RMC獨有的方法插入和變化功能。變化性允許你改變已有內(nèi)容而不直接修改原始內(nèi)容,。例如,,你擁有在RUP中建立一個向已有任務(wù)中添加一些新步驟的任務(wù)的方法插件的能力?;蛘?,你可以在你的插件中定義一個定義了你的變化的工作產(chǎn)品來取代原來的RUP工作產(chǎn)品。例如,,它可能有不同的名字,,結(jié)構(gòu),模板以及定制的描述和指導(dǎo),。其它RUP元素對原始工作產(chǎn)品的引用將自動被取代為對你的元素的引用,。這樣你就可以使用方法配置有選擇地打開或關(guān)閉你的擴展,還可以方便地把原始元素升級到更新的版本并重新應(yīng)用你的變化,。 在RMC中,,你使用編輯器定義和記錄方法內(nèi)容;這些編輯器是直觀,,基于形式,,并容易上手的,同時它們也足以提供格式良好的,,富文本的文檔,。 圖9顯示了用于工作產(chǎn)品定義的編輯器。要定義一個新的工作產(chǎn)品類型,,你只要在方法包中建立該類型的元素,。要為這一類型建立文檔,,你只需要使用它的編輯器來填寫形式域并使用選擇對話和組合框來建立關(guān)系。RMC在后臺創(chuàng)建和管理HTML——它提供了格式良好的,,帶有超鏈接的文檔,,如你在圖4中所見(顯示了一個任務(wù)的文檔的預(yù)覽)。 圖9:工作產(chǎn)品的基于形式的編輯器,。所有形式域可被擴展為一個完整的文本編輯器,,它允許你格式化文本,處理表格包括圖像,,等等,。 一旦你建立了你自己的方法內(nèi)容元素,你就可以通過使用前文所述的“裁剪已有,。,。?!被颉敖⑿碌?。。,?!鼻榫嘲阉鼈儼M你的方法配置或添加到你自己的或復(fù)用的過程中。 這里結(jié)束了我們對最常見的RMC使用場景的綜述,。下個月,,我將在本文的第二部分中給出對方法內(nèi)容和過程的更深入講解。再見,! 本文的完成與幾個突出的團隊的努力和熱情是分不開的,。我要感謝RUP開發(fā)和QA團隊,RUP內(nèi)容團隊,,RUP產(chǎn)品團隊,,RUP生產(chǎn)團隊,IRUP團隊,,IBM全球服務(wù)方法團隊,,擁有來自Rational領(lǐng)域和其它IBM方法團隊的成員的UMA委員會,Tivoli ITUP團隊,,以及其它所有IBM內(nèi)外的早期采用者和beta用戶,,還有ISSR管理,它使RMC和EPF能真正發(fā)布,。 1見IBM,,“隨需應(yīng)變商業(yè)”,2005年12月:http://www.ibm.com/ondemand。另見,,Alfredo Gutierrez,,“隨需應(yīng)變電子商務(wù):開發(fā)者指南”,IBM developerWorks,,2003年2月:http://www-128.ibm.com/developerworks/ibm/library/i-ebodov/index.html 2Thomas L. Friedman,,平坦的世界:21世紀(jì)簡史。Farrar,,Straus和Giroux,,2005年。 3Asiff Hirji,,CIO Ameritrade,Gartner Financial Services Technology Summit,,2005年8月:http://www./careertopics/careers/story/0,10801,104482,00.html 4Per Kroll和Walker Royce,,“業(yè)務(wù)驅(qū)動開發(fā)的關(guān)鍵原則”,The Rational Edge,,2005年10月:http://www-128.ibm.com/developerworks/rational/library/oct05/kroll/index.html 5Per Kroll和Walker Royce,,“業(yè)務(wù)驅(qū)動開發(fā)的關(guān)鍵原則”,The Rational Edge,,2005年10月:http://www-128.ibm.com/developerworks/rational/library/oct05/kroll/index.html 6如果需要關(guān)于RUP的更多內(nèi)容,,請參考以下四個資源:IBM,“Rational 統(tǒng)一過程”,,版本2003.06,,IBM Rational軟件,2003年,;IBM,,“Rational 統(tǒng)一過程”,版本7.0,,IBM Rational軟件,,2006年;Philippe Kruchten,,Rational統(tǒng)一過程入門,。Addison Wesley,2000年,;以及Per Kroll和Philippe Kruchten,,Rational統(tǒng)一過程的便利:Rational統(tǒng)一過程從業(yè)人員指南。Addison Wesley,,2003年,。 7如果需要總體上大致了解RMC包含的內(nèi)容,請參考Per Kroll,“IBM Rational Method Composer介紹”,,The Rational Edge,,2005年11月:http://www-128.ibm.com/developerworks/rational/library/nov05/kroll/index.html 8見Eclipse.org,“Eclipse過程框架:項目信標(biāo)”,,Eclipse.org提案,,2004年:http://www./proposals/beacon/。另見Per Kroll,,“Eclipse過程框架項目”,,IBM developerWorks,2005年11月:http://www-128.ibm.com/developerworks/rational/library/05/1011_kroll/,;另見Ricardo Balduino,,“基本統(tǒng)一過程:適用于小型和敏捷項目的過程”,Eclipse.org,,2005年:http://www./proposals/beacon/Basic%20Unified%20Process.pdf 9見Ken Schwaber和Mike Beedle,,使用SCRUM進行敏捷軟件開發(fā)。Prentice Hall,,2001年,。 10I. Jacobson et al.,面向?qū)ο蟮能浖こ蹋阂环N用例驅(qū)動方法,。Addison-Wesley,,1992年。 11如果需要對UMA的詳細介紹(已經(jīng)作為下個版本的SPEM標(biāo)準(zhǔn)提交給OMG),,請參考Peter Haumer和Todd Fredrickson所著,,即將出版的“統(tǒng)一方法架構(gòu)綜述”,IBM,。如果需要關(guān)于下一個SPEM標(biāo)準(zhǔn)的更多信息,,請參考OMG,“軟件過程工程元模型”,,版本2.0,,RFP,2004年:http://www./cgi-bin/doc?ad/2004-11-4 12OMG,,“軟件過程工程元模型”,,版本1.1,正式版/2005-01-06,,2005年:http://www./technology/documents/formal/spem.htm 13如果要對這兩種方法進行深度比較,,見Walker Royce,軟件項目管理:一個統(tǒng)一框架,。Addison Wesley Longman,,1998年,。 14關(guān)于裁剪RUP的更詳細的討論,請見IBM Rational統(tǒng)一過程的“裁剪RUP”部分,,版本7.0,,IBM Rational軟件,2006年,。 15參見IBM,,“IBM developerWorks RMC資源中心”,2006年:http://www-128.ibm.com/developerworks/rational/products/rup/ 16參見Ricardo Balduino,,引自其著作,。
|
|