複製鏈接
請複製以下鏈接發送給好友

協作圖

鎖定
協作圖,又作“通信圖”。即Communication Diagram,而“協作”作為一個結構事物用於表達靜態結構和動態行為的概念組合,表達不同事物相互協作完成一個複雜功能。故UML 2.0以後通信圖不再是協作圖,沒有專門的”協作圖“,只有”協作“。
中文名
協作圖
外文名
Collaboration Diagram
別    名
通信圖
面對對象
動態建模

目錄

協作圖簡介

面向對象動態建模,用於建立行為的實體間行為交互的四種圖:狀態圖(State Diagram),序列圖(Sequence Diagram),協作圖(Communication Diagram),活動圖(Activity Diagram) 。
其中,“順序圖”與“協作圖”表述的是相似的消息,“活動圖”是“狀態圖”的一種。
協作圖(Collaboration Diagram /Communication Diagram,也叫合作圖)是一種交互圖(interaction diagram),強調的是發送和接收消息的對象之間的組織結構。一個協作圖顯示了一系列的對象和在這些對象之間的聯繫以及對象間發送和接收的消息。對象通常是命名或匿名的類的實例,也可以代表其他事物的實例,例如協作、組件和節點。使用協作圖來説明系統的動態情況。協作圖使描述複雜的程序邏輯或多個平行事務變得容易。

協作圖用途

協作圖(Collaboration Diagram /Communication Diagram)顯示某組對象如何為了由一個用例描述的一個系統事件而與另一組對象進行協作的交互圖。使用協作圖可以顯示對象角色之間的關係,如為實現某個操作或達到某種結果而在對象間交換的一組消息。如果需要強調時間和序列,最好選擇序列圖;如果需要強調上下文相關,最好選擇協作圖。
協作圖用於顯示對象之間如何進行交互以執行特定用例或用例中特定部分的行為。設計員使用協作圖和序列圖確定並闡明對象的角色,這些對象執行用例的特定事件流。它們是主要的信息來源,用於確定類的職責和接口。
與序列圖(Sequence Diagram)不同,協作圖顯示了對象之間的關係。序列圖(Sequence Diagram)和協作圖表述的是相似的信息,但表述的方式卻不同。協作圖顯示對象之間的關係,它更有利於理解對給定對象的所有影響,也更適合過程設計。
協作圖的格式決定了它們更適合在分析活動中使用(請參見活動:用例分析)。它們特別適合用來描述少量對象之間的簡單交互。隨着對象和消息數量的增多,理解協作圖將越來越困難。此外,協作圖很難顯示補充的説明性信息,例如時間、判定點或其他非結構化的信息,而在序列圖中這些信息可以方便地添加到註釋中。

協作圖元素構成

協作圖強調參與一個交互對象的組織,它由以下基本元素組成:活動者(Actor)、對象(Object)、連接(Link)和消息(Message)。在UML中,使用實線標記兩個對象之間的連接,
協作圖中的消息,由標記在連接上方的帶有標記的箭頭表示。協作圖包含類元角色和關聯角色,而不僅僅是類元和關聯。類元角色和關聯角色描述了對象的配置和當一個協作的實例執行時可能出現的連接。當協作被實例化時,對象受限於類元角色,連接受限於關聯角色。關聯角色也可以被各種不同的臨時連接所擔當,例如過程參量或局部過程變量。連接符號可以使用構造型表示臨時連接(《parameter》或《local》)或調用同一個對象(《self》)。雖然整個系統中可能有其他的對象,但只有涉及到協作的對象才會被表示出來。換而言之,協作圖只對相互之間具有交互作用的對象和對象間的關聯建模,而忽略了其他對象和關聯。
協作圖(collaboration diagram)用於表示對象間的消息往來。雖然序列圖在某種定義上也能表示對象的協作動作,但能明確描述對象間的協作關係的還是協作圖。
在協作圖中,用長方形框表示對象。當兩個對象間有消息傳遞時用帶箭頭的有向邊連接這兩個對象。在UML中,協作圖的語義與序列圖是等價的,有向邊的箭頭方向表示傳遞消息的方向,在有向邊上方標識出是什麼消息。為表示發送消息的時間順序,在每個消息前附加數字編號。顯然,協作圖便於描述對象間有什麼樣的協作關係,不需要像一個序列圖
只能對應於一個場景一樣,可以將多個場景中的協作關係一次性地全部描述出來。不過,與序列圖一樣,在UML的協作圖中,也規定了消息發送條件的描述。
協作圖作為表示對象間相關作用的圖形表示,也可以有層次結構。可以把多個對象作為一個抽象對象,通過分解,用下層協作圖表示出這多個對象間的協作關係,這樣可緩解問題的複雜度。