軟件開發(fā)七大過程模型
一.瀑布模型
瀑布模型嚴(yán)格遵循軟件生命周期各階段的固定順序:計劃、分析、設(shè)計、編程、訓(xùn)試和維護,上一階段完成后才能進(jìn)入到下一階段, 整個模型就像一個飛流直下的瀑布。
瀑布模型的過程如下圖:
瀑布模型有許多優(yōu)點:
可強迫開發(fā)人員采用規(guī)范的方法:
嚴(yán)格規(guī)定了各階段必須提交的文檔:
要求每個階段結(jié)束后,都要進(jìn)行嚴(yán)格的評審。
但這也造就了瀑布模型過于理想化,而且缺之靈活性,無法在開發(fā)過程中逐漸明確用戶難以確切表達(dá)或一時難以想到的需求,直到軟件開發(fā)完成之后才發(fā)現(xiàn)與用戶需求有很大距離,此時必須付出高額的代價才能糾正這一偏差,這開發(fā)模型主要適用于需求非常明確的應(yīng)用。
二、噴泉模型
噴泉模型主要用于描述面向?qū)ο蟮拈_發(fā)過程,“噴泉”一詞體現(xiàn)了面向?qū)ο箝_發(fā)過程的迭代和無間隙特征。迭代意味著模型中的開發(fā)活動常常需要多次重復(fù),每次重復(fù)都會增加或明確一些目 標(biāo)系統(tǒng)的性質(zhì),但卻不是對先前工作結(jié)果的本質(zhì)性改動。無間隱是指在開發(fā)活動(如分析、設(shè)計、編程)之間不存在明顯的邊界,而是允許各開發(fā)活動交叉、迭代地進(jìn)行。
噴泉模型具有的優(yōu)點是:
無縫、可同步開發(fā),提高開發(fā)效率,節(jié)省開發(fā)時間,適用于面向?qū)ο蟮能浖_發(fā)。
但是對于這樣的模型同樣是具有缺點的:
在軟件開發(fā)過程中可能隨時會增加各種信息、需求和資料,需要嚴(yán)格管理文檔,這樣就造成了審核的難度逐漸增大。
三、快速原型模型
快速原型模型對于許多需求不夠明確的項目,比較適合采用該模型。它采用了一種動態(tài)定義需求的方法,通過快速地建立個能夠反映用戶主要需求的軟件原型,讓用戶在計算機上使用它,了解其概要,再根據(jù)反饋的結(jié)果進(jìn)行修改,因此能夠充分體現(xiàn)用戶的參與和決策。原型化人員對原型的實施很重要,衡量他們的重要標(biāo)準(zhǔn)是能否從用戶的模糊描述中快速地獲取實際的需求。
快速原型模型的優(yōu)點是:
由于該模型是通過原型與用戶進(jìn)行交互,所以在確定需求上優(yōu)于瀑布模型,通過開發(fā)原型和演示原型對開發(fā)者和使用者了解系統(tǒng)都有積極作用。同時最重要的一點是有的軟件原型可以成為最終產(chǎn)品的一部分。
但是由于該模型開發(fā)特有的特點,也使得它快速建立的系統(tǒng)結(jié)構(gòu)加上連續(xù)的修改可能導(dǎo)致軟件質(zhì)量低下,原型系統(tǒng)的內(nèi)部結(jié)構(gòu)可能不好。
四、增量模型
增量模型(演化模型)也是一 種原型化開發(fā)方法,但與快速原型模型略有不同。在快速原型模型中,原型的用途是獲知用戶的真正需求,一 旦需求確定了,原型即被拋棄。而演化模型的開發(fā)過程,則是從初始模型逐步演化為最終軟件產(chǎn)品的漸進(jìn)過程。也就是說,快速原型模型是一種“拋棄式”的原型化方法,而增量模型則是一種“漸進(jìn)式”的原型化方法。
增量模型所具有的優(yōu)點是:
較短的時間內(nèi)向用戶提交可完成的有用工作產(chǎn)品,從而保證用戶有充裕的時間學(xué)習(xí)適應(yīng)產(chǎn)品,軟件結(jié)構(gòu)必須開放,能夠方便向現(xiàn)有產(chǎn)品加入新構(gòu)件。但也正是這樣的一個要求也稱為了增量模型開發(fā)的一個缺點,即在軟件開發(fā)的過程中,向現(xiàn)有產(chǎn)品中加入新構(gòu)件是十分不便的。
五、螺旋模型
螺旋模型結(jié)合瀑布模型和增量模型的優(yōu)點,最主要的特點在于加入了風(fēng)險分析。它是由制訂計劃、風(fēng)險分析、實施工程、客戶評估這循環(huán)組成的, 它最初從概念項目開始策一個螺旋, 這種開發(fā)模型將風(fēng)險分析作為個單獨的階段來做,比較適合風(fēng)險救大的大中型的軟件開發(fā)項目。
根據(jù)螺旋模型開發(fā)的特點,我們其實就可以得出螺旋模型的優(yōu)點就是對于大型軟件開發(fā)項目具有較好的風(fēng)險控制。
但是同樣也就是這樣的一個優(yōu)點所造成了的缺點是,開發(fā)人員需要有風(fēng)險評估的經(jīng)驗,契約開發(fā)通常需要指定過程模型和發(fā)布產(chǎn)品。
六、Rational統(tǒng)一模型
Rational統(tǒng)一過程是一個二維生命周期模型,該過程強調(diào)以迭代和增量的方法開發(fā)軟件,
該模型的優(yōu)點是:不斷的版本發(fā)布成為一種團隊日常工作的真正驅(qū)動力,將發(fā)現(xiàn)問題、制定方案和解決過程集成到下一次迭代,使用迭代開發(fā),能夠降低開發(fā)風(fēng)險。能夠更好的安排產(chǎn)品開發(fā)的輔助過程。
七、微軟過程模型
規(guī)劃階段:微軟過程模型開展市場調(diào)查研究,結(jié)合公司戰(zhàn)略形成產(chǎn)品的遠(yuǎn)景目標(biāo),
設(shè)計階段:根據(jù)產(chǎn)品遠(yuǎn)景目標(biāo),完成軟件規(guī)格說明和總體設(shè)計,確定產(chǎn)品開發(fā)的主要進(jìn)度。
開發(fā)階段:主要則是完成產(chǎn)品中所有構(gòu)件的研發(fā),穩(wěn)定階段實行全面的內(nèi)部和外部測試,最終形成可發(fā)布的RTM版本。
發(fā)布階段:確定產(chǎn)品質(zhì)量符合發(fā)布標(biāo)準(zhǔn)后,發(fā)布產(chǎn)品及其相關(guān)消息。
該模型采用漸進(jìn)式的開發(fā)策略,解決問題的及時性、不確定性和變更因素的可控性,縮短產(chǎn)品上市周期。
好了,關(guān)于軟件開發(fā)的七大過程模型就和大家分享這些,之后還會使用具體的項目案例針對每一種模型進(jìn)行剖析。
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Springboot視頻接口報大量的ClientAbortException找不到原因的解決
本文主要介紹了Springboot視頻接口報大量的ClientAbortException找不到原因的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08spring整合JMS實現(xiàn)同步收發(fā)消息(基于ActiveMQ的實現(xiàn))
本篇文章主要介紹了spring整合JMS實現(xiàn)同步收發(fā)消息(基于ActiveMQ的實現(xiàn)),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10SpringBoot對靜態(tài)資源的映射規(guī)則詳解解讀
這篇文章主要介紹了SpringBoot對靜態(tài)資源的映射規(guī)則詳解解讀,在Spring Boot中,映射規(guī)則是用來定義URL與控制器方法之間的映射關(guān)系的,通過映射規(guī)則,可以將特定的URL請求映射到相應(yīng)的控制器方法上,從而實現(xiàn)請求的處理和響應(yīng)的返回,需要的朋友可以參考下2023-10-10Mybatis-Plus根據(jù)自定義注解實現(xiàn)自動加解密的示例代碼
我們把數(shù)據(jù)存到數(shù)據(jù)庫的時候,有些敏感字段是需要加密的,從數(shù)據(jù)庫查出來再進(jìn)行解密,如果我們使用的是Mybatis框架,那就跟著一起探索下如何使用框架的攔截器功能實現(xiàn)自動加解密吧,需要的朋友可以參考下2024-06-06