UML互動圖 協作圖
一,概述
1.概念
協作圖(Collaboration Diagram /Communication Diagram,也叫合作圖)是一種互動圖(interaction diagram),顯示某組物件如何為了由一個用例描述的一個系統事件而與另一組物件進行協作的,使用協作圖可以顯示物件角色之間的組織關係。
協作圖是動態圖的另一種表現形式,它強調參加互動的個物件結構資訊。協作圖是一種類圖,它包含類元角色和關聯角色,而不僅僅是類元和關聯。
協作圖支隊相互間有互動作用的物件和這些物件間的關係建模。
2.協作圖的元素
(1)物件(Object)
物件代表協作圖互動中所扮演的角色,和時序圖中物件的概念類似。
(2)鏈(Link)
協作圖中鏈符號和物件圖中鏈所用的符號是一樣的。即一條鏈連線兩個類角色的實線。
幾種常用的鏈符號
符號 |
含義 |
建立物件之間的通訊路徑 |
|
顯示物件可以呼叫自己的屬性 |
|
在兩個物件之間或一個物件本身增加訊息 |
|
在兩個物件之間或一個物件本身從反向增加訊息 |
|
顯示兩個物件之間的資訊流 |
|
在反向顯示兩個物件之間的資訊流 |
(3)訊息
訊息代表協作圖中物件間通過連結傳送的訊息。
二、對比
1、協作圖和時序圖。
兩者表的訊息時一樣的,只是強調的重點不同。協作圖表達的是在實現某個用例期間,物件之間的合作關係,而時序圖表達的是物件之間產生合作發生訊息的時間順序。
2、協作圖和活動圖
(1)活動圖本質上是一種流程圖,每個“活動”可以是某個具體的“事務”,比如稽核單據等。用不太嚴謹的表述來說,活動圖是一種粒度比較粗的事件流程圖,多在需求階段使用。
協作圖就不一樣了,協作圖裡的基本單元是物件(或者概念類),表達這些物件之間的協作關係,多在設計階段使用。
(2)活動圖是一個具體活動的表示圖,有活動起點和活動終點;協作圖是物件之間關係的表示圖,沒有起點和終點 。
3.時序圖和協作圖的功能
時序圖和協作圖之間的相同點
(1)規定責任。兩種圖都直觀地規定了傳送物件和接受物件的責任,將物件確定為接受物件,意味著為此物件新增一個介面。而訊息描述成為接收物件的操作特徵標記,由傳送物件觸發該操作。
(2)支援訊息。兩種圖都支援所有的訊息型別。
(3)衡量工具。兩種圖還是衡量耦合性的工具。
時序圖和協作圖之間的不同點
(1)協作圖的重點是將物件的互動對映到它們之間的鏈上,即協作圖以物件的方式繪製各個參與物件,並且將訊息和鏈平行放置。這種表示方法有助於通過檢視訊息來驗證類圖中的關聯或者發現新增新的關聯的必要性。
時序圖卻不把連結串列示出來,在時序圖的物件之間,儘管沒有相應的鏈存在,但也可以隨意繪製訊息,不過這樣做的結果是有些邏輯互動根本就不可能實際發生。
(2)時序圖可以描述物件的建立和撤銷的情況,而協作圖中,物件要麼不存在要麼存在,出來通過訊息描述或約束,沒有其他的方法以表示物件的建立或約束。所表現的結構被置於靜止的物件圖中,所以很難判斷約束什麼時候有效。
(3)時序圖還可以表現物件的啟用和去啟用情況,但對於協作圖來說,由於沒有對時間的描述,所以除了通過對訊息進行解釋,它無法清晰地表示物件的啟用和去啟用情況。
機房收費系統管理員結賬協作圖