北美IT 求職必備技術(shù)—RUP —— 作者:李訓(xùn)軍博士 時間:2006-12-15 來源:出國在線 加入技術(shù)交流群 掃碼加入和技術(shù)大咖面對面交流海量資料庫查詢 收藏 隨著現(xiàn)代信息產(chǎn)業(yè)的蓬勃發(fā)展,軟件開發(fā)已經(jīng)成為一項浩大繁復(fù)的工程。 就象是建造一座宏偉的宮殿, 從計劃、設(shè)計到施工, 每一個環(huán)節(jié)都必須嚴(yán)格把關(guān), 稍有不慎, 整個工程就會失敗。 據(jù)統(tǒng)計, 僅在美國, 每年就有180,000個信息技術(shù)項目, 耗資大約$2500億美元, 其中25-30%的項目會流產(chǎn)。 由此可見, 由于管理不善和設(shè)計上的失誤所造成的損失是巨大的?,F(xiàn)代軟件開發(fā)的管理和方法論顯得比以往任何時候都更為重要。 軟件開發(fā)的過程由方法論和工具構(gòu)成(process = methodology + tools)。正如裝配電子設(shè)備一樣,僅有工具就可以勝任裝配任務(wù)。但為了減少失誤和提高效率,人們往往采用流水線作業(yè),流水線作業(yè)便是一種應(yīng)用于電子設(shè)備裝配中的方法論。目前,信息技術(shù)市場流行的方法論有RUP(Rational Unified Process), The Zachman Framework, XP(Extreme Programming)等。在這些方法論中,最流行的要數(shù)RUP。RUP是由Rational Software公司首創(chuàng)的。因它與當(dāng)前流行的JAVA, J2EE技術(shù)和面向?qū)ο蟮脑O(shè)計思想(OOAD)緊密的結(jié)合在一起,所以在大型的信息技術(shù)項目中得到了廣泛的應(yīng)用。在這篇文章中,我們試圖對RUP的特點作一個初步的探討,并且討論它是如何貫穿在整個軟件開發(fā)的生命周期之中的。 RUP最重要的它有三大特點:1)軟件開發(fā)是一個疊代過程,2)軟件開發(fā)是由Use Case驅(qū)動的,3)軟件開發(fā)是以構(gòu)架設(shè)計(Architectural Design)為中心的。 按照傳統(tǒng)的瀑布(Waterfall)開發(fā)模式,軟件開發(fā)大致經(jīng)歷如下幾個步驟:商務(wù)需求分析(Business Requirement Analysis),系統(tǒng)分析(System Analysis),系統(tǒng)設(shè)計(System Design),開發(fā)實現(xiàn)(Implementation),測試(Test),發(fā)布(Deployment),系統(tǒng)支持(Supporting)和系統(tǒng)變更管理(Change Management)。傳統(tǒng)的瀑布開發(fā)模式假定在進行新的開發(fā)過程時,上一個過程已經(jīng)完成,而且不會回到上一個過程。初看起來,這似乎是一個非常合理,高效率的解決方案,但20多年的實踐證明,這個開發(fā)模式存在著很大的弊病,原因是軟件開發(fā)是一個非常復(fù)雜的工程,有諸多的因素影響工程的效率和成敗。軟件開發(fā)需要許多不同背景的個人和團隊參與。由于這些復(fù)雜性,在軟件開發(fā)的整個生命周期中每一個階段都有可能留下隱患和錯誤。如果等到系統(tǒng)已經(jīng)開發(fā)實現(xiàn)完畢,在測試階段發(fā)現(xiàn)了重大問題,這時的返工將會造成人力、物力、財力及時間上的巨大浪費。鑒于以上的考慮,RUP強調(diào)軟件開發(fā)是一個疊代模型(Iterative Model),RUP定義了四個階段(Phase):開端(Inception),闡述(Elaboration),建造(Construction),過渡(Transition)。其中每個階段都有可能經(jīng)歷以上所提到的從商務(wù)需求分析開始的各個步驟,只是每個步驟的高峰期會發(fā)生在相應(yīng)的階段。例如開發(fā)實現(xiàn)的高峰期是發(fā)生在建造階段。實際上這樣的一個開發(fā)方法論是一個二維模型。這種疊代模型的實現(xiàn)在很大程度上提供了及早發(fā)現(xiàn)隱患和錯誤的機會,因此被現(xiàn)代大型信息技術(shù)項目所采用。 RUP 的另一大特征是Use Case 驅(qū)動。Use Case 是RUP方法論中一個非常重要的概念。簡單地說,一個Use Case就是系統(tǒng)的一個功能。例如在一個基于電子商務(wù)的醫(yī)療系統(tǒng)中,病人可以坐在家里通過網(wǎng)上瀏覽器與醫(yī)生約定看病的時間(Make appointment),這樣,“Make appointment”就是系統(tǒng)的一個Use Case。在系統(tǒng)分析和系統(tǒng)設(shè)計中,Use Case被用來將一個復(fù)雜的龐大系統(tǒng)分割、定義成一個個小的單元,這個小的單元就是Use Case,然后以每個小的單元為對象進行開發(fā)。按照RUP, Use Case貫穿整個軟件開發(fā)的生命周期。在商務(wù)需求分析中,客戶或用戶對Use Case進行描述,在系統(tǒng)分布和系統(tǒng)設(shè)計過程中,設(shè)計師對Use Case進行分析,在開發(fā)實現(xiàn)過程中,開發(fā)編程人員對Use Case進行實現(xiàn),在測試過程中,測試人員對Use Case進行檢驗。 RUP的第三大特征是它強調(diào)軟件開發(fā)是以構(gòu)架為中心的。構(gòu)架設(shè)計(Architectural Design)是系統(tǒng)設(shè)計的一個重要組成部分。在構(gòu)架設(shè)計過程中,設(shè)計師(Architect)必須完成對技術(shù)和運行平臺的選取,整個項目的基礎(chǔ)框架(Framework)的設(shè)計,完成對公共組件的設(shè)計,如審計(Auditing)系統(tǒng),日志(Log)系統(tǒng),錯誤處理(Exception Handling)系統(tǒng),安全(Security)系統(tǒng)等。設(shè)計師必須對系統(tǒng)的可擴展性(Extensibility),安全性(Security),可維護性(Maintainability),可延拓性(Scalability),可重用性(Reusability)和運行速度(Performance)提出可行的解決方案。 在RUP方法論中,不同的角色可以從不同的側(cè)面來認識同一個項目。RUP定義了“4+1”個場景(View):Use Case場景(Use Case View),邏輯場景(Logic View),進程場景(process View),實現(xiàn)場景(Implementation View)和發(fā)布場景(Deployment View)。在Use Case場景中,客戶和商務(wù)分析員對Use Case進行描述,在邏輯場景中,設(shè)計師對系統(tǒng)進行分析和設(shè)計,在進程場景中,設(shè)計師對系統(tǒng)可能出現(xiàn)的并發(fā)性,運行速度和分布特性進行描述。實現(xiàn)場景則反映了程序開發(fā)員開發(fā)實現(xiàn)的過程。發(fā)布場景是描述系統(tǒng)管理員和組裝人員實施系統(tǒng)發(fā)布和管理的過程。值得強調(diào)的是,系統(tǒng)構(gòu)架的設(shè)計是在邏輯場景中描述的。 RUP還定義了4個模型,即Use Case模型(Use Case Model),分析模型(Analysis Model),設(shè)計模型(Design Model)和實現(xiàn)模型(Implementation Model)。Use Case模型包含Use Case Diagram和Use Case文檔。Use Case模型是其他三個模型的基礎(chǔ),分析模型即是概念模型(Conceptual Model),是系統(tǒng)分析所得到的結(jié)果,分析模型包含了類圖(Class Diagram),次序圖(Sequence Diagram)以及活動圖(Activity Diagram)。設(shè)計模型則是構(gòu)架設(shè)計和系統(tǒng)設(shè)計的結(jié)果。當(dāng)設(shè)計模型完成后,開發(fā)編程人員便可以進行編程了。設(shè)計模型主要包含了類圖,次序圖和狀態(tài)圖(State Chart Diagrams)。分析模型和設(shè)計模型看起來有許多相似之處,但兩者的含義有本質(zhì)的區(qū)別。分析模型強調(diào)的是問題的范圍,但并不給出解決問題的方案,分析模型并不涉及具體的技術(shù)和平臺。例如它并不關(guān)心是否應(yīng)用EJB或一般的JAVA BEANS,系統(tǒng)是安裝在WebSphere或是在WebLogic。但是與之相反,設(shè)計模型要考慮這些細節(jié),而且要提供解決這些問題的全部方案。當(dāng)然設(shè)計模型是建立在分析模型之上的,分析模型中的一個類可直接映射成為設(shè)計模型中的類,但這種映射關(guān)系一般并不是一一對應(yīng)的,最后一個模型是實現(xiàn)模型。實現(xiàn)模型包含構(gòu)件圖(Component Diagram),從這個模型出發(fā),開發(fā)編程人員可以產(chǎn)生骨架源程序(Skeleton Source Code),也可以從源程序出發(fā)更新設(shè)計模型。 目前應(yīng)用于系統(tǒng)分析和設(shè)計的工具主要有Rational Rose和Together Software Center(TogetherJ)。JAVA和J2EE的開發(fā)工具有IBM Websphere Application Developer(WSAD), Borland Jbuilde和WebGain VisualCafe. WSAD和WebSphere Application Server應(yīng)用在一起,使得服務(wù)器端的排錯和系統(tǒng)的發(fā)布變得非常的容易。Jbuilder和VisualCafe一般與WebLogic Server緊密結(jié)合在一起。目前WebSphere Server和WebLogic Server占據(jù)了Application Server市場的66%,其中WebSphere Server占據(jù)了37%,成為同類產(chǎn)品的No.1。在單位測試和集成測試中,廣泛應(yīng)用的工具和框架有Junit, JunitPerf和Cactus.。 綜上所述,軟件開發(fā)的方法論已經(jīng)成為現(xiàn)代軟件工程過程中不可缺少的一個重要部分。是目前在Java/J2EE和面向?qū)ο蟮拇笮晚椖恐袕V泛被采用的一種方法論。他對整個軟件開發(fā)的生命周期提供了基礎(chǔ)框架和指導(dǎo)。RUP, UML/Rational Rose, Java/J2EE, WSAD, Websphere Application Server和Oracle這樣的技術(shù)、工具和平臺的組合是目前許多公司、政府信息技術(shù)項目中采用的方案。因此,RUP的知識和經(jīng)驗也是現(xiàn)在求知是場所需求的熱門技能。
評論