de_DEen_USfa_IRfr_FRhi_INjapl_PLpt_PTru_RUvizh_CNzh_TW

1. 什麼是模型?

模型是一種 從特定觀點出發,對系統的完整描述 並作為一種 現實的簡化呈現。您建立模型,是因為複雜系統無法被完全理解。

建模的四大核心目標:

  1. 視覺化 系統原本的樣貌。

  2. 明確規範 系統的結構或行為。

  3. 提供一個範本 以指導系統的建構。

  4. 記錄 設計決策。

建模的四大原則

  • 您選擇的模型會直接影響問題的處理方式。

  • 每個模型都可以以不同精確度來表達。

  • 最有效的模型與現實緊密相連。

  • 單一模型不足以應付;複雜系統需要多個觀點。

什麼是UML?

 統一建模語言(UML) 是一種由 物件管理小組(OMG)所管理的標準化圖形語言。它明確地 並非一種方法論或程序,而是一種技術性與圖形化的規範,用於:

「可視化、規格化、建構並記錄軟體密集型系統的各項成果。」

UML 為概念性元素(商業流程、系統功能)與具體實作(程式碼陳述、資料庫結構、可重用元件)提供了一種通用的藍圖格式。

Foundations of Modeling & UML

UML 的四大支柱

目的 描述
可視化 確保所有利害關係人使用相同的語言。明確的模型可消除溝通錯誤,並揭示在未建模情況下無法察覺的系統面向。
規格化 建立精確、無歧義且完整的系統定義。
建構 可直接對應至程式語言(Java、C++、VB)、關係資料庫管理系統表格或物件資料庫管理系統儲存空間。支援正向工程(模型 → 程式碼)以及逆向工程(程式碼 → 模型)。
文件化 記錄系統架構、需求、測試計畫、專案時程與發行管理。

2. UML 圖表生態系統

UML 2.2 定義了14 種圖表類型,分為兩個主要類別:

  1. 結構模型(靜態架構)

  2. 行為與互動模型(動態流程)

不同的圖表服務於不同的利害關係人觀點:

  • 使用案例觀點:使用者功能

  • 邏輯觀點:分析師與設計師(系統結構)

  • 流程檢視: 軟體管理(效能、可擴展性、吞吐量)

  • 實作檢視: 程式設計師(具體組件)

  • 部署檢視: 系統整合者(拓撲、安裝、通訊)


3. 核心UML圖表說明

🔹 使用案例圖

  • 目的: 模擬系統的預期功能及其環境。作為客戶與開發人員之間的合約。

  • 元件: 參與者、使用案例及其關係。

  • 支援圖表: 活動圖(使用案例內的流程)、序列圖(物件協作以實現使用案例)。

🔹 活動圖

  • 目的: 呈現流程或使用案例內事件的逐步流程。

  • 關鍵元素:

    • 動作:工作流程中的獨立步驟。

    • 流程:活動的順序。

    • 決策:根據守衛條件分割流程[條件].

    • 分叉:啟動並行執行緒。

    • 合併:結束並行執行緒(同步)。

  • 範例: 課程註冊流程,包含檢查、衝突解決以及並行的課程表更新。

🔹 序列圖

  • 目的: 顯示物件如何在時間上互動以完成使用案例。時間 以完成使用案例。

  • 主要元素:

    • 生命線:垂直線,顯示物件在時間上的存在。

    • 物件/類別:互動中的參與者。

    • 訊息:物件之間交換的資料或方法呼叫。

    • 執行發生:細長的矩形,顯示物件正在積極處理的時刻。

    • 合併片段opt(選擇性執行) (選擇性執行), loop(重複執行) (重複執行), ref(參考另一個互動) (參考另一個互動)。

🔹 通訊圖

  • 目的: 序列圖的替代方案。強調物件之間的結構關係,而非時間順序。結構關係 之間的關係,而非時間順序。

  • 主要元素:物件透過連結在一起,並以編號訊息表示沿著連結的互動順序。

🔹組件圖

  • 目的:顯示軟體組件層級的執行時期結構。

  • 主要元素:隱藏在外接介面後的模組化系統部分。通常包含類別以顯示實作關係。

🔹部署圖

  • 目的:將軟體實體對應至實體硬體。

  • 主要元素:

    • 節點:代表實體機器或執行環境。

    • 實體:代表實體檔案或可部署單元。

    • 擁有元素:顯示巢狀或包含關係。


4. 掌握類別圖與關係

類別圖描述系統的 靜態結構 。它們是資料規格(例如 INSPIRE)的基礎,且不顯示時間資訊。 顯示時間資訊。

類別解剖

區隔 描述
名稱 類別的識別碼(例如 CadastralParcel)。通常包含如 «FeatureType».
屬性 具有資料類型的命名屬性(例如 - 地址 : 字元- 樹齡 : 整數)。支援的類型:整數、長整數、雙精度、字元、日期、布林、字串、幾何等。
操作 類別的行為/方法。格式: + 操作名稱(輸入類型) : 回傳類型.

關係類型

關係 符號 意義
關聯 ─────── 類別之間的一般連結。包含角色名稱、導航箭頭與基數(1..*0..*1..2,等)。
泛化 ─────▷ 繼承。子類別(來源)繼承超類別(目標)的所有特性。
聚合 ◇───── 「部分-整體」關係。部分 可以獨立存在整體的一部分。(空心菱形)
組成 ◆───── 強烈的「部分-整體」關係。部分的存在完全取決於整體。(實心菱形)

來自訓練教材的範例:

  • 個人 → 伐木工(一般化:伐木工繼承姓名性別)

  • 森林 ◇─ (聚集:樹可以在沒有特定森林的情況下存在)

  • 伐木工 ◆─ 員工(組成:在此情境下,員工無法獨立於伐木工實體存在)


5. 實務應用:INSPIRE 地籍建模

訓練教材使用INSPIRE 地籍資料規範來示範現實世界中的UML應用。

練習1:建模核心類別

任務: 建立 地籍圖塊 類別。
解答結構:

«特徵類型» 地籍圖塊
- 地址:字元
- APN(圖塊編號):字元
- 界線:GM_Surface
- 中心點:GM_Point
- 標籤:字元
- 國家地籍參考:字串
- 面積值:雙精度數(可選)
- 參考點:GM_Point(可選)

注意:存在多個有效的解決方案。屬性應反映常見的現實世界特徵。

練習 2:建模關係

任務: 連接 地籍圖塊地籍界線,以及 行政區.
關鍵建模決策:

  • 地籍圖塊 ──── 地籍界線關聯/組成 (界線定義圖塊;通常 1..1 或 1..* 基數)。角色: +是邊界 / +具有邊界.

  • 地籍區塊 ◇── 行政區域聚合/關聯。該區域的存在不依賴於於區塊。區塊屬於多個層級區域(1..*0..*).

  • lesson:根據生命週期依賴關係和業務規則選擇關係類型。圖表應反映現實,而非強加人工限制。


6. 優良實務:有效UML建模

  1. 策略性地使用圖表:圖表用以呈現特定觀點。單一圖表無法完整理解複雜系統。

  2. 跨圖表重複使用元素:單一類別可能出現在類圖、狀態機、序列圖與部署視圖中,各自強調不同的面向。

  3. 依觀眾調整精確度:根據觀看者是終端使用者、開發人員、系統整合者或專案經理,調整圖表的複雜度。

  4. 與現實驗證:持續驗證模型元素、關係與基數是否反映實際系統行為與領域規則。

  5. 善用工具支援:使用符合UML規範的工具(例如Sparx Systems)進行正向/逆向工程、一致性檢查與程式碼產生。


結論

UML是一種強大且標準化的語言,用於溝通、設計與文件化軟體與資料密集型系統。透過掌握核心圖表(特別是類別圖、序列圖、活動圖與用例圖),並理解關係語意(關聯、泛化、聚合、組成),實務工作者能夠建立精確且符合現實的藍圖,彌補概念需求與技術實作之間的差距。