活动图是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)。

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

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

7、对象(Objects)

  

8、数据存储对象(DataStore)

使用关键字«datastore»

9、对象流(Object Flows)

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

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

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

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

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

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

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

10、分支与合并(Decision and Merge Nodes)
分支与合并用菱形表示

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

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

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

12、异常处理(Exception Handler)

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

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

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

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

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

二、活动图案例分析

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

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

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

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

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

三、总结

UML建模之活动图介绍相关推荐

  1. UML建模工具——活动图

    [面向对象分析UML建模工具全部文章] UML建模工具(1)--用例图 UML建模工具(2)--活动图 UML建模工具(3)--类图 UML建模工具(4)--顺序图 UML建模工具(5)--通信图 U ...

  2. uml活动图 各个功能的操作流程和分支_UML建模之活动图介绍(Activity Diagram)

    一.活动图的组成元素 Activity Diagram Element 1.活动状态图(Activity) 2.动作状态(Actions) 3.动作状态约束(Action Constraints) 4 ...

  3. UML建模(活动图状态图)

    活动图: 概念: 活动图本质上是一种流程图,它描述活动的序列,即系统从一个活动到另一个活动的控制流. 活动图的作用: 描述用例,描述类的操作,另外,可以用来描述算法(单独使用). 活动图表示法:   ...

  4. EA(Enterprise Architect) UML 建模之活动图

    http://www.cnblogs.com/echosong/p/3496747.html 一.活动图的概念作用 活动图本质上是一种流程图,它描述活动的序列,即系统从一个活动到另一个活动的控制流. ...

  5. 【UML建模】(5) UML建模之活动图

    您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦.

  6. 油田采油生产业务建模之活动图实践(EA使用入门)

    UML活动图(Activity Diagrams)是将低级系统行为描述为一系列控制和对象流路径,是阐明了业务用例实现的工作流程,活动图类似于流程图,在EA上可以使用泳道,每个活动图有一个起始点和结束点 ...

  7. uml活动图 各个功能的操作流程和分支_UML活动图介绍和用法图解

    本文概述 在UML中, 活动图用于演示系统内而不是实现内的控制流.它对并发和顺序活动进行建模. 活动图有助于设想从一个活动到另一个活动的工作流程.它强调了流动的条件和流动的顺序.流可以是顺序的, 分支 ...

  8. UML状态图和活动图

    转载于https://www.cnblogs.com/jingwhale/p/4230235.html UML状态图和活动图 UML状态图和活动图 统一建模语言UML(Unified Modeling ...

  9. UML建模之时序图(Sequence Diagram)转

    UML建模之时序图(Sequence Diagram) 一.时序图简介(Brief introduction) 二.时序图元素(Sequence Diagram Elements) 角色(Actor) ...

最新文章

  1. C++实现判断两个单词是否为变位词
  2. hadoop基本命令
  3. CheckStyle
  4. 使用MDT2013部署Win8系统之五-配置MDT服务器之添加任务序列
  5. CmsEasy 漏洞挖掘
  6. 【C语言】控制台窗口图形界面编程(三)窗口相关设置
  7. 智能导航短信告警的一个逻辑处理
  8. STL容器及其简单应用(stack、priority_queue、vector、deuqe、list、map/multimap、set/multiset)
  9. LeetCode 1093. 大样本统计
  10. java 方法 示例_Java语言环境getVariant()方法与示例
  11. [JAVA基础]你知道Java的四种引用类型吗
  12. 初步学习Django-第五篇:ORM详解
  13. 35. 第一个只出现一次的字符(C++版本)
  14. 2.6 使用for循环遍历文件 2.7 使用while循环遍历文件 2.8 统计系统剩余的内存 2.9 数据类型转换计算(计算mac地址) 3.0 数据类型转换(列表与字典相互转换)...
  15. 你见过花140年拼出来的现存“古代最高积木”吗?
  16. 5个常用的大数据可视化分析工具,你知道吗?
  17. html中动态添加元素属性值,JavaScript实现动态添加、移除元素或属性的方法分析...
  18. 骁龙865相当于什么处理器 骁龙865相当于麒麟的多少
  19. 批量下载邮件附件 可筛选和分类 直接跑、稳定版 Python完整代码
  20. 2023北京老博会·老年用品展·老年食品展·北京老年助浴展

热门文章

  1. 【错误记录】Kotlin 编译报错 ( Not nullable value required to call an ‘iterator()‘ method on for-loop range )
  2. 【Android 高性能音频】Oboe 函数库简介 ( Oboe 简介 | Oboe 特点 | Oboe 编译工具 | Oboe 相关文档 | Oboe 测试工具 )
  3. 【数据挖掘】基于密度的聚类方法 - DBSCAN 方法 ( DBSCAN 原理 | DBSCAN 流程 | 可变密度问题 | 链条现象 | OPTICS 算法引入 | 聚类层次 | 族序概念 )
  4. 【Kotlin】Kotlin 构造函数 ( 主构造函数 | 主构造函数声明属性 | init 初始化代码块 | 次构造函数 | 构造函数委托 | 调用构造函数创建实例对象 )
  5. 【solr专题之二】配置文件:solr.xml solrConfig.xml schema.xml
  6. 不知道对象的传递那些参数
  7. 携程CEO称成功来自传统营销 B2C已经过时
  8. 如何使用 Java8 实现观察者模式?(下)
  9. ajax无刷新方式对form表单进行赋值!
  10. 网站降权的原因以及恢复的方法 (二)