## UML顺序图和通信图
### 基本概述
当流程涉及到多个角色,并且通过多对角色交互展开时,顺序图是不二选择。
案例:
![](https://box.kancloud.cn/2016-02-25_56cec6c44945e.jpg)
### 顺序图
### 基本语法
![](https://box.kancloud.cn/2016-02-25_56cec6c45d74b.jpg)
解释:
角色:一般代表某人。
对象:一般代表某系统。
激活条:激活条也叫作会话,每次会话就是一次交互。
消息:
1、简单消息:表示一般的消息。
2、同步消息:待消息接收者响应之后才能进行下一步操作。
3、异步消息:不需要接收者响应就能进行下一步操作。
4、返回消息:接收者接收消息之后返回的消息。
5、除返回消息是名词结构外,其他消息都是动宾短语
生命线:激活条会覆盖生命线,手绘UML顺序图,一般不画激活条,只画生命线。
撤消:代表生命线死亡。
案例1:
![](https://box.kancloud.cn/2016-02-25_56cec6c47684e.jpg)
案例2:
![](https://box.kancloud.cn/2016-02-25_56cec6c48d146.jpg)
### 循环及分支结构
基本语法
![](https://box.kancloud.cn/2016-02-25_56cec6c4a6396.jpg)
loop(循环):表示满足循环条件则循环。
alt(条件分支):表示选择其中一个条件执行,以虚线隔开。
opt(可选分支):表示满足条件则执行。
frame(框):框是可以嵌套的,且层数无限制。
小结:
顺序图的特点:
1、强调角色之间的交互,信息传递很明确。
2、强调按时间顺序分别发生了什么事情。
3、不太适合表达复杂的特殊流程。
活动图的特点:
1、强调每个角色做了什么事情,这些事情的先后顺序。
2、适合表达各种特殊流程。
状态机图的特点:
1、事情围绕某东西开展。
2、该东西有不同的状态,状态会因为发生了一些事情而变化。
流程三大利器的取舍:
1、如果事情是围绕某个东西开展的,可以考虑用状态机图。
2、如果事情不是围绕某东西开展的,状态机图可能不适合,可考虑用顺序图或者活动图。
3、如果没有复杂的特殊流程,可考虑顺序图。
4、如果有较复杂的特殊流程,可考虑活动图。
5、不要限制只用一种图,可同时使用两种甚至三种图,从多个角度来分析问题,稍后再适当取舍。
案例:
![](https://box.kancloud.cn/2016-02-25_56cec6c4c343e.jpg)
### 通信图
顺序图强调先后顺序,通信图则是强调相互之间的关系。顺序图和通信图基本同构,但是很少使用通信图,因为顺序图更简洁,更直观。
![](https://box.kancloud.cn/2016-02-25_56cec6c4d8936.jpg)
### 顺序图和通信图的区别
1、通信图的消息必须有编号。
2、通信图连接的线条是关联关系。
3、通信图消息流程不是至上而下的。