活动图主要用于描述系统中对象的一个活动到另一个活动的控制流、一个事务的活动序列、工作的流程和并发的处理能力.
活动图内容
1、活动状态图(Activity)
2、动作状态(Actions)
(1)、动作状态是原子的,它是构造活动图的最小单位。
(2)、动作状态是不可中断的。
(3)、动作状态是瞬时的行为。
(4)、动作状态可以有入转换,入转换既可以是动作流,也可以是对象流。动作状态至少有一条出转换,这条转换以内部的完成为起点,与外部事件无关。
(5)、动作状态与状态图中的状态不同,它不能有入口动作和出口动作,更不能有内部转移。
(6)、在一张活动图中,动作状态允许多处出现。
3、动作流(Control Flow)
动作流表示了动作使用对象以及动作对对象的影响
4、开始节点(Initial Node)
一个实心圆表示初始节点
5、终止节点(Final Node)
一个圆圈内加一个实心圆
不一定要定义活动终点.活动终点表示所有被触发的活动都执行完毕,没有待执行的活动
6、对象流(Object Flows)
7、分支与合并(Decision and Merge Nodes)
分支与警戒条件:分支用菱形表示.每个离开转换都会有一个警戒条件,用来表示满足什么条件的时候执行该转换.
合并路径:
8、分叉与汇合(Fork and Join Nodes)
将活动用虚线分成一些纵向的区域.每个区域代表特点类/人或部门的一个责任区.
泳道和类并不是一一对应的关系
泳道显示了对象对系统所做的贡献
当一个活动结束时,控制流就会马上传递给下一个活动节点,在活动图中称之为"转换",用一条带箭头的直线来表示.
实现活动图时,最终要将活动分配给类来实现
活动图与状态图的同异
相同点 | 不同点 |
1、描述图符基本一样 | 1、描述重点不同:状态图描述的是对象的状态和状态之间的转移,活动图描述的是活动到活动的控制流。 |
2、都可以描述一个系统和对象在生存期间的状态和行为 | 2、活动图中的状态转换不需任何触发事件,活动图中的动作可以放在泳道中,而状态图不可以。 |
都可以描述系统或对象在多线程操作中的同步和并发行为 | 3、使用场合不同。状态图用来显示一个对象及其生命周期内的行为,活动图用于描述用例、涉及多个用例的工作流程和多线程应用。 |
都可以采用分支流描述一个系统或对象的行为控制 |
|
状态图是用于确定某个类(或者说是对象)的各种状态转换,例如,冰、水、水蒸气三种表示了水的三种状态。
活动图是表示某个过程中步骤的先后顺序,一个活动到另一个活动,比如冰加热变成水蒸气的过程,1.冰块融化成水;2.水蒸发变成水蒸气。是状态图的另一种形式
活动图与流程图的同异
活动图 | 流程图 |
表示并发活动的情形 | 表示串行过程 |
面向对象,着重表现系统的行为 | 面向过程,着重描述系统的处理过程 |
活动图功能包含了流程图 |
|
是否可用活动图
可以使用活动图的情况:
对用例进行分析
分析多个用例的工作流
处理多线程
不可使用活动图的情况
显示对象间的合作
显示对象在其生命周期内的运转情况
下面是我画的机房收费系统上机的一个活动图