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