設計階段沿用分析五層次
Coad-Yourdon 方法在設計階段繼續採用分析階段的五個層次:類別與物件、結構、屬性、服務、主題,確保分析到設計的平滑過渡。
問題論域設計 (核心業務邏輯)
| 步驟 | 活動 | 產出 |
| 1. 復用設計 | 識別可復用框架/元件/模式,避免重複造輪子 | 復用清單、框架選型 |
| 2. 關聯灰色區域 | 連結問題論域相關概念、釐清邊界 | 上下文映射、界限上下文 |
| 3. 加入一般化類別 | 建立類別間協議 (介面/抽象基類別),支援多態替換 | 介面定義、抽象層 |
| 4. 調整繼承支援層級 | 平衡繼承深度與組合,避免過度繼承 | 優化後的繼承階層 |
| 5. 改進效能 | 快取策略、延遲載入、索引設計、非同步模式 | 效能規格、基準測試計畫 |
| 6. 加入低層構件 | 具體資料結構、演算法、工具類別、基礎設施整合 | 實作類別、輔助函式庫 |
使用者介面設計
| 步驟 | 活動 | 產出 |
| 1. 使用者分類 | 角色/人格譜系、權限、技能層級 | 使用者角色模型 |
| 2. 任務腳本 | 描述使用者目標、步驟、例外流程 | 使用案例/用戶旅程圖 |
| 3. 命令層設計 | 定義 UI 命令、快捷鍵、選單結構 | 命令表、選單架構 |
| 4. 詳細交互設計 | 驗證規則、錯誤訊息、回饋機制、無障礙 | 交互規格、原型 |
| 5. 原型擴充 | 高保真原型、可用性測試、迭代修正 | UI 原型、設計系統 |
| 6. HIC 類別設計 | Human-Interaction Class:封裝 UI 邏輯、狀態、驗證 | ViewModel/Presenter/Controller 類別 |
| 7. GUI 設計 | 版面配置、視覺風格、響應式、國際化 | UI 設計稿、元件庫 |
任務管理設計 (併發與同步)
| 步驟 | 活動 | 產出 |
| 1. 識別事件驅動任務 | UI 事件、訊息佇列、中斷、信號 | 事件處理器、非同步工作 |
| 2. 識別時鐘驅動任務 | 定時器、排程作業、輪詢、心跳 | 排程器配置、Cron 運算式 |
| 3. 識別優先/關鍵任務 | 即時性要求、死線、安全關鍵 | 優先級矩陣、即時約束 |
| 4. 識別協調者 | 調解器、編排器、狀態機、Saga 模式 | 協調者類別、狀態圖 |
| 5. 任務評審 | 驗證滿足選擇標準 (回應時間、吞吐、可靠度) | 評審報告、基準測試 |
| 6. 任務定義 | 說明任務類型、同步機制 (鎖/通道/事件)、通訊協定 | 任務規格文件 |
資料管理設計 (持久化)
| 方法 | 適用場景 | 關鍵技術 |
| 檔案管理 | 簡單結構、嵌入式、離線、日誌 | JSON/XML/二進制序列化、隨機存取 |
| 關聯式資料庫 | 交易一致性、複雜查詢、報表、企業級 | SQL/ORM (EF Core/Dapper)、遷移、連線池 |
| 物件資料庫 | 複雜物件圖、模式演進快、原生持久化 | db4o/RavenDB/ObjectBox、OID 映射 |
資料管理具體步驟
- 儲存方式選擇:根據資料結構、查詢模式、一致性要求、團隊技能決策。
- 持久化操作設計:為每個需儲存的物件/類別新增儲存管理屬性/操作 (如
Save(), Load(), Id, Version),定義在類別或 Repository 中。
現代實踐映射
| Coad-Yourdon 組成 | 現代對應 | 關鍵技術/模式 |
| 問題論域 | 領域模型 / 領域驅動設計 (DDD) | 實體/值物件/聚合/領域事件/Repository 模式 |
| 使用者介面 | MVVM / MVC / Blazor / React / MAUI | ViewModel、資料繫結、命令、驗證、元件庫 |
| 任務管理 | 非同步程式設計 / Actor 模式 / 微服務編排 | async/await、Channels、MediatR、MassTransit、Temporal |
| 資料管理 | 資料存取層 / ORM / Event Sourcing | EF Core、Dapper、EventStoreDB、CQRS、讀寫分離 |