[摘要]文章討論基于RUP的迭代式軟件過程、發(fā)展前景以及相關(guān)技術(shù),優(yōu)化了系統(tǒng)各階段的建模過程,降低了系統(tǒng)的復(fù)雜化,提高了軟件開發(fā)的質(zhì)量和效率。
[關(guān)鍵詞]RUP 迭代式 軟件開發(fā)
RUP(Rational Unified Process)是一個(gè)面向?qū)ο笄一诰W(wǎng)絡(luò)的程序開發(fā)方法論。它可以為所有方面和層次的程序開發(fā)提供指導(dǎo)方針,模版以及事例支持。 RUP和類似的產(chǎn)品。例如面向?qū)ο蟮能浖^程(OOSP),以及OPEN Process都是理解性的軟件工程工具把開發(fā)中面向過程的方面和其他開發(fā)的組件整合在一個(gè)統(tǒng)一的框架內(nèi)。
一、RUP的開發(fā)前景
有一個(gè)清晰的前景是開發(fā)一個(gè)滿足涉眾真正需求的產(chǎn)品的關(guān)鍵。 前景抓住了RUP需求流程的要點(diǎn):分析問題,理解涉眾需求,定義系統(tǒng),當(dāng)需求變化時(shí)管理需求。 前景給更詳細(xì)的技術(shù)需求提供了一個(gè)高層的、有時(shí)候是合同式的基礎(chǔ)。正像這個(gè)術(shù)語隱含的那樣,它是軟件項(xiàng)目的一個(gè)清晰的、通常是高層的視圖,能被過程中任何決策者或者實(shí)施者借用。它捕獲了非常高層的需求和設(shè)計(jì)約束,提供了項(xiàng)目審批流程的輸入,因此就與商業(yè)理由密切相關(guān)。
二、RUP統(tǒng)一軟件開發(fā)過程
RUP是一套軟件工程方法,主要由Ivar Jacobson的The Objector Approach和The Rational Approach發(fā)展而來。同時(shí),它又是文檔化的軟件工程產(chǎn)品,所有RUP的實(shí)施細(xì)節(jié)及方法導(dǎo)引均以Web文檔的方式集成在一張光盤上,由Rational公司開發(fā)、維護(hù)并銷售,當(dāng)前版本是5.0。RUP又是一套軟件工程方法的框架,各個(gè)組織可根據(jù)自身的實(shí)際情況,以及項(xiàng)目規(guī)模對RUP進(jìn)行裁剪和修改,以制定出合乎需要的軟件工程過程。RUP吸收了多種開發(fā)模型的優(yōu)點(diǎn),具有很好的可操作性和實(shí)用性。RUP統(tǒng)一不同的模型語言(UML)、統(tǒng)一不同的軟件應(yīng)用領(lǐng)域、統(tǒng)一開發(fā)階段、統(tǒng)一內(nèi)部結(jié)構(gòu)、與許多不同的開發(fā)過程并存。
RUP保證了軟件開發(fā)按計(jì)劃、有目的、有序的進(jìn)行。避免了軟件開發(fā)過程中的盲目性。詳細(xì)步驟在四個(gè)大階段中是迭代的,可以有效的將軟件開發(fā)過程分成許多小項(xiàng)目,有助于管理,有助于分割目標(biāo),有助于計(jì)劃的制定、實(shí)施和檢查。有助于管理人員隨時(shí)了解項(xiàng)目狀態(tài),避免各種開發(fā)過程中的風(fēng)險(xiǎn)。RUP描述了如何為軟件開發(fā)隊(duì)伍有效的部署經(jīng)過商業(yè)化驗(yàn)證的軟件開發(fā)方法。RUP被稱為最佳實(shí)踐不僅僅因?yàn)槟憧梢跃_地量化它們的價(jià)值,而且它們被許多成功的機(jī)構(gòu)普遍的應(yīng)用。為使整個(gè)軟件開發(fā)團(tuán)隊(duì)有效利用最佳實(shí)踐,RUP為每個(gè)軟件開發(fā)團(tuán)隊(duì)成員提供了必要準(zhǔn)則模板和工具指導(dǎo)。
三、 RUP應(yīng)用中存在的問題
RUP是迭代與增量的二維生命周期結(jié)構(gòu),重復(fù)一系列組成系統(tǒng)生命周期的循環(huán),如圖1所示,橫軸通過時(shí)間組織,體現(xiàn)開發(fā)過程的動(dòng)態(tài)結(jié)構(gòu)。縱軸通過內(nèi)容組織,體現(xiàn)開發(fā)過程的靜態(tài)結(jié)構(gòu)。生命周期經(jīng)歷了4個(gè)階段:先啟階段、精化階段、構(gòu)建階段、產(chǎn)品化階段。每個(gè)階段又是一次或多次迭代完成的。一次典型的迭代都要經(jīng)歷九個(gè)核心工作流程:業(yè)務(wù)建模、需求、分析設(shè)計(jì)、實(shí)施、測試、部署、配置與變更管理、項(xiàng)目管理、環(huán)境。
RUP提供的是理想開發(fā)環(huán)境下軟件過程的一種完整且完美的模式,然而商業(yè)環(huán)境中項(xiàng)目開發(fā)環(huán)境往往表現(xiàn)出人員、工具、資金等有限的資源與有限時(shí)間的約束問題f2l。RUP是過程組件、方法以及技術(shù)的框架,可以對其進(jìn)行適當(dāng)?shù)募舨煤蛿U(kuò)充,將其應(yīng)用于任何特定的軟件項(xiàng)目,由用戶自己限定RUP的使用范圍。盡管RUP宣稱是可配置的過程,但是RUP并未給出具體的裁剪、擴(kuò)充等配置實(shí)施的方法準(zhǔn)則,而這一點(diǎn)恰恰是解決在有限資源與時(shí)間約束下項(xiàng)目開發(fā)成敗的關(guān)鍵。
RUP從本質(zhì)來說還是一個(gè)強(qiáng)調(diào)設(shè)計(jì)和規(guī)范的軟件方法,從這個(gè)角度來講,與傳統(tǒng)的瀑布模型沒有太大差別,它的靈活性較之敏捷方法還是相對較弱的。RUP中各個(gè)開發(fā)階段定義的大量的制品并不是所有的都是交付用戶的,可交付的只是所有制品的子集。其中絕大部分的制品都是開發(fā)過程本身服務(wù)的。生產(chǎn)不必要的制品只會造成工作量上的浪費(fèi)。在一些中、小型軟件項(xiàng)目,特別是不可預(yù)測的軟件項(xiàng)目開發(fā)中,面臨著各種緊急需求、面臨著時(shí)間壓力,沿用RUP是很難應(yīng)付自如。
基于RUP的迭代式開發(fā)模型
四、RUP系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)
一個(gè)良好的體系結(jié)構(gòu)是一個(gè)可以方便擴(kuò)展、靈活調(diào)整的系統(tǒng)的基礎(chǔ)。通過應(yīng)用于整個(gè)系統(tǒng)高層決策,應(yīng)該把問題分解成若干個(gè)子模塊。由于選煤管理系統(tǒng)要求能夠跨平臺運(yùn)行.在這里選擇Java來實(shí)現(xiàn)系統(tǒng)。根據(jù)組件圖,程序員能夠了解系統(tǒng)的實(shí)際結(jié)構(gòu)。在組件圖中,唯一的關(guān)系類型是依賴關(guān)系。
在系統(tǒng)實(shí)現(xiàn)階段主要進(jìn)行程序代碼的編寫。在設(shè)計(jì)階段產(chǎn)生的UMI 制品(時(shí)序圖和類圖)都將被用作代碼產(chǎn)生階段的輸入,它們?yōu)榫帉懘a提供了大量必要的信息。編寫代碼時(shí),從類規(guī)范、類圖、狀態(tài)圖、活動(dòng)圖、用例圖等設(shè)計(jì)模型中取出規(guī)范說明,通過ROSE建模工具生成Java代碼,包括類、屬性、操作、關(guān)系、組件等。以代碼框架為基礎(chǔ),程序員可以添加每個(gè)類操作的具體實(shí)現(xiàn)代碼,并設(shè)計(jì)圖形用戶界面。編碼結(jié)束后,UMI 模型的使用并沒有停止,在系統(tǒng)測試階段可以根據(jù)用例圖和交互圖準(zhǔn)備測試案例,用以檢驗(yàn)每一個(gè)用例能否在已完成的應(yīng)用程序中得到良好的支持。
RUP與傳統(tǒng)的瀑布方法明顯不同,它將系統(tǒng)的開發(fā)劃分為不同的階段和一定的工作流程。其核心體現(xiàn)了當(dāng)今軟件開發(fā)的規(guī)律,迭代地開發(fā)軟件、以需求為中心、使用基于組件的軟件架構(gòu)、為軟件可視化建模、驗(yàn)證軟件質(zhì)量、控制對軟件的變更,為軟件開發(fā)團(tuán)隊(duì)提供指南、文檔模板和工具。
參考文獻(xiàn):
[1]Sehmuller J:UML基礎(chǔ)、案例與應(yīng)用[M],李虎,趙龍剛譯.北京:人民郵電出版社,2004
[2]殷兆麟:UMI 及其建模工具的使用[M],北京:清華大學(xué)出版社,2004