什么是活动图?
----流程图:
流程图常被用来建立算法模型,使用流程图可以表示一个算法的执行序列,过程,判定点,分支和循环
----活动图:
活动图是uml用于对系统的动态行为建模的一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流。活动图的本质是一种流程图。 活动图着重表现从一个活动到一个活动的控制流。
----活动图和流程的关系:
活动图和流程图十分类似,不同之处在于它支持并行活动
----活动图的缺点:
很难清楚的描述动作与对象之间的关系,没有交互图直接
活动图的基本组成元素:
1.活动状态
对象的活动状态可以被理解成一个组合,它的控制流由其他活动状态或动作状态组成,用于表示状态机中的非原子运行
----特点:
1:活动状态可以分解成其他子活动或者动作状态,由于它是一组不可中断的动作或操作的组合,所以可以被中断。 |
2:活动状态的内部活动可以用另一个活动图来表示 |
3:和动作状态不同,活动状态可以有入口动作和出口动作,也可以有内部转移 |
4:动作状态是活动状态的一个特例,如果某个活动状态只包含一个动作,那么它就是一个动作状态 |
Uml中动作状态和活动状态的图标相同,但是活动状态可以在图标中给出入口动作和出口动作等信息。
2. 动作状态(actions):
活动图中包括动作状态和活动状态,对象的动作状态是活动图最小单位的构造快,表示原子动作,是不可中断的动作,并在此动作完成后通过完成转换转向另一个状态。
动作状态特点:
1.动作状态是原子的,是构造活动图的最小单位 |
2.动作状态是不可中断的,一旦开始运行就不能中断,一直运行到结束 |
3.动作状态是瞬时的行为,它所占用的处理时间极短,有时甚至可以忽略 |
4.动作状态可以有入转换,入转换既可以是动作流也可以是对象流,动作状态至少有一条出转换,这条转换以内部的完成为起点,与外部事件无关。 |
5.动作状态和活动状态图中的状态不同,它不能有入口动作和出口动作,更不能有内部转移 |
6.在一张活动图中,动作状态允许出现多处。 |
3. 动作流
当一个动作状态或活动状态结束时,该状态就会转移到下一个状态,这就是无触发转移,即当状态结束工作时就自动的发生转移
活动图开始于初始状态,然后自动转移到第一个东走状态,一旦该状态所说明的工作结束,控制就会不加延迟的转换到下一个动作或活动状态,并以此不断重复,知道遇到一个终止状态为止,活动图的初始状态用一个实心球表示,终止状态用一个半实心球表示
4.开始节点(initial Node):
开始节点:表示成实心黑色原点
5.终止节点(Final Node):
分为活动终止节点和流程终止节点
活动终止节点表示整个活动的结束
流程终止节点表示子流程的结束
6.分支与合并:
在流程图中,分支描述了软件对象在不同的判断结构下所执行的不同动作,它表示一个触发事件在不同的触发条件下引起多个不同的转移
在活动图中分支与合并用空心小菱形表示,分支包括一个入转换和俩个带条件的出转换
7. 分叉与汇合(fork and join nodes):
分叉可以有一个输入转换和俩个或多个输出转换,分叉的每一个控制流都是并发的,一个分叉表示把一个指控流分解成俩个或多个的并发运行控制流
汇合表示俩个或多个并发控制流同步发生,当所有的控制流都到达汇合点之后,控制才继续向下进行。
8. 同步条
9. 泳道:
泳道将活动图的活动状态分组,每一组表示负责那些活动的业务组织,在泳道活动图中,每一个活动都只能明确的属于一个泳道,从语义上,泳道可以被理解为一个模型包
附加例子:
最后,这是我根据《机房收费系统》画的活动图,希望大家多多指点: