UML物件圖


概述:

物件圖都來源於類圖,依賴類圖物件圖。

物件圖表示一個類圖的一個範例。類圖和物件圖的基本概念是相似的。物件圖也代表了一個系統的靜態檢視,但這種靜態檢視是系統在某一時刻的一個快照。

物件圖是用於呈現一組物件和它們之間的關係作為一個範例。

目的:

圖的目的應該清楚地理解去實現它。物件圖的目的與類圖類似。

不同的是,一個類圖代表一個抽象的模型,包括類和它們之間的關係。但是,物件圖表示在某一時刻,這在本質上是具體的範例。

這意味著物件圖是更接近實際的系統行為。目的是在一個特定的時刻捕捉到靜態的系統檢視。

因此,物件圖的目的可概括為:

  • 正向和逆向工程。

  • 一個系統的物件間的關係

  • 一個互動的靜態檢視。

  • 了解物件的行為和他們的關係從實用的角度來看

如何繪製物件圖?

我們已經討論過的一個物件圖是類圖的一個範例。它意味著一個物件圖包含在類圖中所用的東西的範例。

因此,這兩個圖均採用相同的基本元素,但在不同的形式。在類圖中的元素是抽象的形式來表示藍圖,並在物件圖中元素的具體形式來表示真實世界中的物件。

為了捕捉一個特定的系統,類圖的數量是有限的。但是,如果我們考慮物件圖,那麼我們就可以有無限數量的範例在本質上是獨一無二的。因此,只有這些情況下被認為是對系統的影響。

從上面的討論,很顯然,一個單一的物件圖不能捕獲所有必要的範例,而不能指定一個系統的所有物件。因此,解決方案是:

  • 首先,分析系統,並決定哪些情況下有重要的資料和關聯。

  • 其次,只考慮那些範例將涵蓋功能。

  • 第三,做一些優化範例的數量是無限的。

繪製物件圖之前,應該記住以下事情,並清楚地理解:

  • 物件圖是由物件。

  • 物件圖中的連結是用來連線物件。

  • 物件和連結的兩個要素,用於構造一個物件圖。

在開始構建圖前,現在來決定下列事項:

  • 物件圖應該有一個有意義的名稱,以表明其目的。

  • 最重要的要素是要確定。

  • 物件之間的關聯,應該予以明確。

  • 不同元素的值需要捕獲包含在物件圖。

  • 新增適當的注釋,需要更清晰點。

下面的圖是一個物件圖的一個例子。它代表了訂單管理系統,我們已經討論了在類圖。下圖是該系統的一個範例,在一個特定的時間購買。它具有以下的物件

  • 顧客

  • 訂單

  • 特殊訂單

  • 一般訂單

現在客戶物件(C)是與三階物件(O1,O2和O3)。這些訂單物件相關聯的特殊訂單和一般訂單物件(S1,S2和N1)。顧客具有以下三個具有不同數目的訂單(12,32和40),用於所考慮的特定的時間。

現在,客戶可以在將來增加的訂單數量,在這種情況下物件圖將反映。如果訂單、特殊訂單和正常秩訂單物件那麼觀察會發現,他們有一些值。

訂單的值是12,32和40,這意味著,這些物件都擁有這些範例時,捕獲特定時刻的值(這裡是購買時的時刻被視為特定時間)。

相同特別訂訂單和正常訂單物件所具有的訂單數分別為20,30和60。如果被認為是一個不同的時間購買,那麼這些值將發生相應的變化。

因此,下面的物件圖已經繪就考慮到所有上述提到的幾點:

UML Object Diagram

在哪裡使用物件圖?

物件圖可以被想象成正在執行的系統在某一時刻的快照。現在加以闡明,我們可以舉一個例子,一個正在執行的列車。

現在,如果把一個單元列車執行,那麼會發現它具有以下靜態圖片:

  • 這是一個特別的狀態執行

  • 一個特定的乘客數量。如果捕捉在不同的時間,這將在不斷改變。

所以,在這裡我們可以想像的列車執行的管理單元是一個物件,具有上述值。任何現實生活中的簡單或複雜的系統而且的確如此。在一個簡短的,物件圖用於:

  • 使一個系統的原型。

  • 逆向工程。

  • 造型複雜的資料結構。

  • 從實用的角度了解系統。