通信圖的概念:通信圖(協作圖)是表現對象交互關系的圖,它展現了多個對象在協同工作達成共同目標的過程中互相通信的情況,通過對象和對象之間的鏈、發送的消息來顯示參與交互的對象。
首先通信圖一樣是一種交互圖,它描述的是對象和對象之間的關系,即一個類操作的實現。簡而言之就是,對象和對象之間的調用關系,體現的是一種組織關系。
通信圖中的元素主要有對象、消息和鏈三種。對象和鏈分別作為通信圖中的類元角色和關聯角色出現,鏈上可以有消息在對象間傳遞
從結構方面來看,通信圖包含了一個對象的集合並且定義了它們之間的行為方面的關系,表達了一些系統的靜態內容。
從行為方面來看,通信圖包含了在各個對象之間進行傳遞交換的一系列的消息集合,以完成協作的目的。
通信圖是一種描述協作在某一語境下的空間組織結構的圖形化方式,在使用其進行建模時,主要具有以下三個作用。
1)通過描繪對象之間消息的傳遞情況來反映具體使用語境的邏輯表達。
2)顯示對象及其交互關系的空間組織結構。
3)表達一個操作的實現。
通信圖的組成元素: 對象、鏈、消息
對象
通信圖中的對象與順序圖中對象的概念相同,都是表示類的實例。
通信圖只關注相互有交互作用的對象和對象關系,而忽略其他對象。
由於通信圖中不表示對象的創建與銷毀,因此,對象在通信圖中的位置沒有限制。
與順序圖中對象的表示法不同的是,通信圖中的無法顯示對象的生命線。
鏈
通信圖中的鏈與對象圖中的鏈在語義以及表示法上都相同,都是兩個(或多個)對象之間的獨立連接,是關聯的實例。鏈同時也是通信圖中關聯角色的實例,其生命受限於協作的生命。
鏈連接的兩個對象之間允許在交互執行過程中進行消息傳遞和交互。UML也允許對象自身與自身之間建立一條鏈。鏈可以通過對自己命名來進行區分和說明,也可以僅僅做連接而不進行命名。
消息
通信圖的消息需要附加在對象之間的鏈上,鏈用於傳輸或實現消息的傳遞。
通信圖中的消息通過在鏈的上方或下方添加一個短箭頭來表示,通常需要使用阿拉伯數字作為序號來表示通信圖中發送消息的順序。
通信圖與順序圖的異同點:
通信圖與順序圖的共同點主要有如下3點:
1)主要元素相同。兩種圖中的主要元素都是對象與消息,且都支持所有的消息類型。
2)表達語義相同。兩種圖都是對系統中的交互建模,描述了系統中某個用例或操作的執行過程,二者的語義是等價的。
3)對象責任相同。兩種圖中的對象都擔任了發送者與接收者的角色並承擔了發送與接收消息的責任。通過對象之間消息的傳遞來實現系統的功能。
兩種圖之間的不同點也有如下3點:
1)通信圖偏重於將對象的交互映射到連接它們的鏈上,這有助於驗證類圖中對應的類之間關聯關系的正確性或建立新的關聯關系的必要性。然而順序圖偏重描述交互中消息傳遞的邏輯順序。因此通信圖更適用於展示系統中的對象結構,而順序圖則擅長表現交互中消息的順序。
2)順序圖可以顯式地表現出對象創建與撤銷的過程,而在通信圖中,只能通過消息的描述隱式地表現這一點。
3)順序圖還可以表示對象的激活情況,而對於通信圖來說,由於缺少表示時間的信息,除了對消息進行解釋,無法清晰地表示對象的激活情況。
通信圖與順序圖對比
時序圖
通信圖
通信圖建模技術
按組織對控制流建模
識別交互的語境,即交互所處的環境。
識別出圖中應該存在的對象。
識別可能有消息傳遞的對象並設置鏈。
設置對象間的消息。
如果需要更多約束,如時間或空間的約束,可以使用其他的約束來修飾這些消息。
案例(1)添加新書
案例(2)學位初評
教務人員通過學號在學位初評系統查詢學生的初評情況。學位初評系統分別在成績管理系統、獎罰管理系統、畢業設計管理系統查詢成績、獎罰、畢業設計情況。並根據情況生成學位初評結果,通過信息打印模塊打印初評情況。
案例(3)登錄系統
案例(4)添加用戶信息