瀑布模型
瀑布模型要求軟件開發嚴格按照計劃→需求分析→設計→編碼→測試→運行維護的階段進行,每一個階段都可以定義明確的產出物和驗證準則。瀑布模型在每一個階段完成后都可以組織相關的評審和驗證,只有在評審通過后才能夠進入到下一個階段。
特點:
1.軟件開發的各項活動嚴格按照線性方式進行。
2.當前活動接受上一項活動的工作結果。
3.當前活動的工作結果需要進行驗證。
缺點:
1.由于開發模型是線性的,增加了開發的風險。
2.早期的錯誤可能要等到開發后期的階段才能發現。
3.產生大量的文檔
快速原型模型
快速原型模型需要迅速建造一個可以運行的軟件原型,以便理解和澄清問題,使開發人員與用戶達成共識,最終在確定的客戶需求基礎上開發客戶滿意的軟件產品。快速原型模型允許在需求分析階段對軟件的需求進行初步而非完全的分析和定義,快速設計開發出軟件系統的原型,該原型向用戶展示待開發軟件的全部或部分功能和性能;用戶對該原型進行測試評定,給出具體改進意見以豐富細化軟件需求;開發人員據此對軟件進行修改完善,直至用戶滿意認可之后,進行軟件的完整實現及測試、維護。
特點:
1.實現客戶與系統的交互。
2.進一步細化待開發軟件需求。
3.開發人員可以確定客戶的真正需求是什么。
缺點:
1.開發周期長。
2.開發會受到需求的各種影響。
螺旋模型
首先螺旋模型是遵從瀑布模型的。螺旋模型是一種演化軟件開發過程模型,它兼顧了快速原型的迭代的特征以及瀑布模型的系統化與嚴格監控。螺旋模型最大的特點在于引入了其他模型不具備的風險分析,使軟件在無法排除重大風險時有機會停止,以減小損失。同時,在每個迭代階段構建原型是螺旋模型用以減小風險的途徑。螺旋模型更適合大型的昂貴的系統級的軟件應用。
螺旋模型的六個步驟:
1.決定目標,替代方案和約束。
2.識別和解決項目的風險。
3.評估技術方案和替代解決方案。
4.開發本次迭代的交付物和驗證迭代產出的正確性。
5.計劃下一次迭代。
6.提交下一次迭代的步驟和方案。
特點:
1.螺旋模型是將瀑布模型與快速原型模型結合起來。
2.強調了其他模型所忽視的風險分析。
3.每一次螺旋包括4個步驟:制定計劃、風險分析、實施工程、客戶評估。
缺點:
1.很難讓用戶確信這種演化方法的結果是可以控制的。
2.建設周期長。
3.敏捷開發
是一些小公司用的最多的開發模式。敏捷開發以用戶的需求進化為核心,采用迭代、循序漸進的方法進行軟件開發。在敏捷開發中,軟件項目在構建初期被切分成多個子項目,各個子項目的成果都經過測試,具備可視、可集成和可運行使用的特征。換言之,就是把一個大項目分為多個相互聯系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態。
特點:
1.短周期開發。
2.增量開發。
3.由程序員和測試人員編寫的自動化測試來監控開發進度。
4.通過口頭溝通、測試和源代碼來交流系統的結構和意圖。
5.編寫代碼之前先寫測試代碼。也叫做測試先行。
缺點:
1.團隊組建困難,對每個成員的要求都很高。
2.對測試員要求完全掌握各種腳本語言編程,會單元測試。
增量模型
增量模型是把待開發的軟件系統模塊化,將每個模塊作為一個增量組件,從而分批次地分析、設計、編碼和測試這些增量組件。運用增量模型的軟件開發過程是遞增式的過程。相對于瀑布模型而言,采用增量模型進行開發,開發人員不需要一次性地把整個軟件產品提交給用戶,而是可以分批次進行提交。
特點:
1.將待開發的軟件系統模塊化,可以分批次地提交軟件產品,使用戶可以及時了解軟件項目的進展。
2.以組件為單位進行開發降低了軟件開發的風險。一個開發周期內的錯誤不會影響到整個軟件系統。
3.開發順序靈活。開發人員可以對組件的實現順序進行優先級排序,先完成需求穩定的核心組件。當組件的優先級發生變化時,還能及時地對實現順序進行調整。
缺點:
1.容易退化為邊做邊改模型,從而使軟件過程的控制失去整體性。
2.如果增量包之間存在相交的情況且未很好處理,則必須做全盤系統分析。
3.對接口要求很高。
噴泉模型
噴泉模型是一種以用戶需求為動力,以對象為驅動的模型,主要用于描述面向對象的軟件開發過程。該模型認為軟件開發過程自下而上周期的各階段是相互迭代和無間隙的特性。
特點:
1.噴泉模型不像瀑布模型那樣,需要分析活動結束后才開始設計活動,設計活動結束后才開始編碼活動。
2.該模型的各個階段沒有明顯的界限,開發人員可以同步進行開發。
3.可以提高軟件項目開發效率,節省開發時間,適應于面向對象的軟件開發過程。
缺點:
1.由于噴泉模型在各個開發階段是重疊的,因此在開發過程中需要大量的開發人員,因此不利于項目的管理。
2.此外這種模型要求嚴格管理文檔,使得審核的難度加大,尤其是面對可能隨時加入各種信息、需求與資料的情況。
適用范圍
瀑布模型:在開發時間內需求不變化或很少變化。分析設計人員對此領域非常熟悉。低風險項目。用戶使用環境穩定(如系統軟件,工具軟件)。
快速原型模型:需求不明確或復雜系統。用戶無法自主提出應用需求。
螺旋模型:系統龐大,風險高。需求不太明確。
增量模型:系統容易拆分。開發人力比較少。特別適用于商業軟件。
噴泉模型:面向對象的軟件開發過程。
————————————————
優匠科技深耕在互聯?服務領域多年,擁有幾百多家的成功案例與資深的專業技術團隊,能夠幫助企業解決很多技術上的難題。
如有興趣合作或是產品開發需求的朋友,歡迎前來咨詢了解!!