圖5.5參考了Randy Miller的《A Hands-On Introduction for Developers》一文,5.3圖中的客戶管理和事物管理對應于5.5圖中的Bank,圖5.3中的讀卡機、顯示、輸入設備及點鈔機對應于5.5圖中的ATM Machina,銀行儲戶就是Customer。初看活動圖和順序圖表達的意義很接近。但我們可以注意到順序圖著重時間的順序,而活動圖側重于各部分之間的相互制約,對于一些并行的活動能夠有效的表示出來。例如5.5圖中fork和join處,我們可以很清楚的看到一些并行活動的存在。
這個活動圖以顧客插入卡為開始,以顧客取卡結束。我們可以看到活動圖的重點雖然不在時間順序,但我們同樣可以得到時間的信息。
圖5.5 ATM銀行系統活動圖
5.6協作圖
在第四章中我們知道協作圖和順序圖是可以無信息損失的相互轉換,只是它們的側重點是不一樣的。順序圖著重于對象間消息傳遞的時間順序,協作圖著重于表達對象之間的靜態連接關系。圖5.6將5.3圖轉換為協作圖。
1.插入ATM卡
2.接受ATM卡
3.查詢密碼
4.顯示輸入密碼請求
5.輸入密碼
6.密碼傳遞
7.請求確認密碼合法性
8.確認密碼合法性
9.詢問服務類別
10.顯示輸入服務服務類別請求
11.輸入取款請求
12.取款請求
13.詢問取款數額
14.顯示輸入數額請求
15.輸入取款數額
16.傳遞取款數額
17.詢問取款數額確認
18.顯示確認數額請求
19.輸入確認
20.傳遞確認信息
21.數額合法性確認請求
22.確認數額和法性
23.出鈔請求
24.計算帳戶余額
25.出鈔
26.取鈔
27.傳遞余額并詢問是否還需要其他服務
28.顯示帳戶余額并提示選擇下面的服務

圖5.6 ATM系統協作圖
從圖上我們可以看出協作圖的角色和順序圖的對象是一一對應的,而協作圖上的各對象上的協作關系和順序圖上的消息傳遞是一一對應的。