常用軟件過程——RUP
RUP是用例驅(qū)動,以架構(gòu)為中心,迭代式開發(fā)過程。
一、用例驅(qū)動
用例(Use Case)是一種通過用戶的使用場景獲得需求的技術(shù)。區(qū)別于傳統(tǒng)的功能分解獲取需求的辦法,用例方法強(qiáng)調(diào)用戶是如何使用系統(tǒng)的,即描述用戶與系統(tǒng)之間的交互,而不涉及系統(tǒng)內(nèi)部的行為。用例的一般表示法是UML用例圖。
用例方法的主要特點(diǎn)有:
- 需求表述的抽象性。用例方法以UML用例圖的形式表示,對于用例、參與者之間的關(guān)系一目了然,能更在一個(gè)高的抽象級別上理解系統(tǒng)。
- 需求表述的完整性。某些用戶可能并不了解他會使用到系統(tǒng)的某個(gè)功能,但UML用例圖將有助于發(fā)現(xiàn)這些問題。
用例驅(qū)動指的是在軟件開發(fā)過程中,采用用例方法捕獲及分析業(yè)務(wù)需求,并確保由它們來驅(qū)動軟件的設(shè)計(jì)、實(shí)現(xiàn)和測試,使最終系統(tǒng)更能滿足最終用戶的需要。
二、以架構(gòu)為中心
軟件架構(gòu)(體系結(jié)構(gòu))是構(gòu)成軟件各部分的組件、組件之間的交互及組件組合的約束。軟件架構(gòu)也關(guān)系到功能性、可用性、系統(tǒng)彈性、性能、可重用性、可理解性等方面。
在RUP開發(fā)的細(xì)化階段,建立一個(gè)健壯架構(gòu)的基礎(chǔ)。在構(gòu)造階段和交付階段,再進(jìn)一步完善架構(gòu)。在整個(gè)開發(fā)過程中,架構(gòu)進(jìn)一步完善。RUP強(qiáng)調(diào)以架構(gòu)為中心,有利用打造一個(gè)可持續(xù)開發(fā)、可持續(xù)維護(hù)的軟件;且最大限度規(guī)避了項(xiàng)目的技術(shù)風(fēng)險(xiǎn)。
三、迭代式開發(fā)
RUP是一個(gè)基于迭代式生命周期模型定義的軟件過程。RUP分為4個(gè)階段,即初始階段、細(xì)化階段、構(gòu)造階段、交付階段。每個(gè)階段可以有多次迭代。在 每次迭代中,包含商業(yè)建模、需求、分析及設(shè)計(jì)、測試、部署等依次進(jìn)行的活動(核心過程工作流),以及配置和變更管理、項(xiàng)目管理、環(huán)境(核心支持工作流)。
由于是迭代式開發(fā),在后一階段就有機(jī)會更正前一階段的錯(cuò)誤和疏漏。但是,這樣會不會產(chǎn)生惰性,導(dǎo)致把更多問題遺留到后續(xù)的迭代中呢?RUP明確定義了各階段的目標(biāo),必須在達(dá)到目標(biāo)后,才能進(jìn)入下一階段:
- 初始階段,目標(biāo)是確定項(xiàng)目邊界。
- 細(xì)化階段,目標(biāo)是分析業(yè)務(wù)領(lǐng)域以確定架構(gòu),并編制明細(xì)項(xiàng)目計(jì)劃。
- 在構(gòu)建階段,目標(biāo)是構(gòu)造可運(yùn)行的代碼,并集成測試。
- 交付階段的重點(diǎn)是確保軟件對最終用戶是可用的。
http://www.caixiaodong.com/archives/87.html
RUP的缺點(diǎn):
RUP的優(yōu)點(diǎn)很多。用例驅(qū)動對需求管理非常有利,能夠確保需求在與用戶交互時(shí)、系統(tǒng)實(shí)現(xiàn)時(shí)均不被遺漏;以架構(gòu)為中心有利于打造一個(gè)強(qiáng)健的系統(tǒng),而不會因系統(tǒng)規(guī)模增大而倒塌;迭代式開發(fā)有效消解了風(fēng)險(xiǎn)。那么,RUP還有什么不完美的嗎?
對于我們這些行業(yè)應(yīng)用軟件開發(fā)者來說,RUP過于復(fù)雜。
用例驅(qū)動。用例分析作為一項(xiàng)軟件技術(shù),遠(yuǎn)遠(yuǎn)比功能分解復(fù)雜。大部分需求人員不具備編寫用例的能力,用戶多數(shù)看不懂用例。因此,在交互過程中,傳統(tǒng)以功能列表描述為主的《需求規(guī)格說明書》應(yīng)用更加廣泛。
以架構(gòu)為中心。對于業(yè)務(wù)邏輯非常復(fù)雜的系統(tǒng),打造一個(gè)強(qiáng)健的架構(gòu)是必須的。但對于一些業(yè)務(wù)邏輯相對簡單,而用戶交互邏輯復(fù)雜的系統(tǒng),過于強(qiáng)調(diào)架構(gòu)似乎沒有必要。例如,對于一個(gè)有著很多模塊的網(wǎng)站,各個(gè)模塊相對獨(dú)立,訪問各自的表,維護(hù)一套用例圖、類圖、時(shí)序圖就成為累贅。
迭代式開發(fā)。迭代式開發(fā)作為消解風(fēng)險(xiǎn)是非常必要的。RUP迭代中的6個(gè)核心工作流和3個(gè)核心支持工作流過于繁 雜,必須為每個(gè)工作流指定其執(zhí)行者。雖然RUP指出這些工作流在每次迭代中并不都是必須的,但對于一個(gè)嚴(yán)謹(jǐn)?shù)能浖^程來說,給予項(xiàng)目經(jīng)理過多的裁剪權(quán),也 意味著為項(xiàng)目引入新的風(fēng)險(xiǎn)。
本文僅代表作者觀點(diǎn),版權(quán)歸原創(chuàng)者所有,如需轉(zhuǎn)載請?jiān)谖闹凶⒚鱽碓醇白髡呙帧?/p>
免責(zé)聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請及時(shí)與我們聯(lián)系進(jìn)行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com





