協作圖(在UML 1.x中稱為通信圖 Collaboration Diagram)用于顯示對象如何互動以執行特定用例或用例的一部分的行為。除了序列圖之外,設計人員還使用協作來定義和闡明執行用例的特定事件流的對象的角色。它們是用于确定類職責和接口的主要資訊來源。
什麼是協作?
- 協作是指定對象和參與者的集合,其中包含連接配接它們的連結。他們合作執行某項任務。
- 協作定義了一組對于給定目的而言有意義的參與者和關系
- 協同工作的對象之間的協作在面向對象的系統中提供了新興的功能
- 每個對象(責任)部分支援緊急功能
- 對象能夠通過協同工作來生成(可用的)進階功能
- 對象通過彼此通信(傳遞消息)來協作以便一起工作
為何選擇協作圖?
與序列圖不同,協作圖顯示了對象之間的關系。序列圖和協作圖表示類似的資訊,但以不同的方式顯示。
由于協作圖的格式,它們更傾向于更适合分析活動(請參閱活動:用例分析)。具體而言,它們往往更适合描繪較少數量對象的簡單互動。但是,如果對象和消息的數量增加,則圖表變得越來越難以閱讀。此外,很難顯示其他描述性資訊,例如時序,決策點或其他非結構化資訊,這些資訊可以輕松添加到序列圖中的注釋中。是以,以下是我們要為以下内容建立協作圖的一些用例:
- 對象或角色之間的協作模型,提供用例和操作的功能
- 系統架構設計中的模型機制
- 捕獲顯示在協作中對象和角色之間傳遞的消息的互動
- 在涉及不同對象和互動的協作的用例或操作中模組化替代方案
- 支援識别參與用例的對象(是以是類)
- 協作圖中的每條消息都有一個序列号。
- 頂級消息編号為1.在同一調用期間發送的消息具有相同的十進制字首,但字尾為1,2等,具體取決于它們何時發生。
協作圖的符号
對象
對象由對象符号表示,該對象符号顯示對象的名稱及其下劃線的類,用冒号分隔:
Object_name:class_name
您可以通過以下方式在協作圖中使用對象:
- 協作中的每個對象都已命名并指定了其類
- 并非所有課程都需要出現
- 一個類可能有多個對象
- 可以不指定對象的類。通常,您首先使用對象建立協作圖,然後再指定其類。
- 對象可以是未命名的,但如果要區分同一類的不同對象,則應該命名它們。
參與者
通常,參與者執行個體出現在協作圖中,作為互動的調用者。如果在同一個圖表中有多個actor執行個體,請嘗試将它們保留在圖表的外圍。
- 每個Actor都被命名并具有角色
- 一個參與者将成為用例的發起者
連結
連結連接配接對象和actor,并且是關聯的執行個體,每個連結對應于類圖中的關聯
連結定義如下:
- 連結是可以通過其發送消息的對象之間的關系。在協作圖中,連結顯示為兩個對象之間的實線。
- 對象通過其與這些對象的連結與其他對象互動或導航到其他對象。
- 連結可以是關聯的執行個體,也可以是匿名的,這意味着它的關聯未指定。
- 消息流附加到連結,請參閱消息。
消息
消息是對象之間的通信,它傳達資訊,期望活動随之發生。在協作圖中,消息顯示為放置在連結附近的标記箭頭。
- 消息從發送方指向接收方
- 接收方必須了解該消息
- 該關聯必須可以在該方向上導航
建立協作圖的步驟
- 确定指定其實作和實作的行為
- 确定執行協作功能所必需的結構元素(類角色,對象,子系統)
- 确定互動的上下文:系統,子系統,用例和操作
- 模拟這些元素之間的結構關系,以生成顯示互動上下文的圖表
- 考慮可能需要的替代方案
- 如果需要,繪制執行個體級協作圖。
- (可選)繪制規範級協作圖,以總結執行個體級序列圖中的備選方案
協作圖示例
什麼是UML協作圖?What is Communication Diagram in UML

穩健圖 (Robusiness Diagram) 格式的協作圖 (Communication Diagram)
您可以在協作圖中包含對象和actor執行個體,以及描述它們如何相關以及它們如何互動的連結和消息。下面顯示 的 回收機系統圖中的接收存款項描述了參與對象中發生的事情,就對象如何通過彼此發送消息進行通信而言。您可以為用例的事件流的每個變體制作協作圖。
嘗試現在繪制UML協作圖 |
您已經了解了協作圖是什麼以及如何繪制協作圖。現在是時候繪制自己的協作圖了。擷取Visual Paradigm Community Edition,一個免費的UML軟體,并使用免費的Collaboration Diagram工具建立自己的協作圖。它易于使用且直覺。 |
[ 免費下載下傳 ] |
推薦的UML圖文章
- 什麼是UML?
- 為什麼選擇UML?
- 14種UML圖類型概述
- 什麼是類圖?
- 什麼是元件圖?
- 什麼是部署圖?
- 什麼是對象圖?
- 什麼是封裝圖?
- 什麼是複合結構圖?
- 什麼是剖面圖?
- 什麼是用例圖?
- 什麼是活動圖?
- 什麼是狀态機圖?
- 什麼是序列圖?
- 什麼是通信圖?
- 什麼是互動概述圖?
- 什麼是時序圖
- 什麼是UML協作圖?
- UML關聯與聚合與組合
- UML類圖教程
- 狀态機圖與活動圖