UML簡單介紹(十一)——協作圖的概念與例項完全解析
1、協作圖
協作圖是一種與時序圖語意類似的圖形,換句話說,它能表示的意思,使用時序圖都能表示。他們不同的地方在於,時序圖重在表示時間的順序關係,而協作圖重在表現物件之間的變化關係。
關於時序圖和協作圖的使用,兩者取其一即可,沒有必要兩者都用上。在非要使用兩者的情況下,也可以使用建模工具進行轉換。
2、事物
與之前介紹其它圖形類似,我們來看看協作圖的事物,如下表格:
3、關係
協作圖中的關係比較單一,實際上只有連結這一種。用線條來表示連結,連結表示兩個物件共享一個訊息,位於物件之間或者參與者物件之間。這裡不再展開做介紹說明。
4、標籤
訊息標籤的Format: [字首] [守衛條件] 序列表示式 [返回值 :=] 訊息名
字首的語法規則: 序列號,序列號,⋯,序列號 ‘/’
(字首用來同步執行緒,意思是在傳送當前訊息之前指定序列號的訊息被處理.例:1.1a, 1.1b/)
一個標籤的完整案例,如下圖:
5、兩個案例
我們先看看如下的一個簡單案例,這裡描述的是一個顧客去列印店列印東西的場景,如下圖:
整體的過程,可以描述為:actor傳送Print訊息給Computer,Computer傳送Print訊息給PrintServer,如果印表機空閒,PrintServer傳送Print訊息給printer。
我們再來看看另外一個案例,這裡描述了一個人乘坐電梯的全部過程,存在的事物主要包括參與者和電梯物件,其中參與者又包括按鈕物件、電梯控制物件、命令物件以及工作佇列,而其中的關係,就是連結關係了。如下圖所示:
我們將上面的圖形轉換為自然語言,可以描述為:參與者需要乘坐電梯,他從系統外部按下按鈕,讓電梯到達他想去的樓層。此時,電梯系統的操作被啟動,電梯控制物件以迴圈的方式檢查所有的電梯,從中選擇一個工作佇列長度最短的。然後,它建立一個作業命令,並將該命令放入對應電梯的工作佇列,接著啟用佇列。電梯物件併發執行,從它的佇列中選擇一個作業並執行。電梯是一個活動物件,它與它的控制執行緒併發執行。
6、與時序圖綜合
在開始介紹協作圖的時候,我們就說過,協作圖和時序圖表示的意思是一致的,兩者可以任選一個作為圖示物件即可,不必非要選兩個,這裡,我們將上面舉例中的乘坐電梯的協作圖,轉為時序圖,如下:
7、總結
協作圖和順序圖都表示出了物件間的互動作用,兩者之間也可以相互轉化,但是它們側重點不同:
1)順序圖清楚地表示了互動作用中的時間順序(強調時間),但沒有明確表示物件間的關係。
2)協作圖清楚地表示了物件間的關係(強調空間),但時間順序必須從順序號獲得。
當我們在具體使用兩者的時候,要依據具體的需求而定。
相關文章
- Java CXF介紹與例項Java
- UML類圖繪製例項
- UML圖之協作圖(通訊圖)
- 簡單介紹正規表示式拆分url例項程式碼
- 簡單介紹PostgreSQL解析URL的方法SQL
- 簡單介紹python深度學習tensorflow例項資料下載與讀取Python深度學習
- 簡單介紹Go 語言單例模式Go單例模式
- 簡單介紹Python drop方法刪除列之inplace引數例項Python
- Disruptor的簡單介紹與應用
- UML 架構圖入門介紹 starUML架構
- 如何簡單快速畫UML圖?
- 簡單的圖神經網路介紹神經網路
- UML用例圖
- uml建模工具介紹
- UML類圖介紹&類的六大關係
- Webpack 的簡單介紹Web
- AOP的簡單介紹
- PixiJS 專案例項以及繪製流程的簡單介紹JS
- 人臉識別的簡要介紹(附例項、Python程式碼)Python
- NFT元宇宙的概念與介紹元宇宙
- CMakeLists.txt 語法介紹與例項演練
- 簡單介紹下各種 JavaScript 解析器JavaScript
- form表單的簡單介紹ORM
- Flownet 介紹 及光流的簡單介紹
- RPC簡單介紹RPC
- Python簡單介紹Python
- KVM簡單介紹
- RMI簡單介紹
- HTML簡單介紹HTML
- HTML 簡單介紹HTML
- JavaScript 簡單介紹JavaScript
- CSS 簡單介紹CSS
- ajax簡單介紹
- SVG簡單介紹SVG
- Clickjacking簡單介紹
- 【Pandas】簡單介紹
- Map簡單介紹
- JSON簡單介紹JSON
- ActiveMQ簡單介紹MQ