早在20世紀50年代末期,軟件領域中就出現(xiàn)了迭代模型。最早的迭代過程可能被描述為“分段模型(stagewise model)”,其背景是H.D.Benington領導的美國空軍SAGE項目。
迭代模型是RUP(Rational Unified Process,統(tǒng)一軟件開發(fā)過程,統(tǒng)一軟件過程)推薦的周期模型。在RUP中,迭代被定義為:迭代包括產(chǎn)生產(chǎn)品發(fā)布(穩(wěn)定、可執(zhí)行的產(chǎn)品版本)的全部開發(fā)活動和要使用該發(fā)布必需的所有其他外圍元素。所以,在某種程度上,開發(fā)迭代是一次完整地經(jīng)過所有工作流程的過程:(至少包括)需求工作流程、分析設計工作流程、實施工作流程和測試工作流程。
實質(zhì)上,它類似小型的瀑布式項目。RUP認為,所有的階段(需求及其它)都可以細分為迭代。每一次的迭代都會產(chǎn)生一個可以發(fā)布的產(chǎn)品,這個產(chǎn)品是最終產(chǎn)品的一個子集。迭代的思想如下圖所示。
在現(xiàn)代過程方法XP(eXtreme Programming,極限編程)、RUP無一例外地都推薦、主張采用能顯著減少風險的迭代模型。美國國防部原本提倡瀑布過程和觀點,在發(fā)現(xiàn)那么多采用了瀑布模型的失敗的項目之后,不但放棄了對它的要求,而且從1994年的報告開始,積極地鼓勵采用更加現(xiàn)代化的迭代模型來取代瀑布模型做法。中國中科院也提倡選用迭代模型。
對眾多的開發(fā)模型和過程方法,及權(quán)威機構(gòu)的看法,企業(yè)應選擇什么樣的開發(fā)模型,應慎重對從以下幾方面進行考慮:
1、RUP雖然內(nèi)容極其豐富,定義了選起、精化、構(gòu)建、產(chǎn)品化4個階段和業(yè)務建模、需求、分析設計、實現(xiàn)、測試、部署等9個工種,提供了一大堆的文檔模板,但極易讓人誤解是重型的過程,實施推廣有一定難度。
2、再次,在質(zhì)量管理方面:以實現(xiàn)系統(tǒng)架構(gòu)、核心功能目標的迭代產(chǎn)品生的工作成果作為質(zhì)量控制重點。每次迭代進行系統(tǒng)集成、系統(tǒng)測試,達到對軟件質(zhì)量的持續(xù)驗證。每次系統(tǒng)測試,需要回歸測試前一次迭代遺留發(fā)現(xiàn)的問題。每次迭代發(fā)布的小版本組織客戶(包括內(nèi)部客戶、外部客戶)進行評價,通過演示操作等方式,評價該次迭代是否達到預定的目標,并以此為依據(jù)來制定下一次迭代的目標。
3、最后,在其他方面:每次迭代成果須進行配置管理,版本控制很重要。在整個迭代過程中風險無處不在,建議每周作一次風險跟蹤。同時通過重點關注進度、工作量、滿意度、缺陷等數(shù)據(jù)收集,關注每次迭代情況。
總之,選擇一個合適的生命周期模型,并應用正確的方法,對于任何軟件項目的成功是至關重要。企業(yè)在選擇開發(fā)模型應從項目時間要求、需求明確程度、風險狀況等選擇合適的生命周期模型。
迭代模型的選擇使用條件
1、在項目開發(fā)早期需求可能有所變化。
2、分析設計人員對應用領域很熟悉。
3、高風險項目。
4、用戶可不同程度地參與整個項目的開發(fā)過程。
5、使用面向?qū)ο蟮恼Z言或統(tǒng)一建模語言(Unified Modeling Language,UML)。
6、使用CASE(Computer Aided Software Engineering,計算機輔助軟件工程)工具,如Rose(Rose是非常受歡迎的物件軟體開發(fā)工具。)。
7、具有高素質(zhì)的項目管理者和軟件研發(fā)團隊。
迭代模型的優(yōu)點
與傳統(tǒng)的瀑布模型相比較,迭代過程具有以下優(yōu)點:
1)降低了在一個增量上的開支風險。如果開發(fā)人員重復某個迭代,那么損失只是這一個開發(fā)有誤的迭代的花費。
2)降低了產(chǎn)品無法按照既定進度進入市場的風險。通過在開發(fā)早期就確定風險,可以盡早來解決而不至于在開發(fā)后期匆匆忙忙。
3)加快了整個開發(fā)工作的進度。因為開發(fā)人員清楚問題的焦點所在,他們的工作會更有效率。
4)由于用戶的需求并不能在一開始就作出完全的界定,它們通常是在后續(xù)階段中不斷細化的。因此,迭代過程這種模式使適應需求的變化會更容易些。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |