model - cccnqu/se107a GitHub Wiki

軟體開發模式

開發流程

  • 四階段:分析 => 實作 => 測試 => 整合上線
  • 更多階段: 構想 => 需求分析 => 系統分析 => 系統設計 => 程式實作 => 單元測試 => 整合測試 => 系統測試 => 上線釋出

開發模式分類

  1. 瀑布模式 (Waterfall Model)
    • 概念 => 需求分析 => 系統分析 => 系統設計 => 程式實作 => 測試 => 驗收上線
  2. 螺旋模式 (Spiral Model)
    • 決定目標 => 辨認解決風險 => 開發測試 => 計畫下一個循環
  3. 演化雛型模式 (Evolutional Prototyping Model)
    • 爬蟲 => 猴子 => 猿人 => 人類
  4. Rational Unified Process (RUP, 統一軟體開發過程)
    • 迭代模型: 構思 => 細化 => 構造 => 交付
    • Iterative Model: Insecption => Elaboration => Construction => Transition
  5. Agile Process (敏捷模式)
    • TDD/BDD : 測試案例 => 實作 => 改善 => 下一個循環

瀑布模式

瀑布模式

螺旋模式

螺旋模式

RUP 的流程

1、商業塑模(Business Modeling) 2、需求(Requirements) 3、分析和設計(Analysis & Design) 4、實作(Implementation) 5、測試(Test) 6、部署(Deployment) 7、配置和變更管理(Configuration & Change Management) 8、專案管理(Project Management) 9、環境(Environment)

如何選擇模型

考慮:

  1. 需求理解程度: Requirement Understanding
  2. 預計生命週期: Expectal lifetime
  3. 風險: Risk
  4. 時程: Schdeule Constraints
  5. 客戶溝通: Interaction with Management/Customer
  6. 專家: Experties

閱讀文獻

其他模型: 快速原型模型

思考

  • 由上而下 v.s 由下而上
  • 有經驗 v.s 沒有足夠經驗
  • 需求固定 v.s 需求變動
  • 大教堂 v.s 市集
  • CMMI v.s 敏捷軟體開發