enterprise architect ( 六)活动图(activity)

简介: Activity(活动)图用于为系统行为建模,活动图中的这些行为和系统的总体流程相关。一个加工流的逻辑路径(基于各种各样的条件,并行处理,数据访问,中断和其他逻辑路径)用于构建一个加工,系统或程序

作用: (1)为系统行为建模(2) 为动态元素的交互建模
活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流。活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。

特点 :
(1)活动图是系统的一种行为视图,它描述参与行为的对象类的活动的顺序,包括依赖于条件的行为和并发行为。

(2)活动图演示了系统中的功能流。如:在业务模型中显示业务工作流;在收集需求时显示一个用例中的事件流等。活动图定义了工作流从哪里开始,到哪里结束,工作流中发生了哪些活动,这些活动按什么顺序发生,活动是由哪些对象来完成的。

(3)活动图是状态图的一种扩展形式。如果在一个状态图中的大多数状态是表示操作的活动,而转移是自动转移,就演化为活动图。但两者有区别,活动图描述的是响应内部处理的对象类行为,状态图描述的是对象类响应事件的外部行为。

(4)活动图与交互图相比也各有侧重点。活动图着重表现的是活动的控制流;而交互图着重表现的是对象到对象的控制流。


活动图和流程图区别
(1)活动图和流程图很相似,但有区别。
(2)流程图着重描述处理过程,各个处理之间有严格的顺序和时间关系。
(3)而活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统行为,而非
     系统的处理过程。活动图能表达并发情形,而流程图不能。
(4)活动图是面向对象的,而流程图是面向过程的。



一、活动图的组成元素 Activity Diagram Element


(1)Activity(活动)
Activity组织和指定从属关系行为的参与,例如sub-Activitie或 Action,来反映一个过程的控制流和数据流。在活动图中Activity用于各种各样的建模目的,Activity把来自过程化的应用程序开发用于系统设计,Activity用来为组织结构或工作流进行业务流程建模。

活动用于表达由一系列Action组成非原子的行为,其特点如下:
1、Activity可以分解成其他子活动或者Action。
2、Activity的内部活动可以用另一个活动图来表示。
3、和Action不同,活动可以有入口动作和出口动作,也可以有内部转移。
4、Action是活动状态的一个特例,如果某个Activity只包括一个动作,那么它就是一个Action。


(2)Activity Partition(活动分区)
activity Partition用于逻辑组织一个活动。它对活动的流动没有影响,但有利于结构化活动的视图部分

(3)Structured Activity(结构化的活动)
结构化的活动元素用在活动图中。一个结构化的活动是一个活动节点,它可以是一个包含一些从属节点的独立的活动组。没有其它活动可以干扰这个活动的处理。
你可以在一个活动图中添加一个Structured Activity元素。它是一个合成元素,一个连接器和一个子活动图,它通过自己右下角有小图标表示不同的类型。


(4)Action(动作)
Action元素描述了在系统中发生的一个基本进程或变换。它是活动图中的基本功能单元。Action可以被认为是Activity的孩子。它们都表示进程,但Activity可以包含多步骤或可分解的进程,其中每一个都可以用Action体现。Action不能进一步分解。

Action的特点:Action是指原子的,不可中断的动作,并在此动作完成后通过完成转换转向另一个状态。动作状态有如下特点:

1、Action是原子的,它是构造活动图的最小单位。
2、Action是不可中断的。
3、Action是瞬时的行为。
4、Action可以有入转换,入转换既可以是动作流,也可以是对象流。Action至少有一条出转换,这条转换以内部的完成为起点,与外部事件无关。
5、Action与状态图中的状态不同,它不能有入口动作和出口动作,更不能有内部转移。
6、在一张活动图中,Action允许多处出现。

(5)Partition(泳道)

artition用于在逻辑上组织一个Activity,它不会影响活动图的流,但有助于组织活动图。
显示Action(动作)在那个对象中执行,或显示执行的是那一项组件的那一部分工作。

泳道将活动图中的活动划分为若干组,并把每一组指定给负责这组活动的业务组织,即对象。在活动图中,泳道区分了负责活动的对象,它明确地表示了哪些活动是由哪些对象进行的。在包含泳道的活动图中,每个活动只能明确地属于一个泳道。

泳道是用垂直实线绘出,垂直线分隔的区域就是泳道。在泳道的上方可以给出泳道的名字或对象的名字,该对象负责泳道内的全部活动。泳道没有顺序,不同泳道中的活动既可以顺序进行也可以并发进行,动作流和对象流允许穿越分隔线。

在一般情况下,绘制活动图时应先集中注意力在业务工作上或系统的服务内容上,绘制动作状态和转移等,弄清楚系统的总体行为含义,而后再绘制泳道,把开展活动的责任分配到对象。






(6)Decision(判断)
Decision是Activity图或Interaction Overview图的一个元素,它表明一个条件前进的节点。若条件为true,则进程朝一个方向进行,若不是则另一个方向。

(7)Merge(合并)
在Activity图,Analysis图和Interaction Overview图中Merge节点汇集了一些可供选择的流路径。 Merge有多个流入边和一个流出边。流入流出Merge的边要么都是object flows要么都是control flows。





(8)Send(发送)
在活动图中Send元素常用于描述Action(动作)发出一个信号。

(9)Receive(接收)
在活动图中,Receive元素用于定义接收一个请求。一旦接受的信息满足规则,那么来自Receive元素的动作就会发生一次。

(10)Initial(起点/初始态)
Initial元素在Activity图和State Machine图中被使用。在Activity图中。当一个活动被调用时,它定义一个流的开始。在State Machines中,它是一个“伪状态”,用于表示一个Composite State的默认状态。它可以是一个Composite State的区域顶点

(11)Final(终点)
活动Final元素描述一个Activity(活动)完成。到达Final,活动图中所以执行都中止。
活动终止节点表示整个活动的结束

(12)Flow Final(流终点)
Flow Final元素描述了一个系统出口,它对在Activity(活动)中的其它正在执行的流没有影响。

(13)Fork/Join(分叉/结合)
分叉/结合元素有以下不同的使用模式
把一个流分成一些并发的流。
合并一些并发的流
把一些并发流合并为另外一些并发的流。




Activity Diagram(活动图)的应用

1、分析Use Case
在分析Use Case时需要理解系统将会发生哪些动作,行为之间依赖关系是什么,此时可以用活动图来验证Use Case。
2、理解工作流程
活动图对理解业务处理过程十分有用。可以画出业务工作流的活动图与领域专家进行交流,明确业务处理操作是如何进行的,将会有怎样的变化。
3、描述复杂过程的算法
在这种情况下使用活动图不过是UML版的程序流程图,常规的顺序、分支过程在活动图中都能表现。
利用分支条件也可以实现循环控制结构:用一个动作状态设置循环变量,另一个条件动作状态增加循环变量,再用一个判定测试循环结束条件。
4、处理多线程应用
利用活动图支持并发活动的特点,描述多线程应用的行为。


下列情况不应使用活动图
表现对象之间的协同关系、理解对象在其生命期的行为等。这些任务可以分别用交互图、状态图来完成。








参考资料:
http://www.cnblogs.com/ywqu/archive/2009/12/14/1624082.html

http://smartlife.blog.51cto.com/1146871/289345/

https://wenku.baidu.com/view/bafad709f12d2af90242e609.html

http://www.cnblogs.com/jiqing9006/p/3344221.html

http://jingyan.baidu.com/article/4e5b3e19279ced91901e24fc.html

http://blog.sina.com.cn/s/blog_6d3c1ec60100uuu2.html

http://www.mamicode.com/info-detail-1251283.html


猜你喜欢

转载自262487936.iteye.com/blog/2374121