瀑布模型,像工廠流水線一樣把軟件開發分層化

    瀑布模型是現代軟件工程的起源,軟件工程的發展,很大部分都是構建於瀑布模型的基礎之上的。起源是1970年,Winston Royce博士借鑑了建築工程領域的思想,提出了瀑布開發模型,指出軟件開發應有完整週期,把軟件開發過程分成了若干階段,類似於瀑布一樣,從上往下,完成一個階段繼續下一個階段。

    https://static001.geekbang.org/resource/image/cc/0c/ccb6fe9bcfa001b27d8c1921b5b2180c.jpg

瀑布模型把整個項目過程分成了六個主要階段:

一、問題的定義及規劃

    本階段是需求方和開發方共同確定軟件開發目標,同時做可行性研究,以確定項目可行,這個階段產生需求文檔和可行性研究報告

二、需求分析

    對需求方提出的所有需求要進行詳細分析和反覆確認,以保證能夠充分理解客戶需求,最終形成需求分析文檔。

三、軟件設計

    根據需求分析結果,對整個軟件系統進行抽象和設計,如系統框架設計、數據庫設計等,最終形成架構設計文檔

四、程序編碼

    將架構設計和界面設計的結果轉換成計算機能運行的程序代碼

五、軟件測試

    編碼完成後對可運行的結果對照需求分析文檔進行嚴密測試,提Bug單,最終形成測試報告

六、運行維護

    軟件開發完成正式投入使用,後續需要繼續維護、修復錯誤和增加功能,交付時需要提供使用說明文檔

瀑布模型因其簡單可行,切實有效,在很多軟件項目中快速應用起來,也有了“軟件生命週期(Software Life Cycle,SLC)”概念。現在雖然瀑布模型已經不是最主流的開發模式,但是不管什麼開發模式,需求、設計、編碼和測試這四項活動都是起源於瀑布模型,也是瀑布模型中核心的部分。

    瀑布模型最大問題也就是不能及時響應需求變更,越到後期變更代價越大,而且通常要到後期才能看到項目結果是什麼樣子;這樣會導致開發和測試階段加班特別嚴重。

https://static001.geekbang.org/resource/image/88/5c/881b21fa452df38da1604f5a6b55d65c.jpg

總結:

    瀑布模型的出現,解決了軟件項目開發中的幾個重要問題:

  1. 讓軟件開發過程有序可控。瀑布模型每個階段都有明確任務、交付產物和里程碑,整個過程可控,及早發現問題
  2. 讓分工協作變成可能。瀑布模型的六個階段,讓軟件開發產生基礎分工:項目經理、產品經理、架構師、軟件工程師、測試工程師、運維工程師。
  3. 質量有保障。瀑布模型每個階段都需要交付相應的文檔,文檔的撰寫和評審在動手之前都會把問題溝通清楚,編碼結束後有嚴格的測試,測試驗收通過才能部署上線,這讓軟件質量更有保障。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章