Rational Unified Process 軟件工程新方法_第1頁
Rational Unified Process 軟件工程新方法_第2頁
Rational Unified Process 軟件工程新方法_第3頁
Rational Unified Process 軟件工程新方法_第4頁
Rational Unified Process 軟件工程新方法_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

RationalUnifiedProcess軟件工程新方法RationalUnifiedProcess(以下簡稱RUP)是一套軟件工程方法,主要由IvarJacobson的TheObjectoryApproch和TheRationalApproch發(fā)展而來。同時,它又是文檔化的軟件工程產(chǎn)品,所有RUP的實(shí)施細(xì)節(jié)及方法導(dǎo)引均以Web文檔的方式集成在一張光盤上,由Rational公司開發(fā)、維護(hù)并銷售,當(dāng)前版本是5.0。RUP又是一套軟件工程方法的框架,各個組織可根據(jù)自身的實(shí)際情況,以及項(xiàng)目規(guī)模對RUP進(jìn)行裁剪和修改,以制定出合乎需要的軟件工程過程。RUP吸收了多種開發(fā)模型的優(yōu)點(diǎn),具有很好的可操作性和實(shí)用性。從它一推出市場,憑借Booch、IvarJacobson、以及Rumbagh在業(yè)界的領(lǐng)導(dǎo)地位以及與統(tǒng)一建模語言(UnifiedModelLanguage,以下簡稱UML)的良好集成、多種CASE工具的支持、不斷的升級與維護(hù),迅速得到業(yè)界廣泛的認(rèn)同,越來越多的組織以它作為軟件開發(fā)模型框架。二維的軟件開發(fā)模型傳統(tǒng)的軟件開發(fā)模型瀑布式開發(fā)模型是一個單維的模型,開發(fā)工作劃分為多個連續(xù)的階段。在一個時間段內(nèi),只能作某一個階段的工作比如,分析、設(shè)計或者實(shí)現(xiàn)。在RUP中,軟件開發(fā)生生命周期根據(jù)時間和RUP的核心工作流

劃分為二維空間。如下圖所示,時間維從組織管理的角度描述整個軟件開發(fā)生命周期,是RUP的動態(tài)組成部分。它可進(jìn)一步描述為周期(Cycle)、階段(phase)、Iteration(迭代)。核心工作流從技術(shù)角度描述RUP的靜態(tài)組成部分,它可進(jìn)一步描述為行為(activities)、工作流(workflow)、產(chǎn)品(artifact)、角色(worker)。ElabordtionBusiressFhasesCoreProtes-sWurkflowsliMepEl^n:!CcustruGlionTransifionTed. 十DeployElabordtionBusiressFhasesCoreProtes-sWurkflowsliMepEl^n:!CcustruGlionTransifionTed. 十Deploynnsiit_*Requiremerte _rm...……Arwfy£i^&Design ....—1 J一亠一-*- * i 亠6pRIIH3I日巾IIHE[.I£erIFELIret1feelher.nr.1刖1ft??E1#h?1Rtn1ffa+1■CoreSuppWorliflowsCc?ifjgLF3tion&.ChangeMarctProjectManagement.... Erftironmen 從圖中的陰影部分表示的工作流可以看出,不同的工作流在不同的時間段內(nèi)工作量的不同。值得注意的是,幾乎所有的工作流,在所有的時間段內(nèi)均有工作量,只是工作程度不同而已。這與Waterfallprocess(瀑布式開發(fā)模型)有明顯的不同。靜態(tài)結(jié)構(gòu):方法描述軟件開發(fā)過程描述了什么時候,什么人,做什么事,以及怎樣實(shí)現(xiàn)某一特定的目標(biāo)。RUP采用以下四個基本模型元素組織和構(gòu)造系統(tǒng)開發(fā)過程。

角色:thewho行為:thehow產(chǎn)品:thewhat工作流:thewhenV'/orker|」阿二話EDeslgirrAjctivitiesV'/orker|」阿二話EDeslgirrc5 oUfe<:af4Aist *3feD?:fiqiArtifactr0,Artifactr0,P°n,lbl9iF:陽itatfri屮£3<1型菇i9n■F:陽itatfri角色描述某個人或一個小組的行為與職責(zé)。一個開發(fā)人員可以同時是幾個角色,一個角色也可以由多個開發(fā)人員共同承擔(dān)。RUP預(yù)先定義了很多角色,例如:Architect、Use-CaseDesigner、CourseDeveloper、Implementer…,并對每一個角色的工作和職責(zé)都作了詳盡的說明。行為是一個有明確目的的獨(dú)立工作單元。產(chǎn)品是行為生成、創(chuàng)建或修改的一段信息。它是行為的輸入同時又是它的輸出結(jié)果。產(chǎn)品以多種形式存在,例如:模型(Model)、源代碼、可執(zhí)行文件、文檔等。模型是從某一個角度對系統(tǒng)的完全描述。RUP的很大一部分工作就是設(shè)計和維護(hù)一系列的模型,這其中有UseCaseModel、BusinessModel、AnalysisModel、DesignModel等。所有的這些模型都以UML描述,因此它們是標(biāo)準(zhǔn)的并為多種CASE工具支持。RUP并不鼓勵寫在字面上的文擋,產(chǎn)品應(yīng)盡可能地在CASE工具中創(chuàng)建和修改并為版本管理工具跟蹤和維護(hù),它們在整個軟件開發(fā)周期中動態(tài)地增加和修改。當(dāng)然也可以根據(jù)需要為模型生成報告(Reports),但它們是靜態(tài)的,是某一時刻模型的快照不需要維護(hù)和修改。工作流描述了一個有意義的連續(xù)的行為序列,每個工作流產(chǎn)生一些有價值的產(chǎn)品,并顯示了角色之間的關(guān)系。RUP主要提供兩種組織工作流的方式:核心工作流(CoreWorkflow)和迭代工作流(IterationWorkflow)。核心工作流從邏輯上把相關(guān)角色和行為劃分為組,以描述RUP的邏輯組成部件。它們相當(dāng)于模板一樣,并不在開發(fā)過程中真正的執(zhí)行。迭代工作流是RUP的一個具體的實(shí)現(xiàn)過程,它們對核心工作流進(jìn)行裁剪,是核心工作流的具體實(shí)現(xiàn)。每類工作流都會同一個或多個模型打交道。RUP有九個核心的工作流。以下簡單描述這些工作流的目的:商業(yè)建模(BusinessModeling):理解待開發(fā)系統(tǒng)的組織結(jié)構(gòu)及其商業(yè)運(yùn)作,確保所有參與人員對待開發(fā)系統(tǒng)有共同的認(rèn)識。需求分析(Requirements):定義系統(tǒng)功能及用戶界面,使客戶知道系統(tǒng)的功能,開發(fā)人員知道系統(tǒng)的需求,為項(xiàng)目預(yù)算及計劃提供基礎(chǔ)。分析與設(shè)計(AnalysisandDesign):把需求分析的結(jié)果轉(zhuǎn)化為實(shí)現(xiàn)規(guī)格。實(shí)現(xiàn)(Implementation):定義代碼的組織結(jié)構(gòu)、實(shí)現(xiàn)代碼、單元測試、系統(tǒng)集成。測試(Test):校驗(yàn)各自子系統(tǒng)的交互與集成。確保所有的需求被正確實(shí)現(xiàn)并在系統(tǒng)發(fā)布前發(fā)現(xiàn)錯誤。發(fā)布(Deployment):打包、分發(fā)、安裝軟件,升級舊系統(tǒng);培訓(xùn)用戶及銷售人員,并提供技術(shù)支持。制定并實(shí)施beta測試。配置管理(ConfigurationandChangeManagement):跟蹤并維護(hù)系統(tǒng)所有產(chǎn)品s的完整性和一致性。項(xiàng)目管理(ProjectManagement):為計劃、執(zhí)行和監(jiān)控軟件開發(fā)項(xiàng)目提供可行性的指導(dǎo);為風(fēng)險管理提供框架。環(huán)境(Environment):為組織提供過程管理和工具的支持。由于版面所限,無法詳細(xì)解釋每一個工作流。前六個核心工作流的名字,很可能使人們同WaterfallProcess的順序工作階段相混淆。但我們知道核心工作流并不是具體的實(shí)現(xiàn),而核心工作流中的某些行為有可能在軟件開發(fā)周期中,一遍又一遍地在迭代工作流中得以細(xì)化。下圖是需求分析工作流的具體例子,RUP為每一個行為的實(shí)現(xiàn)步驟都作了詳盡的說明。f1Fin4JUiotsJ/i』UM七匚>1幻f1Fin4JUiotsJ/i』UM七匚>1幻oa兮E電fn曲io-『問213HLlf*CJHM:do口■亦|屮D甘館"UO■—EZ>、CipfiyltJCM駅 田CocnmwVQOSNjUr^D加比bpi丄〉-eik?鬪丄也#4^Hl?■由動態(tài)結(jié)構(gòu):迭代式開發(fā)在時間維上,為了能夠方便地管理軟件開發(fā)過程,監(jiān)控軟件開發(fā)狀態(tài),RUP把軟件開發(fā)周期劃分為Cycles,每個Cycle生成一個產(chǎn)品的新的版本。每個Cycle都依次由四個連續(xù)的階段(pahse)組成,每個階段都應(yīng)完成確定的任務(wù)。起始階段(Inception):定義最終產(chǎn)品視圖、商業(yè)模型并確定系統(tǒng)范圍。演化階段(evaluation):設(shè)計及確定系統(tǒng)的體系結(jié)構(gòu),制定工作計劃及資源要求。構(gòu)造階段(construetion):構(gòu)造產(chǎn)品并繼續(xù)演進(jìn)需求、體系結(jié)構(gòu)、計劃直至產(chǎn)品提交。提交階段(Transition):把產(chǎn)品提交給用戶使用。如下圖所示,在每個階段結(jié)束前都應(yīng)有一個里程碑(MileStone)評估該階段的工作。如果未能通過該里程碑的評估,則決策者應(yīng)該做出決定是應(yīng)取消該項(xiàng)目,還是繼續(xù)做該階段的工作。每一個階段都由一個或多個連續(xù)的迭代組成,每一個迭代都是一個完整的開發(fā)過程是一個具體的迭代工作流從頭到尾的執(zhí)行。與核心工作流不同的是RUP并沒有也無法給出迭代工作流的具體實(shí)現(xiàn)步驟,它需要項(xiàng)目經(jīng)理根據(jù)當(dāng)前迭代所處的階段、以及上次迭代的結(jié)果,適當(dāng)?shù)貙诵墓ぷ髁髦械男袨檫M(jìn)行剪裁以實(shí)現(xiàn)一個具體的迭代工作流。RUP的迭代開發(fā)過程是受控的,在項(xiàng)目計劃中就制定了項(xiàng)目迭代的個數(shù)、每個迭代的延續(xù)時間以及目標(biāo)。在每一個迭代的起始階段都制定詳細(xì)的迭代計劃以及具體的迭代工作流。每次迭代過程都生成該次迭代的Release.作為下次迭代的基礎(chǔ)。在迭代結(jié)束前,都應(yīng)執(zhí)行測試工作,并仔細(xì)評估該迭代過程,為下一次迭代做準(zhǔn)備。迭代并不是重復(fù)地做相同的事,而是針對不同UseCase的細(xì)化和實(shí)現(xiàn)。使用實(shí)例(UseCase)驅(qū)動傳統(tǒng)的面向?qū)ο箝_發(fā)方法因?yàn)槿狈ω灤┱麄€開發(fā)過程的線索,因此很難闡述清楚一個軟件系統(tǒng)是如何實(shí)現(xiàn)其功能的。在RUP中,UseCaseModel就是這樣一個線索它是整個軟件開發(fā)過程的基礎(chǔ)。UseCasesModel是需求分析工作流的結(jié)果,它從用戶的角度描述該系統(tǒng)應(yīng)該實(shí)現(xiàn)的功能。利用UseCaseModel可以有效地界定系統(tǒng)范圍及其行為,并為用戶及開發(fā)人員認(rèn)同。UseCaseModel主要由UseCases和演員(Actors)構(gòu)成。UseCase是系統(tǒng)執(zhí)行的一系列行為,并為Actor生成一些有意義的結(jié)果。Actor是所有與本系統(tǒng)有交互的外部系統(tǒng),可以是人、其他軟件系統(tǒng)等。下圖是一個UseCaseMode的例子:O.PfinlDaiVReportjO.PfinlDaiVReportj、、O/工Recycle 擋沖叭「CJAdministerD郵o蠢二品:UseCase作為分析與設(shè)計工作流的輸入,是實(shí)現(xiàn)分析與設(shè)計模型的基礎(chǔ)。設(shè)計模型作為實(shí)現(xiàn)工作流的規(guī)格說明書,它自然要實(shí)現(xiàn)UseCase模型所定義的功能。同樣在測試工作流中,UseCaseModel組成測試實(shí)例,用來有效地校驗(yàn)整個系統(tǒng)的正確性。另外,UseCase還是用戶手冊的基礎(chǔ)、并驅(qū)動整個迭代開發(fā)過程的運(yùn)作,所以我們說RationalUnifiedProcess是由UseCase驅(qū)動的。以體系結(jié)構(gòu)為中心多年以來,軟件設(shè)計人員一直強(qiáng)烈地感覺軟件體系結(jié)構(gòu)是一個非常重要的概念。因?yàn)樗沟瞄_發(fā)人員及用戶能夠更好地理解系統(tǒng)的邏輯結(jié)構(gòu)、物理結(jié)構(gòu)、系統(tǒng)功能及其工作機(jī)理,也使系統(tǒng)能夠更加容易修改及擴(kuò)充。但是由于對體系結(jié)構(gòu)的目的及其定義一直模糊不清,且表示方法的混亂一直影響著它的應(yīng)用。由于在項(xiàng)目的開發(fā)過程中不同的開發(fā)人員所關(guān)心的角度是不一樣的,因此軟件的體系結(jié)構(gòu)應(yīng)該是一個多維的結(jié)構(gòu),RUP采用如下圖所示的4+lView(視圖)模型,利用UML語言來描述軟件的體系結(jié)構(gòu)。這5個視圖都是從相應(yīng)的模型中抽取出對系統(tǒng)的結(jié)構(gòu)、功能、健壯性及其可擴(kuò)充性有重要意義的元素構(gòu)成。是各模型的精華與核心部分。LogicalViewD^pb^m^nt科州1:tetireClassesicjiLSEndl!scrFunrliana'LogicalViewD^pb^m^nt科州1:tetireClassesicjiLSEndl!scrFunrliana'lllvSys!nEcieiikectangSy?iLcflTopologyDp]irrry.,]nrt<nJidljon〔:LL.I:LLt?l訶nPTOgrwfrsSn-fiBur^kiursH總皿皿iImplenenlationView$曲1曲Iritwditar^現(xiàn)iTa:ifth嬉SealabilityThrwjigh^uii■G!啪=5f*和甘r角加卸AralystsE/TesterSB^havaorUseCase是驅(qū)動軟件的開發(fā)周期的原動力,但是分析與設(shè)計工作流是以軟件體系結(jié)構(gòu)(Architecture)為核心的。RUP的早期的迭代工作,特別是演化階段的重點(diǎn)就是確定和校驗(yàn)軟件的體系結(jié)構(gòu)。演化階段的Milestone的一個關(guān)鍵任務(wù)就是確定該系統(tǒng)的體系結(jié)構(gòu)是否健壯、成熟以及穩(wěn)定。RUP的優(yōu)點(diǎn)迭代式開發(fā)方法是一個不斷的減除風(fēng)險的過程,每一次的迭代過程都選擇最關(guān)鍵的也是風(fēng)險最大的UseCases執(zhí)行。因此風(fēng)險在迭代過程中不斷地被發(fā)現(xiàn)、消滅。迭代式開發(fā)方法能夠更容易地管理需求的變化,整個開發(fā)過程由一次次的獨(dú)立的迭代所組成,項(xiàng)目經(jīng)理能夠比較容易地調(diào)整迭代過程,使最終產(chǎn)品實(shí)現(xiàn)變化的需求。大部分的產(chǎn)品都存在CASE工具中,并為配置工作流所管理,使得所有開發(fā)人都能夠及時地知道這種變化,制定相應(yīng)的對策。開發(fā)人員以及項(xiàng)目相關(guān)人員能夠及時地從迭代過程中得到反饋信息,并能夠及時修改以前工作中的失誤,有效地監(jiān)控開發(fā)過程,并對迭代工作流進(jìn)行校正,這對一個時間跨度很長的項(xiàng)目具有重要的意義。以UseCase驅(qū)動、體系結(jié)構(gòu)為中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論