雷火平台-中国知名电竞赛事平台

0471-4953016
當前位置:首頁-新聞資訊-行業(yè)資訊

十種軟件開發(fā)模型整理

發(fā)布時間:2024-11-19閱讀次數(shù):2403

什么是軟件模型

軟件開發(fā)模型(SoftwareDevelopment Model)是指軟件開發(fā)全部過程、活動和任務的結構框架。軟件開發(fā)包括需求、設計、編碼和測試等階段,有時也包括維護階段。

軟件開發(fā)模型能清晰、直觀地表達軟件開發(fā)全過程,明確規(guī)定了要完成的主要活動和任務,用來作為軟件項目工作的基礎。對于不同的軟件系統(tǒng),可以采用不同的開發(fā)方法、使用不同的程序設計語言以及各種不同技能的人員參與工作、運用不同的管理方法和手段等,以及允許采用不同的軟件工具和不同的軟件工程環(huán)境。

軟件模型有哪些

一、瀑布模型

按工序?qū)栴}化簡,將功能的實現(xiàn)與設計分開,便于分工協(xié)作,即采用結構化的分析與設計方法將邏輯實現(xiàn)與物理實現(xiàn)分開。將軟件生命周期劃分為制定計劃、需求分析、軟件設計、程序編寫、軟件測試和運行維護等六個基本活動,并且規(guī)定了它們自上而下、相互銜接的固定次序。

優(yōu)點:

為項目提供了按階段劃分的檢查點。

當前一階段完成后,您只需要去關注后續(xù)階段。

可在迭代模型中應用瀑布模型。

它提供了一個模板,這個模板使得分析、設計、編碼、測試和支持的方法可以在該模板下有一個共同的指導。

缺點:

各個階段的劃分完全固定,階段之間產(chǎn)生大量的文檔,極大地增加了工作量。

由于開發(fā)模型是線性的,用戶只有等到整個過程的末期才能見到開發(fā)成果,從而增加了開發(fā)風險。

通過過多的強制完成日期和里程碑來跟蹤各個項目階段。

瀑布模型的突出缺點是不適應用戶需求的變化。

適用場景:面向過程、需求明確、低風險項目

二、螺旋模型

螺旋模型基本做法是在“瀑布模型”的每一個開發(fā)階段前引入一個非常嚴格的風險識別、風險分析和風險控制,它把軟件項目分解成一個個小項目。每個小項目都標識一個或多個主要風險,直到所有的主要風險因素都被確定。

優(yōu)點:

設計上的靈活性,可以在項目的各個階段進行變更。

以小的分段來構建大型系統(tǒng),使成本計算變得簡單容易。

客戶始終參與每個階段的開發(fā),保證了項目不偏離正確方向以及項目的可控性。

隨著項目推進,客戶始終掌握項目的最新信息 , 從而他或她能夠和管理層有效地交互。

客戶認可這種公司內(nèi)部的開發(fā)方式帶來的良好的溝通和高質(zhì)量的產(chǎn)品。

缺點:

很難讓用戶確信這種演化方法的結果是可以控制的。建設周期長,而軟件技術發(fā)展比較快,所以經(jīng)常出現(xiàn)軟件開發(fā)完畢后,和當前的技術水平有了較大的差距,無法滿足當前用戶需求。

適用場景:對于新近開發(fā),需求不明確的情況下,適合用螺旋模型進行開發(fā),便于風險控制和需求變更。

三、增量模型

增量模型是把待開發(fā)的軟件系統(tǒng)模塊化,將每個模塊作為一個增量組件,從而分批次地分析、設計、編碼和測試這些增量組件。運用增量模型的軟件開發(fā)過程是遞增式的過程。相對于瀑布模型而言,采用增量模型進行開發(fā),開發(fā)人員不需要一次性地把整個軟件產(chǎn)品提交給用戶,而是可以分批次進行提交。

優(yōu)點:

將待開發(fā)的軟件系統(tǒng)模塊化,可以分批次地提交軟件產(chǎn)品,使用戶可以及時了解軟件項目的進展。

以組件為單位進行開發(fā)降低了軟件開發(fā)的風險。

開發(fā)順序靈活。

缺點:

軟件產(chǎn)品分批次地進行交付。

軟件開發(fā)人員對應用領域不熟悉,難以一次性地進行系統(tǒng)開發(fā)。

項目管理人員把握全局的水平較高。

適用場景:漸近開發(fā)、逐步完善、有效規(guī)避技術風險

四、快速原型模型

增量模型的另一種形式;在開發(fā)真實系統(tǒng)之前,構造一個原型,在該原型的基礎上,逐漸完成整個系統(tǒng)的開發(fā)工作。

生命周期:

優(yōu)點:

克服瀑布模型的缺點,減少由于軟件需求不明確帶來的開發(fā)風險。

缺點:

所選用的開發(fā)技術和工具不一定符合主流的發(fā)展;快速建立起來的系統(tǒng)結構加上連續(xù)的修改可能會導致產(chǎn)品質(zhì)量低下。

五、迭代模型

迭代包括產(chǎn)生產(chǎn)品發(fā)布(穩(wěn)定、可執(zhí)行的產(chǎn)品版本)的全部開發(fā)活動和要使用該發(fā)布必需的所有其他外圍元素。實質(zhì)上,它類似小型的瀑布式項目。

優(yōu)點:

降低了在一個增量上的開發(fā)風險。

降低了產(chǎn)品無法按照既定進度進入市場的風險。

加快了整個開發(fā)工作的進度。

迭代過程這種模式使適應需求的變化會更容易些

缺點:

項目風險高

六、噴泉模型

噴泉模型主要用于采用對象技術的軟件開發(fā)項目。該模型認為軟件開發(fā)過程自下而上周期的各階段是相互迭代和無間隙的特性。軟件的某個部分常常被重復工作多次,相關對象在每次迭代中隨之加入漸進的軟件成分。

優(yōu)點:

該模型的各個階段沒有明顯的界限,開發(fā)人員可以同步進行開發(fā)??梢蕴岣哕浖椖块_發(fā)效率,節(jié)省開發(fā)時間,適應于面向?qū)ο蟮能浖_發(fā)過程。

缺點:

由于噴泉模型在各個開發(fā)階段是重疊的,因此在開發(fā)過程中需要大量的開發(fā)人員,因此不利于項目的管理。此外這種模型要求嚴格管理文檔,使得審核的難度加大,尤其是面對可能隨時加入各種信息、需求與資料的情況。

適用場景:面向?qū)ο?/p>

七、V模型

通過開發(fā)和測試同時進行的方式來縮短開發(fā)周期,提高開發(fā)效率。

優(yōu)點:

適用于功能很明確的項目,先有測試案例,開發(fā)出的程序通過測試案例進行驗證

缺點:

V模型僅僅把測試過程作為在需求分析、系統(tǒng)設計及編碼之后的一個階段,忽視了測試對需求分析,系統(tǒng)設計的驗證,需求的滿足情況一直到后期的驗收測試才被驗證。

八、敏捷開發(fā)方法

敏捷開發(fā)以用戶的需求進化為核心,采用迭代、循序漸進的方法進行軟件開發(fā)。在敏捷開發(fā)中,軟件項目在構建初期被切分成多個子項目,各個子項目的成果都經(jīng)過測試,具備可視、可集成和可運行使用的特征。

優(yōu)點:

個體和交互勝過過程和工具

可以工作的軟件勝過面面俱到的文檔

客戶合作勝過合同談判

響應變化勝過遵循計劃

缺點:

敏捷注重人員的溝通,忽略文檔的重要性,若項目人員流動大太,又給維護帶來不少難度,特別項目存在新手比較多時,老員工比較累

九、RUP

又稱為統(tǒng)一過程,這是一種基于構件開發(fā)的方法。具有用例驅(qū)動、以基本架構為中心、迭代和增量的特點;在時間上分為四個連續(xù)的階段,即初始階段、細化階段、構建階段和交付階段。

優(yōu)點:

RUP是建立在非常優(yōu)秀的軟件工程原則基礎上的,基于結構化的過程開發(fā)。

RUP提供了幾個方法,這些方法提供了對開發(fā)過程的非常直觀的管理。

缺點:

RUP僅僅包含了開發(fā)過程,它沒有完全覆蓋軟件過程。

RUP不支持組織內(nèi)的多項目開發(fā),導致組織內(nèi)的大范圍的重用無法實現(xiàn)。

RUP缺少開發(fā)商的支持。

十、演化模型

根據(jù)用戶的基本需求,通過快速分析構造出該軟件的一個初始可運行版本,這個初始的軟件通常稱之為原型,然后根據(jù)用戶在使用原型的過程中提出的意見和建議對原型進行改進,獲得原型的新版本。重復這一過程,最終可得到令用戶滿意的軟件產(chǎn)品。

優(yōu)點:

任何功能一經(jīng)開發(fā)就能進入測試以便驗證是否符合產(chǎn)品需求。

幫助導引出高質(zhì)量的產(chǎn)品要求。

提供機會去采取早期預防措施,增加項目成功的機率。

大大有助于早期建立產(chǎn)品開發(fā)的配置管理,均衡整個開發(fā)過程的負荷。

提高質(zhì)量與效率。

使用戶可以在新的一批功能開發(fā)測試后,立即參加驗證,以便提供非常有價值的反饋。

缺點:

如果所有的產(chǎn)品需求在一開始并不完全弄清楚的話,會給總體設計帶來困難及削弱產(chǎn)品設計的完整性,并因而影響產(chǎn)品性能的優(yōu)化及產(chǎn)品的可維護性。

如果缺乏嚴格的過程管理的話,這個生命周期模型很可能退化為一種原始的無計劃的“試-錯-改”模式。