UML活动图(最新最全总结分享)上篇

原谅我的私心今天没有按照UML结构去更新视图,出于最近接触很多的活动图仿真。想趁着这股热乎劲优先把活动图给整理归纳了;本次活动图并非个人妄谈,均来源于官网文档或者各种UML书籍中总结,本次案例讲解使用工具是EA,如若需要安装包欢迎评论留言我会一一发送。

引言:

活动图是UML中行为图之一,活动图可以看作状态图的特殊形式(活动图都处于活动状态中),活动图中一个活动结束后将立即进入下一个活动(在状态图中状态的转移可能需要事件的触发);描述的是从活动到活动的控制流,用于描述多个对象在交互时采取的活动,它关注对象如何相互活动以完成一个事务。

摘要:

活动图和状态机图中元素会有许多重叠,比如控制节点等;本编将从活动图含义、使用场景、包含元素关系线以及数据配置等讲述;从图本身整体再到局部元素一一拆解,同时案例讲述活动图运用场景有哪些。

关键词:

活动图、活动、动作、控制节点、对象节点、控制流、对象流

一、UML基础行为图——活动图介绍

活动图本质是流程图,强调时间发生的活动。活动图强调的是活动到活动的控制流。一个活动是一个状态机中进行的非原子的执行的单元。活动最终导致一些动作,这些动作由可执行的原子计算组成,这些计算会导致系统状态的改变或一个值的返回。动作可以是调用操作、发送信号、创建或者撤销一个对象等等

二、活动图元素
1、活动

UML2.5中对活动的抽象定义如上图所示,活动包含活动节点和活动边界(控制流、对象流)

活动节点是非原子结构,可以再次拆分为子活动状态和动作状态;因此活动是可以互相嵌套的,一个活动里边可以包含N多活动(也可以理解为活动即一个微型的活动图),活动是复杂性的计算和持续事件的执行(直至活动结束);在EA中活动和动作符号均由矩形圆角,只是构造型有所区别不同,如下图所示:

 1.1、动作

UML2.5中动作有很多种类,关于EA中就列出来十几种,其中常用的有纯原子动作、发送信号、接收事件、调用操作、等待事件、不透明动作等等(具体应用场景待本小编挖掘中,目前UML2.5也没给出相应案例)

EA中动作种类
EA中动作种类

发送信号(send signal actions)

信号,是由一个对象异步的发送,并由另一个对象接收的已命名的实体。发送对象明确地创建并初始化一个信号实例,并把它发送到一个对象或者对象集合。发送信号本身是一个动作,根据输入信息创建一个信号实例,并且把它传送到目标对象,在那儿它可以启动状态机的转换,或者一个行为的执行。参数值对于相关联的行为执行有效。请求者马上继续执行。任何应答消息被忽略,或者不被传送到请求者。

EA中发送信号符号表示为如下图所示的凸五边形;发送信号顾名思义其需配置数据就是选择配置一个信号事件(关于事件、消息、触发器等等行为图要素,小编还会陆续整理,消除各位UML学习中的任何疑惑);

  • 疑惑1:发送信号在活动图中应该连接控制流还是对象流了?
  • 疑惑2:为什么有发送信号没有接收信号的元素了
  • (文章会慢慢揭晓哦)

接收事件(accept event actions)

讲述接收事件前需要先理清楚事件有哪些,事件是什么;根据UML2.5中规定事件会分为消息事件和改变事件,其中消息事件还会分为时间事件、调用事件和信号事件。

  • 调用事件:代表对操作的调用,这个对象用状态的转移而不是固定的处理过程实现操作。操作的参数即是事件的参数;因此调用事件的属性即为事件名+参数
  • 信号事件:代表信号传递,信号事件为异步事件,调用事件为同步事件;即信号事件的属性为:选择信号
  • 时间事件:指的是满足某一时间表达式的情况的出现。时间事件代表事件的流逝。列如,到了某一时间点或经过了某一时间段。时间事件属性配置用关键字after或when表示+时间刻度
  • 改变事件:指的一个布尔表达式中的变量发生变化,使得该布尔表达式的值相应地变化,从而满足某些条件,则这种事件称为变化事件;因此改变事件的属性配置为条件表达式,其条件来源于该改变事件多对应对象的属性

由此可知,接收事件可以选择以上四种事件数据。发送信号中提到为什么有发送信号没有接收信号了?从实际情况讲,因为发送方一般每次是单个信号发送传递的。但是接收方是多事件监视,即接收事件包含接收信号,但不完全等同于接收信号。

调用操作(call operation)

即调用工程文件中操作数据,强调面对对象的方法调用;即其属性配置是选择对象的操作(方法)

调用行为(call bahavior  

即直接调用一个行为,而不是调用一个行为特性而导致那个行为被调用。动作的参数值对调用的行为的参数值有效。如果调用是同步的,调用动作等待被调用行为结束且结果返回到输出引脚以后再结束;如果调用是异步的,调用动作不等待结果而直接返回。行为特性而导致那个行为被调用,指的是通过调用操作触发方法,或者是通过信号触发行为的情况

调用类的静态方法或者是一般的函数

  • 25
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值