kshen轉PowerDesigner UML 簡介

這些圖表(對象圖、協作圖、狀態圖和部署圖)與前面的圖一起組成了PowerDesigner 中的全部圖表,並可在PowerDesigner9.5中使用。
對象圖(Object Diagram):
與類圖一樣,對象圖也是一個 UML 靜態結構圖;它定義了系統在給定時刻具有的物理元素,而沒有具體考慮系統的動態活動。它與代碼一一對應,但與類圖不同,我們現在討論的是具體的分類器,而不是分類器定義。將對象圖描述爲類實例圖可能最爲合適。
對象圖的主要用途是進行分析。類圖中無法表示的類之間存在不確定的約束。我們將使用對象圖來記錄這些約束。而且,在我們查看所管理的具體類實例示例以闡明這些元素之間的交互作用關係時,對象圖還允許我們定義具體的“What if”場景。
以下內容適用於 OO 建模的初學者:分類器是抽象的對象結構定義。分類器可以告訴我們所管理的是什麼類型的數據(屬性/成員表示數據元素)以及該分類器具有什麼能力(操作/方法表示對象的行爲)。實例是具體的分類器示例。假定定義一個名爲 Customer 的類,該類具有 Name 屬性。類 Customer 的實例“Jane Doe”是姓名恰爲“Jane Doe”的客戶。實例通常具有比分類器更豐富的含義,這是因爲分類器表示某種級別的概述。收集某個分類器的若干個實例或示例可能有助於您理解其用途並更好地使用它。
因此,對象圖是類圖的具體形式,表示類實例樣本,並且顯示了鍵值和關係。例如,CustomerBean 類具有以下客戶實例:該客戶的 ID 爲 52271,姓名爲“John Doe”。該客戶實例與三個訂單實例(三份訂單)相關,訂單編號分別爲122047、122103 和 122399。
 
 
協作圖(Collaboration Diagram):
協作圖和序列圖非常相似。實際上,序列圖和協作圖可以有效地交替使用,並可以簡便的相互轉換。其區別在於用戶閱讀和理解的方式不同。序列圖具有很好的層次性,並且圍繞時間構造。協作圖則主要是圍繞對象結構構造。通過在圖中對消息進行編號可以表示消息的順序。採用這種方式時,即使圖的結構不是基於時間的,也將保持定時關係。
協作圖藉助於系統中元素或對象之間的交互作用,表示系統的動態方面,即在一段時間內的表現方式。它通過表示系統的靜態結構來對類圖和對象圖進行補充,但不是藉助於基於結構的關係,而是在系統對象之間傳遞交互作用“消息”。
構造協作圖時還可以在概念級測試靜態模型。在類圖中定義了類實例,這些類實例之間的交互作用定義了一個具體的使用方案以及將在這些元素之間發生的內部通訊。我們還可以使用其他角色來表示系統的外部作用者和內部使用者,如用例圖。
例如,我們可以建立一個訂單輸入系統,以供客戶和銷售代表使用。客戶通過創建新訂單與該系統交互作用。訂單對象與銷售對象之間進行對話,該對話由鏈接消息表示,在此情況下,只有兩個消息:一個是來自 Orders 類的訂單請求,一個是來自 Sales 類的訂單確認。對一個鏈接上的消息數量沒有限制。我們在此討論的對話以一個訂單請求開始,然後是對該訂單的確認。 
 
適用性
協作圖對於設計人員尤其重要,因爲它闡明瞭對象的作用。您可以在序列圖之前構造協作圖(如果您計劃構造這兩個圖),但通常是在完成類圖之後構造協作圖以說明從類中導出的對象之間的交互作用。可以使用一個或多個協作圖來實現一個用例,或者將複雜行爲分割成多個邏輯子行爲。
狀態圖(Statechart Diagram):
狀態圖(也稱爲狀態機)描述了特定類或組件在其整個生命週期中不斷變化時的行爲。該圖顯示是什麼觸發了從一種狀態向另一種狀態的轉換,以及在該類上調用哪些操作以提供該狀態的行爲或觸發這種轉換。例如,訂單在被創建時處於初始狀態。在客戶確認訂單正確後,訂單將進入確認狀態。在發貨以後,訂單需要從確認狀態進入發貨狀態。 
 
 
因此,每當一個類在其生命週期的不同階段具有不同的可用選項(不同的有效行爲)時,您都可以使用狀態圖來將這些規則和條件建模。生命週期中的每個階段都是該對象的一種狀態,而每個改變狀態的觸發器都代表從一種狀態到另一種狀態的轉換。可以根據需要從某個狀態轉換到任意多個其它狀態,也可以從其它多個狀態進入某個狀態。
子狀態圖
若要保持狀態圖簡單和易讀,您可能發現所定義的一個或多個狀態實際上涉及到更爲複雜的行爲,以至於它本身就可以定義爲一個狀態圖。此時,與向主圖中添加大量複雜細節的做法相比,更好的做法是將這個單獨的狀態分解爲多個子狀態,進而組成一個輔助圖,以定義父狀態的更爲複雜的內部行爲。
部署圖(Deployment Diagram):
部署圖可以幫助我們確定所有代碼元素在服務器、工作站和數據庫中的存放位置。有的節點需要依賴硬件或軟件框來運行部分業務邏輯。這些節點交互作用以演示我們開發的多個計算機和系統是如何交互作用和集成的。節點中包含將部署到數據庫、應用程序或 Web 服務器中的組件實例。
部署圖用於將組件實際部署到服務器中。通過定義希望組件運行的位置,我們可以快捷的映射、部署和管理分佈在客戶端應用程序和應用程序服務器端組件之間的業務邏輯或數據庫端服務器邏輯。以下是要管理的物理體系結構的 1:1 模型。
例如,假定我們已決定實現兩個 Enterprise Java Beans,並且在應用程序服務器上運行它們。下圖顯示了單個節點以及該節點內的兩個組件(每個 EJB 一個組件)。我們可以看出 EmployeeBean 依賴於同一應用程序服務器內的 CustomerBean。 
結論
在我們藉助用例圖、序列圖、活動圖、類圖和組件圖完成基本 UML 建模時,我們將需要其它一些工具來定義有關係統中某些特定元素的詳細信息。我們可能希望在對象圖中使用精確的示例來表示對象的結構,或者藉助於狀態圖來更多地瞭解在其內部具有多個複雜狀態的類的行爲。我們需要使用協作圖從結構角度而不是從時間角度來考察系統組件之間的交互作用。最後,還需要使用部署圖來顯示所有系統組件在運行環境中的物理硬件或服務器中所處的位置,從而更詳盡的瞭解分佈式體系結構的使用方式。
UML 爲我們提供了更加實用的圖表,以便完成對業務邏輯的技術分析、設計、開發、或部署。將這 9 種圖表與傳統的數據建模方法和新的業務流程建模方法相結合,我們可以在從高級需求到技術和數據需求,以及物理實現的各個方面來全面瞭解推動軟件開發的所有因素。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章