首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

Coad-Yourdon 面向物件分析流程詳解:五層次 15 步驟與類別/結構/屬性/服務/主題識別指南

     編輯:關於C#

方法論定位

Coad-Yourdon 方法建立在資訊模型化、面向物件程式設計、知識庫系統基礎上,分為 OOA (分析) 與 OOD (設計) 兩階段。分析階段輸出概念模型,由相關類別組成,採自頂向下分解或自底向上構造。

OOA 兩大核心任務

  1. 形式化說明應用問題 → 識別軟體系統基本構成物件、規則與約束。
  2. 明確規定物件如何協作完成指定功能 → 定義訊息流、協作契約。

五層次詳細步驟與產出 (共 15 步驟)

層次 1:類別與物件識別 (3 步驟)

  1. 從應用領域出發:逐步確定形成整個應用基礎的類別與物件。
  2. 分析目標系統責任:系統必須做什麼、負責什麼業務結果。
  3. 調查系統環境:外部介面、使用者角色、法規約束、技術平台,確定有用的類別/物件。

層次 2:結構識別 (3 步驟)

  1. 識別一般-特殊結構:基類別 (一般) → 衍生類別 (特殊),is-a 關係。
  2. 識別整體-部分結構:聚合 (整體-部分,生命週期獨立) / 組合 (強擁有,生命週期綁定)。
  3. 繪製結構圖:UML 類別圖呈現繼承與聚合/組合關係。

層次 3:屬性識別 (4 步驟)

  1. 對每個物件識別所需屬性:狀態資訊、業務意義。
  2. 安排屬性至適當類別:避免重複、確保內聚。
  3. 識別實例連接:物件間導航路徑 (如 Order → Customer)。
  4. 檢查與定義限制:唯讀、值域、格式、單位、預設值、衍生屬性。

層次 4:服務識別 (3 步驟)

  1. 識別物件狀態:生命週期狀態 (新建/啟用/暫停/關閉)。
  2. 識別必要服務:狀態轉換觸發操作、查詢、計算、外部整合。
  3. 識別訊息連接與描述服務:參數、回傳、前置/後置條件、例外、序列圖雛形。

層次 5:主題識別 (2 步驟)

  1. 識別主題:大型模型劃分邊界、提供整體框架。方法論未給具體識別技巧,建議依業務能力/子領域/團隊所有權劃分。
  2. 改進細化並加入模型:迭代調整主題邊界、確保涵蓋所有類別。

結構圖示範 (UML 符號)

一般-特殊 (繼承):
[Vehicle] ← [Car]、[Truck]、[Motorcycle]
  ▲
  │
整體-部分 (聚合/組合):
[Order] ◆——— [OrderItem] (組合:訂單消失,明細消失)
[Department] ◇——— [Employee] (聚合:部門消失,員工可轉移)

屬性定義範本

欄位說明範例
名稱業務術語TotalAmount
型別資料型別decimal
可見性public/protected/privatepublic
限制唯讀/範圍/格式>= 0, 小數 2 位
描述業務含義說明訂單總金額,含稅
衍生規則是否計算而來Sum(OrderItem.Subtotal)

服務描述範本

欄位說明範例
名稱動詞短語CalculateTotal
觸發事件訊息/狀態變更OrderItemAdded
前置條件執行前必須滿足Order.Status == Draft
後置條件執行後保證成立TotalAmount 更新
參數/回傳簽章void CalculateTotal()
例外可能拋出InvalidOperationException

主題劃分實務建議

  • 依業務能力 (Business Capability) 劃分:訂單管理、庫存管理、客戶管理、帳務管理。
  • 依子領域 (DDD Subdomain) 劃分:核心域、支援域、通用域。
  • 依團隊所有權 劃分:單一團隊端到端負責的主題。
  • 主題非任意概念,必須對應真實業務邊界。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved