---
# System prepended metadata

title: 瀑布式開發
tags: [軟體開發模型]

---

# 瀑布式開發
###### tags: `軟體開發模型`

瀑布模型（Waterfall Model）最早強調軟體或系統開發應有完整之週期，且必須完整的經歷週期之每一開發階段，並系統化的考量分析與設計的技術、時間與資源之投入等。由於該模式強調系統開發過程需有完整的規劃、分析、設計、測試及檔案等管理與控制，因此能有效的確保系統品質，它已經成為軟體業界大多數軟體開發的最初標準（Boehm, 1988）。

瀑布模型將軟體生命周期劃分為：
1. 需求定義（Requirements）
2. 設計（Design）
3. 實作（Implementation）
4. 整合與測試（Verification）
5. 移交與維護（Maintenance）

在瀑布式開發的模型中，使用預測性的設計流程，各項階段嚴格按照線性方式，像瀑布一樣由上往下進行，建立嚴謹、標準的開發流程，易於分工及責任歸屬。每個階段皆須進行驗證，若驗證結果通過則進行下一個階段，反之則回頭修改。

瀑布模型強調文檔的作用，每個階段之間產生大量的資料並進行驗證，在開發過程中背負著大量的工作量。由於固定的階段劃分，要回到上個階段做更改或修正都有一定的難度。由於開發過程是線性的，用戶只有等到整個過程的末期才能見到開發成果，且不適應客戶所要求的變化，進而增加了開發的風險。

線性認知是人們做容易掌握且熟練應用的思想方法，將一個複雜的結構及邏輯將其分解或轉化為各個物件或區塊，將各物件或區塊串聯成線性並逐個解決。

瀑布模型的優點
* 簡單易懂，易於使用
* 每個階段都有一個特定的可交付和稽核流程
* 開發階段將僅在設計階段完成時開始。
* 階段不重疊

瀑布模型的缺點
* 版本發布時間長
* 只有在完成所有階段後才會發布產品
* 制定計畫的時機太長，但計畫卻不夠準確
* 在版本發布中期很難做修改