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

物件模型技術 (OMT) 核心三模型:物件/動態/功能模型與系統完整描述

     編輯:關於C#

OMT 起源與定位

  • 由美國通用電氣 (GE) 研究中心提出 (Rumbaugh 等)。
  • 以面向物件思想為基礎,透過抽象構造三個相關模型,全面捕捉問題空間資訊。
  • 三模型互補:功能模型定義「做什麼」、動態模型定義「何時做」、物件模型定義「對誰做」。

三模型對照表

模型核心問題關鍵圖表焦點層面
物件模型對誰做類別圖、物件圖靜態結構:類別、屬性、操作、關係
動態模型何時做狀態圖、事件追蹤圖/序列圖控制邏輯:狀態轉換、事件順序、時間
功能模型做什麼資料流圖 (DFD)資料轉換:輸入→處理→輸出、資料儲存、約束

物件模型 (Object Model)

目的

描述系統靜態結構,找出與應用程式密切相關的概念。

建模步驟

  1. 確定物件類別:從需求/論域識別核心實體。
  2. 定義資料字典:描述類別、屬性、關係的標準化術語表。
  3. 用繼承組織與簡化:提取共同屬性/操作至基類別,減少重複。
  4. 測試存取路徑:驗證導航路徑支援所有查詢/操作需求。
  5. 根據關係與功能分組建立模組:高內聚低耦合劃分子系統/套件。

UML 類別圖核心符號 (OMT 衍生)

  • 類別:矩形三分區 (名稱/屬性/操作)。
  • 關聯:實線、角色名、多重度 (1, 0..1, 1..*, 0..*)。
  • 繼承:空心三角箭頭指向基類別。
  • 聚合:空心菱形指向整體。
  • 組合:實心菱形指向整體。
  • 依賴:虛線箭頭。

動態模型 (Dynamic Model)

目的

著重控制邏輯,描述物件狀態隨時間變化的序列。

核心圖表

  • 狀態圖:狀態 (圓角矩形)、事件/轉換 (箭頭)、守衛條件 [condition]、動作 /action。描述單一類別生命週期。
  • 事件追蹤圖 / 序列圖:時間軸垂直、物件生命線、訊息箭頭、啟動桿。描述特定場景 (Scenario) 的物件互動序列。

場景與腳本

  • 事件:物件間單一訊息。
  • 場景/腳本:特定環境下一系列事件序列,起始於外部輸入事件,終止於外部輸出事件。
  • 一個場景對應一個事件追蹤圖/序列圖。

建模步驟

  1. 準備典型交互序列場景 (正常/替代/例外流程)。
  2. 確定物件間事件,為每場景建立事件追蹤圖。
  3. 為每個系統建立事件流程圖 (彙總所有場景事件)。
  4. 為具重要動態行為的類別建立狀態圖。
  5. 檢驗不同狀態圖間共享事件的一致性與完整性。

功能模型 (Functional Model)

目的

著重資料傳遞與處理,定義輸入經運算轉換為輸出的過程,不考慮執行時序。

核心圖表:資料流圖 (DFD)

  • 外部實體 (矩形)、處理序 (圓角矩形/圓)、資料儲存 (開口矩形)、資料流 (箭頭)。
  • 分層分解:上下文圖 (第 0 層) → 第 1 層 → 第 2 層... 每層細化上層處理序。
  • 包含物件模型內部資料約束 (如唯一性、參考完整性)。

建模步驟

  1. 確定輸入與輸出值 (外部實體提供/接收)。
  2. 用 DFD 表示功能依賴關係 (資料流向)。
  3. 具體描述每個功能 (處理序邏輯、演算法、業務規則)。
  4. 確定約束 (資料完整性、業務規則、效能指標)。
  5. 確定功能優化準則 (吞吐量、延遲、資源使用率)。

三模型整合與一致性檢查

檢查點物件模型動態模型功能模型
操作/服務類別操作清單狀態圖轉換動作 / 序列圖訊息DFD 處理序
資料/屬性類別屬性事件參數 / 狀態變數資料流 / 資料儲存
控制流程狀態機 (狀態/轉換)狀態圖 / 事件順序DFD 分解層次
邊界介面/公開操作外部事件/輸出事件外部實體/資料流

三模型共享核心詞彙 (類別名、屬性名、操作名、事件名),確保一致性。

現代實踐映射

  • 物件模型 → 領域模型 / 類別圖 / 實體關係圖 (DDD/ER)。
  • 動態模型 → 序列圖 / 狀態圖 / 活動圖 / 事件風暴 (UML/Event Storming)。
  • 功能模型 → 資料流圖 / 用例圖 / 業務流程圖 (BPMN) (DFD/Use Case/BPMN)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved