快速原型模型:(需要快速構建壹個工作的軟件原型來理解和闡明問題)
快速原型模型(Rapid prototype model)允許在需求分析階段對軟件需求進行初步的不完整分析和定義,並快速設計和開發軟件系統的原型(展示待開發軟件的全部或部分功能和性能)
(流程:用戶對原型進行測試評估,給出具體的改進建議和豐富詳細的軟件需求,開發人員進行修改完善。)
優勢:
克服瀑布模型的缺點,降低軟件需求不明確帶來的開發風險。
缺點:
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.瀑布模型可用於叠代模型。
根據瀑布模型的階段,軟件測試可以分為單元測試、集成測試和系統測試。
註意:由於每個階段都會產生循環反饋,瀑布模型對於經常變化的項目來說毫無價值,而且這種模型的線性過程過於理想化,已經不適合現代軟件開發模式。