首页 > 其他分享 >UML活动图(最新最全总结分享)上篇

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

时间:2024-07-05 16:57:51浏览次数:17  
标签:分享 动作 最全 发送 调用 事件 信号 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  

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

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

标签:分享,动作,最全,发送,调用,事件,信号,UML,活动
From: https://blog.csdn.net/peppa_y/article/details/140206992

相关文章

  • 免费分享:全国大学基本信息数据_地区分布图(附下载方法)
    截至2021年9月30日,全国高等学校共计3012所,其中:普通高等学校2756所(本科1270所、专科1486所),成人高等学校256所。该名单未包含香港特别行政区、澳门特别行政区和台湾地区高等学校。全国大学地区分布图附带各大学基本信息为近日高考考生的大学报考选择提供帮助。数据简介本数......
  • 免费分享:中国三级及以上河流(附下载方法)
    河流分级法的分级方法是从源头最小河流开始,称为一级河流;两条一级河流汇合成二级河流;以此类推,三级河流等等;最后是干流。本文将介绍中国三级及以上河流数据。数据简介1:100万中国三级及以上河流矢量数据是涵盖了全国范围内三级及以上级别河流的详细地理信息和空间分布。......
  • 全网最全网络安全入门指南(2024版)零基础可学_网络安全学习指南
    下一个十年的饭碗就是它了!据悉,2019年9月27日,工信部发布**《关于促进网络安全产业发展的指导意见(征求意见稿)》,明确提出2025年培育形成一批营收20亿元以上的网络安全企业,网络安全产业规模超过2000亿元的发展目标;据市场调研机构Gartner预测,我国网络安全预计将以......
  • 驭码CodeRider将亮相世界人工智能大会,AI 产品、重磅分享,真的很City!
    GitLab是一个全球知名的一体化DevOps平台,很多人都通过私有化部署GitLab来进行源代码托管。极狐GitLab:https://gitlab.cn/install?channel=content&utm_source=csdn是GitLab在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。极狐GitLab在5月28......
  • Apache DolphinScheduler 与 AWS 的 EMR/Redshift 集成实践分享
    引言这篇文章将给大家讲解关于DolphinScheduler与AWS的EMR和Redshift的集成实践,通过本文希望大家能更深入地了解AWS智能湖仓架构,以及DolphinScheduler在实际应用中的重要性。AWS智能湖仓架构首先,我们来看一下AWS经典的智能湖仓架构图。这张图展示了以S3为核心的数据湖,围绕数......
  • 2024 年第十四届 APMCM 亚太地区大学生数学建模A题 飞行器外形的优化问题--完整思路代
    飞行器是在大气层内或大气层外空间飞行的器。飞行器可以分为:航空器航天器、火箭和导弹。在大气层内飞行的称为航空器,如气球、飞艇、飞机等。它们靠空气的静浮力或空气相对运动产生的空气动力升空飞行。在太空飞行的称为航天器,如人造地球卫星、载人飞船、空间探测器、航天飞机......
  • 网络安全工程师面试分享
    你认为怎样适应从学校到社会的转变?你接触网络安全行业有多长时间了?为什么选择做这个行业?你为何选择来我公司工作?你对我公司了解些什么?你为什么要应聘这个职位?你在选择工作时都考虑哪些因素?领导交给你一个很重要但又很艰难的工作,你怎么去处理?谈谈你对公司加班的看法?你认为你......
  • 基于 .net core 8.0 的 swagger 文档优化分享-根据命名空间分组显示
    前言公司项目是是微服务项目,网关是手撸的一个.netcorewebapi项目,使用refit封装了20+服务SDK,在网关中进行统一调用和聚合等处理,以及给前端提供swagger文档在我两年前进公司的时候,文档还能够顺滑的打开,在去年的时候文档只能在本地打开,或者访问原始的swagger页面,knife......
  • 【专题】2024年6月数字化行业报告合集汇总PDF分享(附原数据表)
    原文链接:https://tecdat.cn/?p=36658原文出处:拓端数据部落公众号随着科技的飞速发展和全球数字化进程的加速推进,我们正处在一个充满变革与机遇的时代。从人工智能的深入应用到工业互联网的蓬勃发展,从智慧医疗的兴起到新能源汽车的普及,每一个领域都在经历着前所未有的转型与升级......
  • 【python爬虫实战】进阶天气虫虫(过程复盘 & 心得分享)
    程序设计过程里的一些心得:0.规模较大的程序,往往都是以更小的功能块搭建起来的。如此,为了提升总体程序的构建效率,笔者发现分“两步走”会比较高效:    A.遇到需要反复调试的功能块,可先在另一程序中逐一单独测试某一功能块(这有助于突出模块本身的细节问题)   ......