在UML中,行为图包括两种图:活动图和状态图。这两种图有很多相类似的地方,放到一起找出相同点和不同点有助于我们更深的理解两种图的区别,下面来一一认识状态图和活动图。
一、活动图:
活动图与流程图十分相似,用来对一个系统的动态行为建模,描述了一个工程或者操作的工作步骤。活动图是一种从活动到活动的流,它的每一个状态都具有入口动作,用以说明进入该状态发生的操作。它是一种动态视图,描述了系统的活动、判定点和分支。
1、组成
这里只介绍几种常用图符:
(1)起点。
图符:
用于表示活动图中所有活动的起点,一般每幅活动图有且仅有一个起点;
(2)终点。 图符:
用于表示活动图中活动的终点,一般每幅活动图中可以有一个或多个终点;
(3)活动。 图符:
活动图中要描述的一个动作;
(4)判断条件。 图符:
用于表示活动图中活动流程出现的分支和决策。通常引出多个转移,表示不同的活动分支;
(5)同步条。 图符:
表示活动之间的同步。一般有一个或多个信息流引入,或者有一个或多个信息流引出;
(6)转移。 图符:
用于表示活动之间的转移,连接活动、起点、终点、同步条、判断等。
2、泳道
所谓泳道,是将活动用线条分成一些纵向的矩形,这些矩形称为泳道,每个矩形属于一个特定的对象或部门的责任区。使用泳道可以把活动按照功能或所属对象的不同进行组织。属于一个对象的所有活动都放在同一个泳道内,对象的名字放在泳道的顶部。
3、活动图用例
如下图是关于机房收费系统学生上下机的大体流程的活动图:
二、状态图
状态图同样是UML中对系统状态描述的一种动态图,主要用来描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转移。对象在时间的触发下,从一个状态变成另一个状态。状态图适合于描述跨越多个用例的单个对象的行为,而不适合描述多个对象之间的行为协作。
1、组成
状态图的组成图符有很多和活动图是一样的。其中,起点和终点同活动图;
a、状态。 图符:
表示状态图中对象的一个简单状态;
b、转移。 图符:
说明两个状态之间的联系,当某个事件发生后,对象从一个状态变迁到另一个状态。
2、复合状态
一个简单的状态没有子结构,在事件的作用下从一个状态变成另一个状态。复合状态是一个可以被分解成多个顺序或并发子状态的状态。子状态可以被嵌套到任意级别。复合状态的图符同样是带圆角的矩形来表示,只是复合状态可以显示更多的细节。
3、状态图用例
以机房收费系统用户注册为例,简单描述状态图:
总结
以上是对活动图和状态图的简单介绍,它们都是用来描述对象的动态行为。活动图侧重从行为的动作来描述,状态图侧重从行为的动作来描述。一般活动图适合描述一个工作过程,多个对象之间的合作,状态图则适合于描述单个对象的状态变化情况。两者既相似又有很大差别,共同服务于工程的描述。