UML - 2 其他類型的圖

1. 對象圖(Object Diagram)

對象圖也叫實例圖(instance diagram)是系統運行的某一瞬間的對象的一個快照。對象圖用來展示連接的對象。


2.包圖(Package Diagram)

包圖描述的結構層次在類圖之上。便於跟清晰地描述大型系統。包用來把類進行分組。包也是一個劃分命名空間的單位,不同的包裏可以有同名的類。包圖的一個重要作用是展示包之間的依賴關係。在OO原則中有6個原則用來指導包的劃分。他們是REP(發佈與重用等價原則),CCP(統一封閉原則,類比於類劃分的單一職責原則) CRP(統一重用原則,包裏的類要麼一起被重用,要麼反之),ADP(無環依賴原則,包之間不能有環路),SDP(穩定依賴原則,不問題的包依賴穩定包,越底層的包越穩定) 跟 SAP(穩定抽象原則,類比於開發封閉原則。抽象類集中的包應該月穩定)。

包的劃分應該從領域的角度進行,不建議從技術角度。包的命名最終成爲領域語言的一部分。


3.部署圖(Deployment Diagram)

部署圖揭示系統的物理佈局。通過此圖我們可以知道那一部分軟件運行於那個硬件之上。一個設備(device)或一個執行環境(execution environment)都可以表示成一個節點(Node)。節點中可以包含工件(artifact)。工件可以是任何可執行的軟件,數據文件,配置文件,等等。通常地一個工件是一個組件(component)的實現。


4.用例圖(Use Cases)

用例圖用來捕獲系統的功能需求。在實際中,文字描述能更好的描述功能需求。所以實際中用例圖一定要加上文字的描述。用例圖更多用來同業務分析人員進行溝通,因此,簡潔的文字描述更能起到好的效果。

用例圖描述用戶跟系統的關係。我們應從用戶的角度來描述此圖。

在用文字描述用例時,我們先逐步描述一個成功的場景(main success scenario)。然後補充輔助跟擴展路徑(extensions)。除了這些路徑,我們可以加上先決條件(pre-condition), 保證條件(guarantee)跟 出發條件(trigger)。

用例可以有不同的方法來劃分層次。

一種是我們把他們分爲系統用例(system use case)跟業務用例(business use case)。

另一種(Cockburn)我們把用例分爲 海層(sea-level),風箏層(kite-level)跟魚層(fish-level)。sea-level描述主要actor跟系統間具體交互。fish-level用力是被sea-level包含的用例。Kite-level是比sea-level更高級的用例,比更廣泛的業務範圍所包圍。kite-level一般對應業務用例。

用例開發是開發過程中較早期用到,我們要避免用例複雜化,因爲需求會不斷變化,我們對系統的瞭解也是一個逐步深入的過程。


5.狀態機圖(State Machine Diagram)

狀態機圖是用來描述某個類的一個對象的生命週期的行爲圖。一個狀態可能有內部活動(Internal activity),這些活動不會改變狀態。有一類狀態是活動狀態(Activity States),不同於一般狀態的是,這種狀態是一個持續活動的狀態,這狀態的完成會進入下一個狀態。比如searching 狀態,一旦他完成就會進入信息呈現狀態。另外當一些狀態共享一些共同的演化或內部活動時,我們可以加入一個超級狀態(superstates)來承載這個共同點,簡化視圖。在是現實我們可以考慮用狀態模式進行實現。

狀態圖雖然不能描述多個對象,但是可以跨用戶實例描述一個對象行爲。所以狀態機圖常常聯合其他圖一起進行描述。


6.活動圖(Activity Diagram)

活動圖用來描述過程邏輯,業務過程跟工作流。活動圖在很多方面跟流程圖有相同的用途。活動圖中的節一個結點就是一個動作(action)不是活動(activity)。根據定義活動是一系列的動作。活動圖就是通過一些列動作描述一個活動。

我們這一在UML找到一種畫流程圖的替代品。活動圖還能很好地表述併發。

在活動圖中我們可以通過劃分類似泳道(partition)來表示動作屬於哪個類。


7.通信圖(Communication Diagram)

通信圖跟序列圖都是交互圖(Interaction Diagram)。通信圖強調的是參與之間的數據聯繫,不像序列圖中清楚的信息調用順序。此圖的參與者主要是類的實例。

通信圖可以清晰地畫出自調用。

通信圖比序列圖跟好在白板上展示。


8.組件圖(Component Diagram)

組件跟類在OO界存在一些爭議,爭議在談間的不共同點。組件不是技術概念,更多的是從客戶的角度怎麼來開軟件。用戶希望他們可以一片一片地購買升級軟件,並希望新購的一片系統可以無縫地跟現有系統集成。所以有一種定義是組件是一片一片可單獨購買並可單獨升級維護的軟件塊。所以組件跟多的是市場的決定。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章