軟件工程之美3講——瀑布模型:像工廠流水線一樣把軟件開發分層化

軟件工程之美3講——瀑布模型:像工廠流水線一樣把軟件開發分層化

瀑布模型的誕生

爲了解決軟件危機中的這些問題,在 1970 年,Winston Royce 博士借鑑了其他工程領域的思想,比如建築工程,提出了瀑布開發模型,指出軟件開發應有完整之週期,並將軟件開發過程分成了若干階段。像瀑布一樣,從上往下,完成一個階段繼續下一個階段。
瀑布模型把整個項目過程分成了六個主要階段:

  • 一、問題的定義及規劃

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

  • 二、需求分析
    對需求方提出的所有需求,進行詳細的分析。這個階段一般需要和客戶反覆確認,以保證能充分理解客戶需求。最終會形成需求分析文檔。
  • 三、軟件設計

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

  • 四、程序編碼
    將架構設計和界面設計的結果轉換成計算機能運行的程序代碼。
  • 五、軟件測試
    在編碼完成後,對可運行的結果對照需求分析文檔進行嚴密的測試。如果測試發現問題,需要修復。最終測試完成後,形成測試報告。
  • 六、運行維護
    軟件開發完成,正式運行投入使用。後續需要繼續維護,修復錯誤和增加功能。交付時需要提供使用說明文檔。瀑布模型在提出後,因爲其簡單可行,切實有效,馬上就在很多軟件項目中應用起來,一直到 2000 年前後,都是最主流的軟件開發模型,即使到現在,你也能在很多軟件項目中看到它的影子。

瀑布模型的優點和缺點?

  • 優點
    簡單易行
    可以按照階段檢查,能及時發現問題
    前一個階段完成後,就可以重點關注下一個階段
    有很好的分式協作
    對質量有保障

  • 缺點
    難以響應需求的變更,當需求發生改變時,越到後期代價越大.
    工作量分佈不均衡
    例如前期開發、測試人員無法參與,而後期開發、測試人員又特別忙碌。
    前期進度受阻,會一直壓縮後續階段時間,導致延期或影響質量。
    一直到最後階段才能看到結果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章