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