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