软件开发模式有哪些
軟件開發(fā)模式有哪些?
快速原型模型:(需要迅速造一個可以運行的軟件原型,以便理解和澄清問題)
快速原型模型允許在需求分析階段對軟件的需求進行初步的非完全的分析和定義,快速設(shè)計開發(fā)出軟件系統(tǒng)的原型(展示待開發(fā)軟件的全部或部分功能和性能
(過程:用戶對該原型進行測試評定,給出具體改善的意見以及豐富的細(xì)化軟件需求,開發(fā)人員進行修改完善)
優(yōu)點:
克服瀑布模型的缺點,減少由于軟件需求不明確帶來的開發(fā)風(fēng)險
缺點:
A、所選用的開發(fā)技術(shù)和工具不一定符合主流的發(fā)展
B、快速建立起來的系統(tǒng)加上連續(xù)的修改可能會造成產(chǎn)品質(zhì)量底下
增量模型:(采用隨著日程時間的進展而交錯的線性序列,每一個線性徐磊產(chǎn)生軟件的一個可發(fā)布的“增量”,第一個增量往往就是核心的產(chǎn)品)
與其他模型共同之處:它與原型實現(xiàn)模型和其他演化方法一樣,本質(zhì)都是迭代
與原型實現(xiàn)模型不同之處:它強調(diào)每一個增量均發(fā)布一個可操作產(chǎn)品,(它不需要等到所有需求都出來,只要摸個需求的增量包出來即可進行開發(fā))
優(yōu)點:
1、人員分配靈活,一開始不需要投入大量人力資源
2、當(dāng)配備人員不能在限定的時間內(nèi)完成產(chǎn)品時,它可以提供一種先推出核心產(chǎn)品的途徑,可現(xiàn)發(fā)布部分功能給用戶(對用戶起鎮(zhèn)靜作用)
3、增量能夠有計劃的管理技術(shù)風(fēng)險
缺點:
1、如果增量包之間存在相交的情況且未很好處理,則必須做全盤系統(tǒng)分析
注:
這種模型將功能細(xì)化后分別開發(fā)的方法較適應(yīng)于需求經(jīng)常改變的軟件開發(fā)過程
原型模型:(樣品模型,采用逐步求精的方法完善原型)
主要思想:
先借用已有系統(tǒng)作為原型模型,通過“樣品”不斷改進,使得最后的產(chǎn)品就是用戶所需要的。原型模型通過向用戶提供原型獲取用戶的反饋,使開發(fā)出的軟件能夠真正反映用戶的需求,
采用方法:
原型模型采用逐步求精的方法完善原型,使得原型能夠“快速”開發(fā),避免了像瀑布模型一樣在冗長的開發(fā)過程中難以對用戶的反饋作出快速的響應(yīng)
優(yōu)點:
?? (1)開發(fā)人員和用戶在“原型”上達成一致。這樣一來,可以減少設(shè)計中的錯誤和開發(fā)中的風(fēng)險,也減少了對用戶培訓(xùn)的時間,而提高了系統(tǒng)的實用、正確性以及用戶的滿意程度。
(2)縮短了開發(fā)周期,加快了工程進度。
(3)降低成本。
缺點:
1、當(dāng)重新生產(chǎn)該產(chǎn)品時,難以讓用戶接收,給工程繼續(xù)開展帶來不利因素。
2、不宜利用原型系統(tǒng)作為最終產(chǎn)品。采用原型模型開發(fā)系統(tǒng),用戶和開發(fā)者必須達成一致:
噴泉模型:(以用戶需求為動力,以對象為驅(qū)動的模型,主要用于采用對象技術(shù)的軟件開發(fā)項目)
它認(rèn)為軟件開發(fā)過程自下而上周期的各階段是相互迭代和無間隙的特性
相互迭代:軟件的摸個部分常常被重復(fù)工作多次,相關(guān)對象在每次迭代中隨之加入漸進的軟件成分
無間隙:它在各項活動之間沒有明顯邊界(如分析和設(shè)計活動之間<由于對象概念的應(yīng)用,表達分析,設(shè)計,實現(xiàn)等活動只用對象類和關(guān)系>)
優(yōu)點:
1、可以提高軟件項目開發(fā)效率,節(jié)省開發(fā)時間,適應(yīng)于面向?qū)ο蟮能浖_發(fā)過程
不便之處:
1、由于噴泉模型在各個開發(fā)階段是重疊的,因此在開發(fā)過程中需要大量的開發(fā)人員,因此不利于項目的管理。
2、這種模型要求嚴(yán)格管理文檔,使得審核的難度加大,尤其是面對可能隨時加入各種信息、需求與資料的情況
螺旋模型:(適合用于需求經(jīng)常變化的項目<適合于大型復(fù)雜的系統(tǒng)>)
它主要是風(fēng)險分析與評估,沿著螺線進行若干次迭代,
過程:
1、制定計劃:確定軟件目標(biāo),選定實施方案,弄清項目開發(fā)的限制條件
2、風(fēng)險分析:分析評估所選方案,考慮如何識別和消除風(fēng)險
3、實施工程:實施軟件開發(fā)和驗證;
4、客戶評估:評價開發(fā)工作,提出修正建議,制定下一步計劃。
優(yōu)點:
1、它由風(fēng)險驅(qū)動,強調(diào)可選方案和約束條件從而支持軟件的重用,有助于將軟件質(zhì)量作為特殊目標(biāo)融入產(chǎn)品開發(fā)中
缺點:
1、難以讓用戶確信這種煙花方法的結(jié)果是可以控制的
2、建設(shè)周期長(而軟件技術(shù)發(fā)展比較快,所以經(jīng)常會出現(xiàn)軟件開發(fā)完畢后,和當(dāng)前的技術(shù)水平有很大的差距,無法滿足當(dāng)前用戶的需求)
3、除非軟件開發(fā)人員擅長尋找可能的風(fēng)險,準(zhǔn)確的分析風(fēng)險,否則將會帶來更大的風(fēng)險
瀑布模型:(從本質(zhì)來講,瀑布模型是一個軟件開發(fā)架構(gòu),重復(fù)應(yīng)用)
(核心思想:按工序?qū)栴}化簡,將功能的實現(xiàn)與設(shè)計分開,便于分工協(xié)作,采用結(jié)構(gòu)化的分析與設(shè)計方法將邏輯實現(xiàn)與物理實現(xiàn)分開,依照軟件生命周期自上而下,相互銜接的次序<如同瀑布流水逐級下落>)
缺點:
1、在項目各個階段之間極少有反饋,各個階段的劃分完全固定,階段之間產(chǎn)生大量的文檔,增加了工作量
2、用戶只有在項目生命周期的后期才能看到結(jié)果,增加了開發(fā)的風(fēng)險
3、需要過多的強制完成日期和里程碑來跟蹤各個項目的階段
4、在每個階段都會產(chǎn)生循環(huán)反饋
(如果有信息未被覆蓋或是發(fā)現(xiàn)問題了,必須返回到上一個階段<甚至更前面的活動>并進行適當(dāng)?shù)男薷?/span>,只有當(dāng)上一階段都被確認(rèn)后才進行下一階段)
5、早期的錯誤可能要等到開發(fā)后期的測試階段才能發(fā)現(xiàn),進而帶來嚴(yán)重的后果
優(yōu)點:
1、為項目提供了按階段分的檢查點
2、當(dāng)完成一個階段后,只需要去關(guān)注后續(xù)階段
3、可在迭代模型中應(yīng)用瀑布模型
按照瀑布模型的階段劃分,軟件測試可以分為單元測試,集成測試,系統(tǒng)測試
注:由于每個階段都會產(chǎn)生循環(huán)反饋,對于經(jīng)常變化的項目而言,瀑布模型毫無價值,這種模型的線性過程太理想化,已不適合現(xiàn)代的軟件開發(fā)模式。
?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
- 上一篇: K50宇宙最强旗舰!疑似Redmi K5
- 下一篇: 22/28nm芯片雪上加霜:联电涨价6%