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

1、活动状态图(Activity)

2、动作状态(Actions)

3、动作状态约束(Action Constraints)

4、动作流(Control Flow)

5、开始节点(Initial Node)

6、终止节点(Final Node)

7、对象(Objects)

8、数据存储对象(DataStore)

9、对象流(Object Flows)

10、分支与合并(Decision and Merge Nodes)

11、分叉与汇合(Fork and Join Nodes)

12、异常处理(Exception Handler)

13、活动中断区域(Interruptible Activity Region)

14、泳道(Partition)

二、活动图案例分析

三、总结

活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流。活动图在本质上是一种流程图。活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。

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

1、活动状态图(Activity)

活动状态用于表达状态机中的非原子的运行,其特点如下:

(1)、活动状态可以分解成其他子活动或者动作状态。

(2)、活动状态的内部活动可以用另一个活动图来表示。

(3)、和动作状态不同,活动状态可以有入口动作和出口动作,也可以有内部转移。

(4)、动作状态是活动状态的一个特例,如果某个活动状态只包括一个动作,那么它就是一个动作状态。

UML中活动状态和动作状态的图标相同,但是活动状态可以在图标中给出入口动作和出口动作等信息。

2、动作状态(Actions)

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

(1)、动作状态是原子的,它是构造活动图的最小单位。

(2)、动作状态是不可中断的。

(3)、动作状态是瞬时的行为。

(4)、动作状态可以有入转换,入转换既可以是动作流,也可以是对象流。动作状态至少有一条出转换,这条转换以内部的完成为起点,与外部事件无关。

(5)、动作状态与状态图中的状态不同,它不能有入口动作和出口动作,更不能有内部转移。

(6)、在一张活动图中,动作状态允许多处出现。

UML中的动作状态图用平滑的圆角矩形表示,如下:

3、动作状态约束(Action Constraints)

动作状态约束:用来约束动作状态。如下图展示了动作状态的前置条件和后置条件

4、动作流(Control Flow)

动作之间的转换称之为动作流,活动图的转换用带箭头的直线表示,箭头的方向指向转入的方向。

5、开始节点(Initial Node)

开始节点:表示成实心黑色圆点

6、终止节点(Final Node)

分为活动终止节点(activity final nodes)和流程终止节点(flow
final nodes)。

活动终止节点表示整个活动的结束

而流程终止节点表示是子流程的结束。

、对象(Objects)

  

、数据存储对象(DataStore)

使用关键字«datastore»

、对象流(Object Flows)

对象流是动作状态或者活动状态与对象之间的依赖关系,表示动作使用对象或动作对对象的影响。用活动图描述某个对象时,可以把涉及到的对象放置在活动图中并用一个依赖将其连接到进行创建、修改和撤销的动作状态或者活动状态上,对象的这种使用方法就构成了对象流。

对象流中的对象有以下特点:

(1)、一个对象可以由多个动作操作。

(2)、一个动作输出的对象可以作为另一个动作输入的对象。

(3)、在活动图中,同一个对象可以多次出现,它的每一次出现表面该对象正处于对象生存期的不同时间点。

对象流用带有箭头的虚线表示。如果箭头是从动作状态出发指向对象,则表示动作对对象施加了一定的影响。施加的影响包括创建、修改和撤销等。如果箭头从对象指向动作状态,则表示该动作使用对象流所指向的对象。

状态图中的对象用矩形表示,矩形内是该对象的名称,名称下的方括号表明对象此时的状态。

、分支与合并(Decision and Merge
Nodes)


分支与合并用菱形表示

、分叉与汇合(Fork and Join Nodes)

分为水平风向和垂直方向。

对象在运行时可能会存在两个或多个并发运行的控制流,为了对并发的控制流建模,UML中引入了分叉与汇合的概念。分叉用于将动作流分为两个或多个并发运行的分支,而汇合则用于同步这些并发分支,以达到共同完成一项事务的目的。

、异常处理(Exception Handler)

当受保护的活动发生异常时,触发异常处理节点。

、活动中断区域(Interruptible Activity Region)

活动中断区域围绕一些可被中断的动作状态图。比如下图,正常情况下【Process Order】顺序流转到【Close
Order】,订单处理流程完毕;但在【Process Order】过称中,会发送【Cancel
Order】请求,这时会流转到【Cancel Order】,从而订单处理流程结束

、泳道(Partition

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

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

二、活动图案例分析

1、  泳道分为:会员泳道和系统泳道。会员选择商品并加入购物车,系统完成订单生成及其支付完毕。

2、  开始节点:会员添加商品到购物车,点击【订单确认】,开始交于系统处理订单流程

3、  结束节点:商品发送完毕和付款成功,订单处理流程结束

4、  活动状态:产生订单、Check Credit Cart核对信用卡、Check Stock 核对库存量、Deliver Goods 发送商品、Process Credit Cart付款

5、  分叉与汇合:【产生订单】份叉为检查库存量和会员支付金额是否足够,如果不足,取消订单,如过库存量和支付金额足够,发送商品和付款,最后汇合为订单完成。

三、总结

活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。活动图能够表示并发活动的情形,活动图是面向对象的。

UML_活动图的更多相关文章

  1. 用rose画UML图(用例图,活动图)

    用rose画UML图(用例图,活动图) 首先,安装rose2003,电脑从win8升到win10以后,发现win10并不支持rose2003的安装,换了rose2007以后,发现也不可以. 解决途径: ...

  2. 初次启动app校验的活动图和分析

    初次启动活动图 version 1 version 2 version 3 根据上图的活动图分析,可能存在较严重的问题: 主线程中如果发现是sdcard的url,则可能进行重命名 FirstEnter ...

  3. [.net 面向对象程序设计深入](3)UML——在Visual Studio 2013/2015中设计UML活动图

    [.net 面向对象程序设计深入](3)UML——在Visual Studio 2013/2015中设计UML活动图 1.活动图简介 定义:是阐明了业务用例实现的工作流程. 业务工作流程说明了业务为向 ...

  4. [UML]UML系列——活动图activity diagram

    系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...

  5. Enterprise Architect 学习 之 活动图

    UML中,活动图用来展示活动的顺序.显示了从起始点到终点的工作流,描述了活动图中存在于事件进程的判断路径.活动图可以用来详细阐述某些活动执行中发生并行处理的情况.活动图对业务建模也比较有用,用来详细描 ...

  6. UML活动图与流程图的区别

    http://blog.chinaunix.net/uid-11572501-id-3847592.html UML活动图与流程图的区别 (1).流程图着重描述处理过程,它的主要控制结构是顺序.分支和 ...

  7. iOS 活动图 流程图

    活动图        活动图和状态机图都被称为演化图,其区别和联系如下:       1.活动图:用于描述用例内部的活动或方法的流程,如果除去活动图中的并行活动描述以后,它就变成流程图.       ...

  8. UML精粹5 - 状态图,活动图,通信图,组合结构,组件图,协作,交互概述图,时间图

    状态机图state machine diagram 下面是状态图的一个例子(一个城堡中的秘密保险箱的控制面板). 转换transition包括3个部分:trigger-signature [guard ...

  9. UML状态图和活动图

    UML状态图和活动图 统一建模语言UML(Unified Modeling Language)是非专利的第三代建模和规约语言.UML是一种开放的方法,用于说明.可视化.构建和编写一个正在开发的.面向对 ...

随机推荐

  1. Poj3074-Sudoku(数独DLX)

    题意: 给出一个9*9的矩阵,有一些格子已经填了数,有一些是.代表未填.求任意一组解使得每行包含1~9,每列包含1~9,每个小矩形(3*3)包含1~9. 解析: 精确覆盖DLX的经典题目,每一行代表要 ...

  2. 【HDU1514】Stars(树状数组)

    绝对大坑.千万记住树状数组0好下标位置是虚拟节点.详见大白书P195.其实肉眼看也能得出,在add(有的也叫update)的点修改操作中如果传入0就会死循环.最后TLE.所以下标+1解决问题.上代码! ...

  3. thinkphp实现excel数据的导入导出

    下载地址:phpexcel.rar 实现步骤: 一:在http://phpexcel.codeplex.com/下载最新PHPExcel放到Vendor下,注意位置:ThinkPHP\Extend\V ...

  4. feof()

    百度知道 >电脑/网络 >编程语言 >C/C++ feof()这个函数是用来判断指针是否已经到达文件尾部的. 若fp已经指向文件末尾,则feof(fp)函数值为"真&quo ...

  5. sqlserver练习

    1.基本表的练习: create table Test( name ), age int, sex ) ) alter table Test ) alter table Test ) alter ta ...

  6. JAVA-判断请求来自PC端还是手机端

    某些情形,我们需要判断Http请求是来自手机端还是电脑端,关键是取得User-Agent的信息,进行筛选判断即可. 核心类如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

  7. Func 委托 和 Action 委托 初步谈论

    继上篇EventHandler之后,继续填坑,简单了解下Func<TResult> 委托 和 Action 委托. msdn对于两者的解释: Func<TResult>:封装一 ...

  8. class创建单击事件

    $(function () {            $(".search-button").click(function () {                $(" ...

  9. react-native使用react-art制作SVG动画

    想要使用SVG做一个动画,郁闷了一上午终于有了一点思路.. 其实我是看了一篇国外的文章.网址:http://browniefed.com/blog/2015/05/03/getting-react-a ...

  10. sql 模糊查询带下划线的字段 _

    1.SELECT * FROM dbo.tb_Test 2.SELECT * FROM dbo.tb_Test WHERE name LIKE '%c_%' 3.SELECT * FROM dbo.t ...