活动图用于研究实现业务目标时所要执行的各项任务或活动的顺序安排。活动既可以是手动执行的任务,也可以是自动执行的任务。它可完成一个工作单元。活动图是状态图的一种特殊形式。其中所有或多数状态都是活动状态,而且所有或多数转移都在源状态中的活动完成时立即触发。
一个例子
活动图与流程图的区别
活动图描述系统使用的活动、判定点和分支,看起来和流程图没什么两样,并且传统的流程图所能表示的内容,大多数情况下也可以使用活动图表示,但是两者是有区别的,不能将两个概念混淆。
⑴ 流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间有严格的顺序和时间关系
活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。
⑵ 活动图能够表示并发活动的情形,而流程图不能。
⑶ 活动图是面向对象的,而流程图是面向过程的。
活动图与状态图的区别
活动图与状态图都是状态机的表现形式,但是两者还是有本质区别:
状态图着重描述从一个状态到另一个状态的流程,主要有外部事件的参与。
活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。
基本元素详解
1) 初始节点和活动终点:
实心圆表示初始节点(只有一个),圆圈内加一个实心圆来表示活动终点(可有多个)。
2) 活动节点:
用来表示一个活动
3) 转换:
一条带箭头的直线来表示。 一旦前一个活动结束马上转到下一个活动(无触发转换)。
4) 分支与监护条件:
分支是用菱形表示的,它有一个进入转换(箭头从外指向分支符号),一个或多个离开转换(箭头从分支符号指向外)。而每个离开转换上都会有一个监护条件,用来表示满足什么条件的时候执行该转换。
5) 分叉与汇合:
分叉用于将动作流分为两个或者多个并发运行的分支,而汇合则用于同步这些并发分支,以达到共同完成一项事务的目的。
分叉可以用来描述并发线程,每个分叉可以有一个输入转换和两个或多个输出转换,每个转换都可以是独立的控制流。
汇合代表两个或多个并发控制流同步发生,当所有的控制流都达到汇合点后,控制才能继续往下进行。
每个汇合可以有两个或多个输入转换和一个输出转换。
汇合将两条路径连接到一起,合并成一条路径。汇合指的是两个或者多个控制路径在此汇合的情况。汇合是一种便利的表示法,省略它不会丢失信息。汇合和分支常常成对的使用,合并表示从对应分支开始的条件行为的结束。
分叉和汇合都使用加粗的水平线段表示。
抽象的活动图
带泳道的活动图
带对象流的活动图
用活动图描述某个对象时,可以把涉及到的对象放置在活动图中,并用一个依赖将其连接到进行创建、修改和撤销的动作状态或者活动状态上,对象的这种使用方法就构成了对象流。
活动图绘制要点
⑴ 识别要对工作流描述的类或对象。找出负责工作流实现的业务对象,这些对象可以是显示业务领域的实体,也可以是一种抽象的概念和事物。找出业务对象的目的是为每一个重要的业务对象建立泳道。
⑵ 确定工作流的初始状态和终止状态,明确工作流的边界。
⑶ 对动作状态或活动状态建模。找出随时间发生的动作和活动,将它们表示为动作状态或活动状态。
⑷ 对动作流建模。对动作流建模时可以首先处理顺序动作,接着处理分支与合并等条件行为,然后处理分叉与汇合等并发行为。
⑸ 对对象流建模。找出与工作流相关的重要对象,并将其连接到相应的动作状态和活动状态。
⑹ 对建立的模型进行精化和细化。
参考地址:http://baike.baidu.com/
参考地址:http://www.uml.org.cn/oobject/201409092.asp