這UML物件圖在一系列結構化建模工具中扮演著獨特且關鍵的角色:它提供了系統的具體、實例層級視圖。雖然類圖(藍圖)展現了抽象的潛力——可能存在的物件類型以及它們的潛在關係,可以存在,以及它們的潛在關係——而物件圖則展現了在特定時刻實際存在的物件,包括它們目前的資料值和已建立的連接。確實存在於特定時刻,包括它們目前的資料值和已建立的連接。
將類圖想像成蛋糕的食譜,詳細說明了食材和步驟。相比之下,物件圖則是今天烤好的一塊特定蛋糕的照片,展現了它的大小、糖霜顏色以及實際放在桌子上的位置。
了解更多關於類圖與物件圖——何時使用實例 .

與類圖的關係
物件圖本質上是類圖的實例層級版本,類圖。物件圖中的每個元素都必須符合類圖中對應類所定義的結構:
-
物件實例: 圖中的物件是特定類的實例。
-
連結: 兩個物件之間的連結是其對應類之間所定義的特定關聯的實例。

這種具體的視覺化對於驗證抽象的理論設計至關重要。如果類圖設計有誤,當試圖使用物件圖來模擬現實情境時,缺陷往往會立即顯現。
物件圖的關鍵元素
1. 物件實例
物件實例是主要元素,以矩形表示。符號遵循特定格式,以清楚區分於類:
-
物件名稱(可選):指分配給實例的特定名稱(例如 “myOrder,userA). 名稱被底線標示。 -
ClassName: 物件所實例化的類別名稱。 -
冒號分隔符: 冒號(
:)將實例名稱與類別名稱分開。 -
底線標示: 實例名稱與類別名稱都必須被底線標示以表示這代表一個物件實例,而非類別定義。(例如,
userB : User或: Order)
2. 屬性值
與類別圖不同,類別圖顯示的是名稱屬性的名稱,而物件圖則顯示該特定實例的目前值這些屬性對特定實例的值。這正是使該圖表成為「快照」的原因。
屬性以下列語法列於矩形的第二個區隔中:
-
範例: 一個名為
myCar : Vehicle可能具有屬性值color = "red"和speed = 65.
3. 連結
一個 連結是 關聯(關係)在類圖中定義。連結以簡單的實線繪製,連接兩個物件矩形。
連結顯示一個特定物件實例目前如何與另一個特定物件實例連接或引用。多重性約束(例如,$1..*$ 或 $0..1$)會根據快照中這些連結的存在來驗證。
-
範例:如果類圖顯示
Customer和Order之間的關聯,物件圖將顯示實例cust1 : Customer和實例order52 : Order.
何時以及為何要使用物件圖
物件圖通常在分析和設計階段用於兩個主要目的:
-
情境視覺化與驗證: 它們是視覺化複雜配置或邊界情況的優秀工具。透過呈現特定物件及其值,團隊可以確認設計是否正確處理各種情境,例如擁有多个地址的客戶,或目前為空的購物車。
-
展示複雜結構: 當類結構使用像聚合或組合等進階概念時,可以使用物件圖來展示所產生的層次結構和生命週期依賴關係的具體範例。
-
測試與除錯: 透過定義快照,它們可以作為特定測試案例執行前或執行後系統的預期狀態,有助於清楚傳達複雜的測試資料。
物件圖將抽象的類別結構轉化為具體且可驗證的場景,使其成為確保設計正確性並清楚傳達實作範例的無價工具。
想了解更多關於UML與AI視覺化的資訊嗎?請查看我們的UML資源中心.












