通信圖和時序圖都是UML交互圖,可以相互轉化,具備相似的責任主體,都是通過消息驅動,具有順序性。
但也有明顯區別,通信圖表達的是對象之間的合作關係,時序圖表達的是對象之間產生合作發生消息的時間順序。
協作圖又叫通信圖,是一種UML交互圖,顯示對象與對象之間因為用例描述的系統事件而進行的協作,側重於對象之間的合作關係。協作圖關注對象在參與具體交互時,對象之間如何鏈接以及傳遞什麼消息。
協作圖主要由對象、消息和鏈三個元素構成,通過在對象之間建立鏈接並在鏈接上添加消息來表明對象間的交互,消息名稱反映了引用對象的意圖。
協作圖以圖或網格格式描述對象交互,其中對象可以置於圖中任何位置。在使用協作圖時,通過在對象之間建立鏈接並在其上附加信息來表明對象間的交互,消息名稱反映了在與被引用對象交互時引用對象的意圖。
自UML 2.0 之後,不再使用協作圖,都統一使用通信圖,下文統一稱為通信圖。
支援多人線上同屏創作,可設置分享連結,即時傳遞資訊
只需輸入一句話,自動生成所需圖形,並自動美化圖形風格
內建多種主題風格,也可自由設計喜愛的樣式
支援插入圖示、圖片、標籤、備註LaTex公式、程式碼塊、連結、附件等多種形式元件
支援匯出PNG、VISIO、PDF、SVG等格式,支援匯入VISIO、Mermaid格式
檔案即時儲存,多端裝置雲同步,歷史版本可追溯,資料安全有保障
通信圖和時序圖都是UML交互圖,可以相互轉化,具備相似的責任主體,都是通過消息驅動,具有順序性。
但也有明顯區別,通信圖表達的是對象之間的合作關係,時序圖表達的是對象之間產生合作發生消息的時間順序。
通信圖主要由對象、消息和鏈三個元素構成。
對象:協作圖與時序圖中對象的概念是一樣,只不過在協作圖中,無法表示對象的創建和撤銷,所以對於對象在圖中的位置沒有限制。
消息:消息由發送者、接收者和消息名稱三個部分構成,為了說明交互過程中消息的發送順序,需要給消息添加序號。
鏈:鏈是對象之間的連接,也是類關聯的一個實例,鏈使用實線或弧來連接兩個對象。
消息一般分為同步消息、異步消息、返回消息、自關聯消息。
同步消息:對象發送消息後,需要接收消息的對象響應完畢並返回消息時才會進行其餘的工作,以“實線箭頭”表示;
異步消息:對象發送消息後,不需要等待接收對象的返回消息可以繼續執行其餘的工作,以“實線+大於號”表示;
返回消息:從過程調用返回,以“虛線箭頭”表示;
自關聯消息:表示方法的自身調用,或者一個對象內的一個方法調用另外一個方法,以一個“半閉合的長方形+下方實線箭頭”表示。
消息的編號有兩種,一種是無層次編號(按順序編號),簡單直觀;另一種是嵌套編號,更易於表示消息的包含關係。
1,設置交互的語境
2,設置交互的場景
3,對每個對象設置初始特性
4,描述對象之間可能有信息沿著它傳遞的鏈
5,設置消息的順序號
對於用例:通過描述對象之間消息的傳遞情況來反映具體使用語境的邏輯表達
對於對象:顯示對象及其交互關係的空間組織結構
對於類:表現一個類操作的實現
通信圖和時序圖在描述對象交互時,雖然都關注對象之間的消息傳遞,但各有側重點,不能完全替代。
時序圖強調對象之間消息傳遞的時間順序,而通信圖更關注對象之間的結構和消息的傳遞方式。
通信圖中對象和時序圖中的對象概念相同,命名方式一般有三種:
1)顯示對象名和類名
2)只顯示對象名,不顯示類名
3)只顯示類名,不顯示對象名
這三種命名方式都符合標準,哪種最容易讓閱讀人理解,就選擇哪種。
不能。每個消息都有一個編號,編號一般為整數,用以表明消息的發送順序。
時序圖的時間順序是從上到下的順序,通信圖的時間順序通過消息編號來表示。
鏈一般有兩種形式。一種是鏈接兩個不同的對象,通過直線表示,另一種是對象跟自己鏈接,通過弧來鏈接。
通信圖用箭頭表示消息方向,錯誤的箭頭會顛倒控制流,所以要嚴格標註箭頭方向,指向消息接收方。
通信圖適合表達對象之間結構清晰的交互場景,不適合將整個系統流程畫在一張圖上,會導致對象和線條混亂難辨,所以每張圖聚焦一個用例或模塊交互,對象數量控制在 5~7 個。