1、協作圖
協作圖是一種與時序圖語意類似的圖形,換句話說,它能表示的意思,使用時序圖都能表示。他們不同的地方在于,時序圖重在表示時間的順序關系,而協作圖重在表現對象之間的變化關系。
關于時序圖和協作圖的使用,兩者取其一即可,沒有必要兩者都用上。在非要使用兩者的情況下,也可以使用模組化工具進行轉換。
2、事物
與之前介紹其它圖形類似,我們來看看協作圖的事物,如下表格:
3、關系
協作圖中的關系比較單一,實際上隻有連結這一種。用線條來表示連結,連結表示兩個對象共享一個消息,位于對象之間或者參與者對象之間。這裡不再展開做介紹說明。
4、标簽
消息标簽的Format: [字首] [守衛條件] 序清單達式 [傳回值 :=] 消息名
字首的文法規則: 序列号,序列号,⋯,序列号 ‘/’
(字首用來同步線程,意思是在發送目前消息之前指定序列号的消息被處理.例:1.1a, 1.1b/)
一個标簽的完整案例,如下圖:
5、兩個案例
我們先看看如下的一個簡單案例,這裡描述的是一個顧客去列印店列印東西的場景,如下圖:
整體的過程,可以描述為:actor發送Print消息給Computer,Computer發送Print消息給PrintServer,如果列印機空閑,PrintServer發送Print消息給printer。
我們再來看看另外一個案例,這裡描述了一個人乘坐電梯的全部過程,存在的事物主要包括參與者和電梯對象,其中參與者又包括按鈕對象、電梯控制對象、指令對象以及工作隊列,而其中的關系,就是連結關系了。如下圖所示:
我們将上面的圖形轉換為自然語言,可以描述為:參與者需要乘坐電梯,他從系統外部按下按鈕,讓電梯到達他想去的樓層。此時,電梯系統的操作被啟動,電梯控制對象以循環的方式檢查所有的電梯,從中選擇一個工作隊列長度最短的。然後,它建立一個作業指令,并将該指令放入對應電梯的工作隊列,接着激活隊列。電梯對象并發運作,從它的隊列中選擇一個作業并執行。電梯是一個活動對象,它與它的控制線程并發執行。
6、與時序圖綜合
在開始介紹協作圖的時候,我們就說過,協作圖和時序圖表示的意思是一緻的,兩者可以任選一個作為圖示對象即可,不必非要選兩個,這裡,我們将上面舉例中的乘坐電梯的協作圖,轉為時序圖,如下:
7、總結
協作圖和順序圖都表示出了對象間的互動作用,兩者之間也可以互相轉化,但是它們側重點不同:
1)順序圖清楚地表示了互動作用中的時間順序(強調時間),但沒有明确表示對象間的關系。
2)協作圖清楚地表示了對象間的關系(強調空間),但時間順序必須從順序号獲得。
當我們在具體使用兩者的時候,要依據具體的需求而定。