軟體過程定義了開發與維護的階段、方法、工具、實踐與產出物。有效的過程能提升生產力、品質、降低成本與風險。RUP (Rational Unified Process) 由「三駕馬車」Booch、Rumbaugh、Jacobson 於 Objectory 基礎上演化而來,並與 UML 緊密結合,成為物件導向開發的事實標準。本文系統梳理 RUP 的二維模型、生命週期階段、里程碑與核心工作流。
RUP 以時間為橫軸 (動態結構),以內容/邏輯活動為縱軸 (靜態結構):
| 維度 | 術語 | 關注點 |
|---|---|---|
| 橫軸 (時間) | 週期、階段、迭代、里程碑 | 專案何時做什麼、決策點 |
| 縱軸 (內容) | 活動、產出物、工作者、工作流 | 專案誰做什麼、產出什麼 |
每個階段結束於一個主要里程碑,執行評估決定是否進入下一階段。
貫穿全生命週期,每個迭代中按比例投入:
| 工作流 | 核心活動 | 關鍵產出物 |
|---|---|---|
| 業務建模 | 領域分析、業務用例、業務流程圖 | 業務用例模型、術語表 |
| 需求 | 利害關係人識別、用例撰寫、補充規格、變更管理 | 用例模型、補充規格文件、詞彙表 |
| 分析與設計 | 架構設計、類別/序列/狀態圖、設計模式應用、元件劃分 | 設計模型、架構文件、介面規格 |
| 實作 | 程式碼撰寫、單元測試、建置腳本、配置管理 | 原始碼、可執行檔、建置日誌 |
| 測試 | 測試計畫、測試案例設計、自動化腳本、缺陷追蹤、效能/壓力測試 | 測試計畫、測試報告、缺陷報告 |
| 部署 | 安裝腳本、使用者手冊、操作指南、資料遷移、支援移交 | 部署模型、安裝媒體、使用者文件 |
支援工作流:配置與變更管理、專案管理、環境建置。
| 優點 | 缺點/挑戰 |
|---|---|
| 完整、規範、工具整合度高 (Rational 工具鏈) | 流程較重、文件產出量大、學習曲線陡峭 |
| 風險驅動、架構優先、迭代增量 — 符合現代工程實踐 | 中小專案/敏捷團隊常感過度設計、儀式化 |
| 可裁剪 — 依專案規模/類型裁減工作流/產出物 | 裁剪需經驗,錯誤裁剪導致關鍵活動缺失 |
| 與 UML 無縫整合,模型驅動開發 (MDA) 基礎 | 商業授權成本高;開源替代 (OpenUP, EPF) 社群較小 |
RUP 不是銀彈,但它提供了一個結構化、可裁剪、風險驅動的知識框架。理解其二維模型、四階段里程碑、六大核心工作流,能幫助團隊在「無過程混亂」與「過度流程僵化」之間找到平衡點,構建適合自身情境的軟體工程方法論。