十種軟件開發(fā)模型整理
發(fā)布時(shí)間:2024-11-19閱讀次數(shù):4944
什么是軟件模型
軟件開發(fā)模型(SoftwareDevelopment Model)是指軟件開發(fā)全部過程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。軟件開發(fā)包括需求、設(shè)計(jì)、編碼和測(cè)試等階段,有時(shí)也包括維護(hù)階段。
軟件開發(fā)模型能清晰、直觀地表達(dá)軟件開發(fā)全過程,明確規(guī)定了要完成的主要活動(dòng)和任務(wù),用來作為軟件項(xiàng)目工作的基礎(chǔ)。對(duì)于不同的軟件系統(tǒng),可以采用不同的開發(fā)方法、使用不同的程序設(shè)計(jì)語言以及各種不同技能的人員參與工作、運(yùn)用不同的管理方法和手段等,以及允許采用不同的軟件工具和不同的軟件工程環(huán)境。
軟件模型有哪些
一、瀑布模型
按工序?qū)栴}化簡(jiǎn),將功能的實(shí)現(xiàn)與設(shè)計(jì)分開,便于分工協(xié)作,即采用結(jié)構(gòu)化的分析與設(shè)計(jì)方法將邏輯實(shí)現(xiàn)與物理實(shí)現(xiàn)分開。將軟件生命周期劃分為制定計(jì)劃、需求分析、軟件設(shè)計(jì)、程序編寫、軟件測(cè)試和運(yùn)行維護(hù)等六個(gè)基本活動(dòng),并且規(guī)定了它們自上而下、相互銜接的固定次序。
優(yōu)點(diǎn):
為項(xiàng)目提供了按階段劃分的檢查點(diǎn)。
當(dāng)前一階段完成后,您只需要去關(guān)注后續(xù)階段。
可在迭代模型中應(yīng)用瀑布模型。
它提供了一個(gè)模板,這個(gè)模板使得分析、設(shè)計(jì)、編碼、測(cè)試和支持的方法可以在該模板下有一個(gè)共同的指導(dǎo)。
缺點(diǎn):
各個(gè)階段的劃分完全固定,階段之間產(chǎn)生大量的文檔,極大地增加了工作量。
由于開發(fā)模型是線性的,用戶只有等到整個(gè)過程的末期才能見到開發(fā)成果,從而增加了開發(fā)風(fēng)險(xiǎn)。
通過過多的強(qiáng)制完成日期和里程碑來跟蹤各個(gè)項(xiàng)目階段。
瀑布模型的突出缺點(diǎn)是不適應(yīng)用戶需求的變化。
適用場(chǎng)景:面向過程、需求明確、低風(fēng)險(xiǎn)項(xiàng)目
二、螺旋模型
螺旋模型基本做法是在“瀑布模型”的每一個(gè)開發(fā)階段前引入一個(gè)非常嚴(yán)格的風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)分析和風(fēng)險(xiǎn)控制,它把軟件項(xiàng)目分解成一個(gè)個(gè)小項(xiàng)目。每個(gè)小項(xiàng)目都標(biāo)識(shí)一個(gè)或多個(gè)主要風(fēng)險(xiǎn),直到所有的主要風(fēng)險(xiǎn)因素都被確定。
優(yōu)點(diǎn):
設(shè)計(jì)上的靈活性,可以在項(xiàng)目的各個(gè)階段進(jìn)行變更。
以小的分段來構(gòu)建大型系統(tǒng),使成本計(jì)算變得簡(jiǎn)單容易。
客戶始終參與每個(gè)階段的開發(fā),保證了項(xiàng)目不偏離正確方向以及項(xiàng)目的可控性。
隨著項(xiàng)目推進(jìn),客戶始終掌握項(xiàng)目的最新信息 , 從而他或她能夠和管理層有效地交互。
客戶認(rèn)可這種公司內(nèi)部的開發(fā)方式帶來的良好的溝通和高質(zhì)量的產(chǎn)品。
缺點(diǎn):
很難讓用戶確信這種演化方法的結(jié)果是可以控制的。建設(shè)周期長(zhǎng),而軟件技術(shù)發(fā)展比較快,所以經(jīng)常出現(xiàn)軟件開發(fā)完畢后,和當(dāng)前的技術(shù)水平有了較大的差距,無法滿足當(dāng)前用戶需求。
適用場(chǎng)景:對(duì)于新近開發(fā),需求不明確的情況下,適合用螺旋模型進(jìn)行開發(fā),便于風(fēng)險(xiǎn)控制和需求變更。
三、增量模型
增量模型是把待開發(fā)的軟件系統(tǒng)模塊化,將每個(gè)模塊作為一個(gè)增量組件,從而分批次地分析、設(shè)計(jì)、編碼和測(cè)試這些增量組件。運(yùn)用增量模型的軟件開發(fā)過程是遞增式的過程。相對(duì)于瀑布模型而言,采用增量模型進(jìn)行開發(fā),開發(fā)人員不需要一次性地把整個(gè)軟件產(chǎn)品提交給用戶,而是可以分批次進(jìn)行提交。
優(yōu)點(diǎn):
將待開發(fā)的軟件系統(tǒng)模塊化,可以分批次地提交軟件產(chǎn)品,使用戶可以及時(shí)了解軟件項(xiàng)目的進(jìn)展。
以組件為單位進(jìn)行開發(fā)降低了軟件開發(fā)的風(fēng)險(xiǎn)。
開發(fā)順序靈活。
缺點(diǎn):
軟件產(chǎn)品分批次地進(jìn)行交付。
軟件開發(fā)人員對(duì)應(yīng)用領(lǐng)域不熟悉,難以一次性地進(jìn)行系統(tǒng)開發(fā)。
項(xiàng)目管理人員把握全局的水平較高。
適用場(chǎng)景:漸近開發(fā)、逐步完善、有效規(guī)避技術(shù)風(fēng)險(xiǎn)
四、快速原型模型
增量模型的另一種形式;在開發(fā)真實(shí)系統(tǒng)之前,構(gòu)造一個(gè)原型,在該原型的基礎(chǔ)上,逐漸完成整個(gè)系統(tǒng)的開發(fā)工作。
生命周期:

優(yōu)點(diǎn):
克服瀑布模型的缺點(diǎn),減少由于軟件需求不明確帶來的開發(fā)風(fēng)險(xiǎn)。
缺點(diǎn):
所選用的開發(fā)技術(shù)和工具不一定符合主流的發(fā)展;快速建立起來的系統(tǒng)結(jié)構(gòu)加上連續(xù)的修改可能會(huì)導(dǎo)致產(chǎn)品質(zhì)量低下。
五、迭代模型
迭代包括產(chǎn)生產(chǎn)品發(fā)布(穩(wěn)定、可執(zhí)行的產(chǎn)品版本)的全部開發(fā)活動(dòng)和要使用該發(fā)布必需的所有其他外圍元素。實(shí)質(zhì)上,它類似小型的瀑布式項(xiàng)目。
優(yōu)點(diǎn):
降低了在一個(gè)增量上的開發(fā)風(fēng)險(xiǎn)。
降低了產(chǎn)品無法按照既定進(jìn)度進(jìn)入市場(chǎng)的風(fēng)險(xiǎn)。
加快了整個(gè)開發(fā)工作的進(jìn)度。
迭代過程這種模式使適應(yīng)需求的變化會(huì)更容易些
缺點(diǎn):
項(xiàng)目風(fēng)險(xiǎn)高
六、噴泉模型
噴泉模型主要用于采用對(duì)象技術(shù)的軟件開發(fā)項(xiàng)目。該模型認(rèn)為軟件開發(fā)過程自下而上周期的各階段是相互迭代和無間隙的特性。軟件的某個(gè)部分常常被重復(fù)工作多次,相關(guān)對(duì)象在每次迭代中隨之加入漸進(jìn)的軟件成分。
優(yōu)點(diǎn):
該模型的各個(gè)階段沒有明顯的界限,開發(fā)人員可以同步進(jìn)行開發(fā)??梢蕴岣哕浖?xiàng)目開發(fā)效率,節(jié)省開發(fā)時(shí)間,適應(yīng)于面向?qū)ο蟮能浖_發(fā)過程。
缺點(diǎn):
由于噴泉模型在各個(gè)開發(fā)階段是重疊的,因此在開發(fā)過程中需要大量的開發(fā)人員,因此不利于項(xiàng)目的管理。此外這種模型要求嚴(yán)格管理文檔,使得審核的難度加大,尤其是面對(duì)可能隨時(shí)加入各種信息、需求與資料的情況。
適用場(chǎng)景:面向?qū)ο?/p>
七、V模型
通過開發(fā)和測(cè)試同時(shí)進(jìn)行的方式來縮短開發(fā)周期,提高開發(fā)效率。
優(yōu)點(diǎn):
適用于功能很明確的項(xiàng)目,先有測(cè)試案例,開發(fā)出的程序通過測(cè)試案例進(jìn)行驗(yàn)證
缺點(diǎn):
V模型僅僅把測(cè)試過程作為在需求分析、系統(tǒng)設(shè)計(jì)及編碼之后的一個(gè)階段,忽視了測(cè)試對(duì)需求分析,系統(tǒng)設(shè)計(jì)的驗(yàn)證,需求的滿足情況一直到后期的驗(yàn)收測(cè)試才被驗(yàn)證。
八、敏捷開發(fā)方法
敏捷開發(fā)以用戶的需求進(jìn)化為核心,采用迭代、循序漸進(jìn)的方法進(jìn)行軟件開發(fā)。在敏捷開發(fā)中,軟件項(xiàng)目在構(gòu)建初期被切分成多個(gè)子項(xiàng)目,各個(gè)子項(xiàng)目的成果都經(jīng)過測(cè)試,具備可視、可集成和可運(yùn)行使用的特征。
優(yōu)點(diǎn):
個(gè)體和交互勝過過程和工具
可以工作的軟件勝過面面俱到的文檔
客戶合作勝過合同談判
響應(yīng)變化勝過遵循計(jì)劃
缺點(diǎn):
敏捷注重人員的溝通,忽略文檔的重要性,若項(xiàng)目人員流動(dòng)大太,又給維護(hù)帶來不少難度,特別項(xiàng)目存在新手比較多時(shí),老員工比較累
九、RUP
又稱為統(tǒng)一過程,這是一種基于構(gòu)件開發(fā)的方法。具有用例驅(qū)動(dòng)、以基本架構(gòu)為中心、迭代和增量的特點(diǎn);在時(shí)間上分為四個(gè)連續(xù)的階段,即初始階段、細(xì)化階段、構(gòu)建階段和交付階段。
優(yōu)點(diǎn):
RUP是建立在非常優(yōu)秀的軟件工程原則基礎(chǔ)上的,基于結(jié)構(gòu)化的過程開發(fā)。
RUP提供了幾個(gè)方法,這些方法提供了對(duì)開發(fā)過程的非常直觀的管理。
缺點(diǎn):
RUP僅僅包含了開發(fā)過程,它沒有完全覆蓋軟件過程。
RUP不支持組織內(nèi)的多項(xiàng)目開發(fā),導(dǎo)致組織內(nèi)的大范圍的重用無法實(shí)現(xiàn)。
RUP缺少開發(fā)商的支持。
十、演化模型
根據(jù)用戶的基本需求,通過快速分析構(gòu)造出該軟件的一個(gè)初始可運(yùn)行版本,這個(gè)初始的軟件通常稱之為原型,然后根據(jù)用戶在使用原型的過程中提出的意見和建議對(duì)原型進(jìn)行改進(jìn),獲得原型的新版本。重復(fù)這一過程,最終可得到令用戶滿意的軟件產(chǎn)品。
優(yōu)點(diǎn):
任何功能一經(jīng)開發(fā)就能進(jìn)入測(cè)試以便驗(yàn)證是否符合產(chǎn)品需求。
幫助導(dǎo)引出高質(zhì)量的產(chǎn)品要求。
提供機(jī)會(huì)去采取早期預(yù)防措施,增加項(xiàng)目成功的機(jī)率。
大大有助于早期建立產(chǎn)品開發(fā)的配置管理,均衡整個(gè)開發(fā)過程的負(fù)荷。
提高質(zhì)量與效率。
使用戶可以在新的一批功能開發(fā)測(cè)試后,立即參加驗(yàn)證,以便提供非常有價(jià)值的反饋。
缺點(diǎn):
如果所有的產(chǎn)品需求在一開始并不完全弄清楚的話,會(huì)給總體設(shè)計(jì)帶來困難及削弱產(chǎn)品設(shè)計(jì)的完整性,并因而影響產(chǎn)品性能的優(yōu)化及產(chǎn)品的可維護(hù)性。
如果缺乏嚴(yán)格的過程管理的話,這個(gè)生命周期模型很可能退化為一種原始的無計(jì)劃的“試-錯(cuò)-改”模式。
靈集科技打造本地生活類小程序
十種軟件開發(fā)模型整理
軟件開發(fā)公司的UI/UX設(shè)計(jì)師是什么?有啥區(qū)別?
云醫(yī)互聯(lián)SASS解決方案
九大類企業(yè)管理軟件助力企業(yè)數(shù)字化轉(zhuǎn)型
智慧醫(yī)療:創(chuàng)新驅(qū)動(dòng),引領(lǐng)醫(yī)療健康未來
企業(yè)為什么要做定制化的軟件,找哪家公司好?
內(nèi)蒙古網(wǎng)站建設(shè),打開大眾對(duì)您的“第一印象”
開發(fā)企業(yè)官網(wǎng)有什么作用??jī)?nèi)蒙古網(wǎng)站建設(shè)總結(jié)了兩點(diǎn)
全面分析小程序商城