理解物件圖:UML 建模入門指南

在軟體開發領域中,統一模型語言(UML)提供了一種標準化的方式來視覺化系統的設計。UML 中的一個關鍵圖表是物件圖,它展示了系統在特定時間點的實例狀態。本文將向您介紹物件圖,解釋其用途,並指導您使用功能強大的 UML 建模工具 Visual Paradigm 來創建它們。

Class Diagram vs Object Diagram

什麼是物件圖?

物件圖是一種 UML 圖表,透過展示類別的實例及其在特定時刻的關係,呈現系統的靜態視圖。與提供系統結構藍圖的類別圖不同,物件圖專注於執行時實際存在的物件及其互動。

主要特徵

  1. 快照視圖:物件圖捕捉系統在特定時間點的狀態,提供真實或原型性的視角。
  2. 基於實例:它們專注於實例(物件)而非類別,展示物件如何與特定屬性值互動。
  3. 靜態設計:雖然它們描繪的是某一時刻的狀態,但物件圖用於說明系統的靜態設計,有助於理解物件在特定情境下如何相互關聯。

為什麼要使用物件圖?

  • 測試與除錯:物件圖在測試與除錯中非常有用,因為它們展示了物件在即時情境中的互動方式。
  • 情境說明:它們有助於視覺化特定的使用案例或情境,使系統在特定條件下的行為更易理解。
  • 原型設計:物件圖可用於模擬系統在實際資料下的行為,有助於設計過程。

使用 Visual Paradigm 創建物件圖

Visual Paradigm 是一個完整的 UML 建模工具,包含物件圖的建立。以下是逐步指南,幫助您開始使用:

逐步指南

  1. 建立新的物件圖:

    • 開啟 Visual Paradigm,並選擇圖表 > 新增從應用程式工具列中。
    • 新增圖表視窗中,選擇物件圖.
  2. 建立實例規格:

    • 從圖表工具列中選擇實例規格並點擊圖表以建立形狀。
    • 根據其所代表的物件命名實例規格。
  3. 選擇分類器:

    • 右鍵按一下實例規格形狀並選擇選擇分類器 > 選擇分類器...從捷徑功能表中選擇。
    • 選擇分類器視窗中,選擇將作為實例規格分類器的類別。
  4. 定義槽:

    • 若要定義槽,請右鍵按一下實例規格形狀並選擇槽...從捷徑功能表中選擇。
    • 實例規格規格視窗中,選擇要定義槽的特性,然後按一下定義槽.
    • 透過選擇已定義的槽並按一下編輯值....
  5. 建立連結:

    • 要建立實例規格之間的連結,請將滑鼠指標移至來源實例規格上。
    • 按一下資源目錄按鈕,並將其拖曳至目標實例規格。
    • 放開滑鼠按鈕,並選擇連結從資源目錄中選擇以建立連結。

範例

讓我們來考慮一個圖書館系統的簡單範例:

  • 類別書籍會員借閱
  • 物件:
    • 書籍:「一九八四」,喬治·歐威爾著
    • 會員:珍·多
    • 借閱:珍·多借閱「一九八四」的借閱紀錄

在 Visual Paradigm 中建立此模型的步驟:

  1. 建立實例規格:

    • 為以下項目建立實例書籍會員,以及借閱.
  2. 選擇分類器:

    • 為每個實例分配相應的類別(書籍會員借閱)給每個實例。
  3. 定義槽位:

    • 對於 書籍:定義 標題作者,並設定如「1984」和「喬治·歐威爾」等值。
    • 對於 會員:定義 姓名,並將值設為「珍·多」。
    • 對於 借閱:定義 借閱日期和 還書日期.
  4. 建立連結:

    • 在……之間建立連結成員(珍·多)和借閱以顯示珍·多已借閱一本書。
    • 在……之間建立連結借閱書籍以顯示「1984」是所借閱的書籍。

範例:類別圖 vs 物件圖

此圖示說明了物件導向程式設計中類別與物件圖的概念,著重於類別與其執行個體(物件)之間的關係。以下是詳細說明:

What is Object Diagram?

類別圖(左側)

  1. 類別與屬性:

    • 客戶類別:
      • 屬性:姓名(字串),所在地(字串)。
      • 方法:+發送訂單()+接收訂單().
    • 訂單類別:
      • 屬性:日期 (日期),編號 (字串)。
      • 方法:+確認()+關閉().
  2. 泛化(繼承):

    • 這個訂單類別是被泛化為兩個子類別的超類別:一般訂單以及特殊訂單.
    • 一般訂單類別:
      • 從以下類別繼承屬性和方法:訂單.
      • 額外方法:+派送()+receive().
    • 特殊訂單類別:
      • 繼承屬性和方法來自訂單.
      • 額外方法:+dispatch().
  3. 關係:

    • 在……之間存在一對多的關係客戶訂單,以「1」表示在客戶端,而在訂單端無數字,表示一位客戶可擁有 multiple 訂單。

物件圖(右側)

  1. 物件與屬性:

    • C1:客戶物件:
      • 一個客戶類別的實例。
    • O1、O2、O3:訂單物件:
      • 的實例訂單類別,具有特定數字屬性:O1(數字 = 12),O2(數字 = 61),O3(數字 = 88)。
    • S1、S2、S3:特殊訂單物件:
      • 的實例特殊訂單類別,具有特定數字屬性:S1(數字 = 43),S2(數字 = 50),S3(數字 = 17)。
  2. 關係:

    • C1客戶物件與多個訂單物件連結(O1O2O3) 和特殊訂單物件 (S1S2S3).
    • 這反映了類圖中顯示的一對多關係,其中單一客戶可以擁有多个訂單。

解釋

  • 泛化: 這訂單類作為一個具有共同屬性和方法的基類,而一般訂單特殊訂單是具有額外功能的特殊版本。
  • 實例化: 物件圖顯示這些類如何被實例化為具有具體值的特定物件,展示類結構在實際應用中的使用方式。
  • 關係: 圖表強調客戶與其訂單之間的關聯,說明物件如何根據定義的類關係進行互動。

這種視覺化有助於理解類是如何設計的,以及它們如何轉化為具有特定資料和行為的現實世界物件。

結論

物件圖是UML中一個強大的工具,可透過特定實例及其互動來視覺化系統的執行時行為。使用Visual Paradigm,您可以高效地建立這些圖表,有助於軟體系統的設計、測試和除錯。無論您是初學者還是資深開發人員,理解並運用物件圖都能顯著提升您建模與理解複雜系統的能力。

參考資料

  1. 繪製物件圖。Visual Paradigm
  2. 使用 Visual Paradigm 學習類圖。Archimetric
  3. Visual Paradigm 教學。取自YouTube
  4. 範例:類圖與物件圖。Visual Paradigm Circle
  5. UML 中的類圖與物件圖。Visual Paradigm
  6. 什麼是物件圖?Visual Paradigm
  7. 物件圖。Visual Paradigm
  8. UML 類圖教學。Visual Paradigm