## UML順序圖和通信圖
### 基本概述
當流程涉及到多個角色,并且通過多對角色交互展開時,順序圖是不二選擇。
案例:

### 順序圖
### 基本語法

解釋:
角色:一般代表某人。
對象:一般代表某系統。
激活條:激活條也叫作會話,每次會話就是一次交互。
消息:
????1、簡單消息:表示一般的消息。
????2、同步消息:待消息接收者響應之后才能進行下一步操作。
????3、異步消息:不需要接收者響應就能進行下一步操作。
????4、返回消息:接收者接收消息之后返回的消息。
????5、除返回消息是名詞結構外,其他消息都是動賓短語
生命線:激活條會覆蓋生命線,手繪UML順序圖,一般不畫激活條,只畫生命線。
撤消:代表生命線死亡。
?
案例1:

案例2:

### 循環及分支結構
基本語法

loop(循環):表示滿足循環條件則循環。
alt(條件分支):表示選擇其中一個條件執行,以虛線隔開。
opt(可選分支):表示滿足條件則執行。
frame(框):框是可以嵌套的,且層數無限制。
?
小結:
順序圖的特點:
1、強調角色之間的交互,信息傳遞很明確。
2、強調按時間順序分別發生了什么事情。
3、不太適合表達復雜的特殊流程。
?
活動圖的特點:
1、強調每個角色做了什么事情,這些事情的先后順序。
2、適合表達各種特殊流程。
?
狀態機圖的特點:
1、事情圍繞某東西開展。
2、該東西有不同的狀態,狀態會因為發生了一些事情而變化。
?
流程三大利器的取舍:
1、如果事情是圍繞某個東西開展的,可以考慮用狀態機圖。
2、如果事情不是圍繞某東西開展的,狀態機圖可能不適合,可考慮用順序圖或者活動圖。
3、如果沒有復雜的特殊流程,可考慮順序圖。
4、如果有較復雜的特殊流程,可考慮活動圖。
5、不要限制只用一種圖,可同時使用兩種甚至三種圖,從多個角度來分析問題,稍后再適當取舍。
?
案例:

### 通信圖
????順序圖強調先后順序,通信圖則是強調相互之間的關系。順序圖和通信圖基本同構,但是很少使用通信圖,因為順序圖更簡潔,更直觀。

### 順序圖和通信圖的區別
1、通信圖的消息必須有編號。
2、通信圖連接的線條是關聯關系。
3、通信圖消息流程不是至上而下的。