## UML活动图
### 基本概述
活动图(Activity Diagram)是用来表达流程的常用的一种UML。它与流程图很相似,比较容易掌握。
PS:这里先引出一个概念,那就是行为建模的三大利器,活动图(Activity Diagram)、状态机图(State Machine Diagram)、顺序图(Sequence Diagram)。使用者三种UML图,可以详尽互补的表示出项目的动态模型。
### 流程图
流程图是很早就接触的一类图,中学时就用它来表示某件事情的流程。其基本结构如下。
![](https://box.kancloud.cn/2016-02-25_56cec6c2e84e8.jpg)
### 活动图
### 基本语法
![](https://box.kancloud.cn/2016-02-25_56cec6c30e540.jpg)
解释:
1、每个活动图都有一个开始状态、一个或多个结束状态。
2、圆角矩形表示活动,该活动应当能一个持续一定时间,也就是说是一个持续动作。在不使用泳道的情况下,其中文字应该是主谓宾形式,使用泳道,应该是动宾形式。
3、流程方向,代表该活动往什么方向进行。
4、菱形用作判定和合并,也就是说用户条件分支和合并。
5、同步栅代表的是一个并行活动,同步栅应当分叉、合并配对使用
6、流程方向上的中括号表示条件,其中的文字叫做监护,简单的理解就是,该文字用于表示流程中所发生的分叉,比如是、否这样的分叉。
### 判断的三种处理方法
![](https://box.kancloud.cn/2016-02-25_56cec6c32175c.jpg)
### 泳道
![](https://box.kancloud.cn/2016-02-25_56cec6c347fe8.jpg)
PS:泳道也叫作分区,在泳道中表示活动的发起者谁。这时,活动中所填文字,只要采用动宾形式就行了。
### 并行活动
![](https://box.kancloud.cn/2016-02-25_56cec6c35f405.jpg)
PS:并行活动是由同步栅来控制的,同步栅必须分叉和汇合成对出现。
### 对象流
当活动图中出现了工作产品时,活动流就变成了对象流。
基本语法
![](https://box.kancloud.cn/2016-02-25_56cec6c371eb4.jpg)
PS:矩形表示的是工作产品,是某个类的实例或者是某些活动输出的结果。矩形里面的文字要用名词表示。
案例:
![](https://box.kancloud.cn/2016-02-25_56cec6c3831bd.jpg)
PS:对象流的输入输出是以活动为中心的,从工作产品输入到活动是输入对象流,从活动输出到工作产品是输出对象流。
### 注释
![](https://box.kancloud.cn/2016-02-25_56cec6c39b393.jpg)
PS:当某些时候UML不足以表达或者是表达起来很麻烦时可以采用注释的方式进行补充说明,该方法适用于任意UML图。
### 小结
1、明确该流程要达到怎样的业务目的。
2、该流程有什么角色参与?哪些是主要角色?
3、先画出流程主干,再考虑分支。
4、明确流程主干中活动涉及到的角色。
5、当不注意表达或者表达起来很麻烦时,要使用注释。
6、适当的控制活动的粒度。
7、先画出反映当前情况的流程,再想办法优化,画出优化后的流程。
8、对比前后差异,整理出改动部分。
案例1:
![](https://box.kancloud.cn/2016-02-25_56cec6c3ab9b8.jpg)
案例2:
![](https://box.kancloud.cn/2016-02-25_56cec6c3c16b3.jpg)