軟體專案在開發時,通常會依照 專案規模、團隊人數、需求變動程度,選擇不同的「軟體開發模式(Software Development Methodology)」。
這些模式主要是為了 規劃開發流程、管理需求、控制風險、提升品質與效率。
一、瀑布式開發(Waterfall Model)
概念
瀑布式開發是最早期、最經典的軟體開發模式。
開發流程 按照固定順序逐步完成,就像水從瀑布一層層流下。
典型流程
1️⃣ 需求分析(Requirement)
2️⃣ 系統設計(Design)
3️⃣ 程式開發(Implementation)
4️⃣ 測試(Testing)
5️⃣ 部署與維護(Maintenance)
特點
優點
- 流程清楚、容易管理
- 文件完整
- 適合大型專案
缺點
- 需求變更困難
- 回頭修改成本高
- 開發周期長
常見應用
- 銀行系統
- 政府專案
- 軍工系統
二、敏捷開發(Agile Development)
概念
敏捷開發是一種 快速迭代、持續交付的開發方法。
核心思想是:
小步快跑、快速回饋、持續改進
開發流程
- 需求 backlog
- Sprint 計畫
- 開發
- 測試
- 發佈
- 回顧
通常 每 1~4 週一個 Sprint
特點
優點
- 能快速應對需求變化
- 開發效率高
- 客戶參與度高
缺點
- 文件較少
- 管理較複雜
- 對團隊能力要求高
常見框架
- Scrum
- Kanban
- Extreme Programming (XP)
常見應用
- Web 開發
- App 開發
- SaaS 系統
三、螺旋模型(Spiral Model)
概念
螺旋模型是 結合瀑布 + 原型開發 + 風險管理 的模式。
每一圈螺旋包含:
1️⃣ 計畫
2️⃣ 風險分析
3️⃣ 開發
4️⃣ 評估
特點
優點
- 風險控制能力強
- 適合大型系統
缺點
- 成本高
- 管理複雜
常見應用
- 軍事系統
- 航空航太
- 大型企業系統
四、V模型(V Model)
概念
V 模型是瀑布模型的改進版。
強調:
每一個開發階段,都有對應的測試階段。
對應關係
| 開發階段 | 測試階段 |
|---|---|
| 需求分析 | 驗收測試 |
| 系統設計 | 系統測試 |
| 架構設計 | 整合測試 |
| 程式開發 | 單元測試 |
特點
優點
- 測試規劃完整
- 品質較高
缺點
- 不容易修改需求
常見應用
- 嵌入式系統
- 醫療設備
- 車用軟體
五、DevOps 開發模式
概念
DevOps 是 開發(Dev)與運維(Ops)的整合模式。
強調:
- 持續整合 CI
- 持續交付 CD
- 自動化部署
DevOps流程
1️⃣ Plan
2️⃣ Code
3️⃣ Build
4️⃣ Test
5️⃣ Release
6️⃣ Deploy
7️⃣ Operate
8️⃣ Monitor
特點
優點
- 快速發布
- 自動化部署
- 穩定運維
缺點
- 建置成本高
- 需要成熟工具鏈
常見工具
CI/CD
- Jenkins
- GitHub Actions
- GitLab CI
容器
- Docker
- Kubernetes
六、原型開發(Prototype Model)
概念
先做一個 可操作的原型(Prototype),讓客戶確認需求。
流程:
1️⃣ 建立原型
2️⃣ 客戶回饋
3️⃣ 修改需求
4️⃣ 開發正式系統
特點
優點
- 客戶理解度高
- 減少需求誤解
缺點
- 原型容易變成正式系統
- 架構可能不佳
常見應用
- UI/UX設計
- 新創產品
- 創新產品