UML建模图文详解教程07——活动图

news2024/11/15 23:03:01

版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl
  • 本文参考资料:《UML面向对象分析、建模与设计(第2版)》吕云翔,赵天宇 著

在这里插入图片描述

活动图概述

活动图(activity diagram)是 UML中一种重要的用于表达系统动态特性的图。活动图的作用是描述一系列具体动态过程的执行逻辑,展现活动和活动之间转移的控制流,并且它采用一种着重逻辑过程的方式来叙述。

具体地说,活动图的表达能力包括了逻辑判断、分支甚至并发。所以活动图的表达能力要远高于流程图。流程图仅仅展示一个固定的过程,而活动图可以展示并发和控制分支,并且可以对活动与活动之间信息的流动进行建模。

活动图的组成元素

请务必熟悉并掌握以下核心知识点。

动作和活动节点

动作代表一个原子操作,操作可能是任何合法的行为。在活动图中,动作使用一个左右两端为圆弧的矩形框来表示,在这个图形内部加人该动作的描述。

在这里插入图片描述
活动节点是一系列动作,主要用于实现动作序列的简化和动作图的嵌套。活动节点在图中的表达方式和动作相同,它们之间的区分需要依靠编辑工具或附加说明来完成。

活动节点本身可以代表一个复杂过程,它的控制流由其他的活动节点和动作组成,如需要可以另附其他的活动图来表达活动节点的控制流。

开始和终止

活动图中的开始和终止是两个标记符号。开始标记注明了业务流程的起始位置,使用一个实心黑色圆点表示。终止标记注明了业务流程的可能结束位置,使用一个与开始标记等大的、内有一个黑色实心小圆点的空心圆圈来表示。

在这里插入图片描述

控制流

控制流是活动图中用于标示控制路径的一种符号。它负责当一个动作或活动节点执行完毕后,将执行主体从当前已完毕的节点转移到过程的下一个动作或动作节点。控制流从活动图的开始标记开始运行,经过顺序、分支等结构引导着各个动作的连续执行。

在 UMI中,控制流使用一条从前一个动作(或活动节点)出发指向下一个动作(或活动节点)的简单箭头表示。

在这里插入图片描述

判断节点

判断节点是活动图中进行逻辑判断、并创造分支的一种方法。判断节点具有一个进入控制流和至少两个导出控制流(从当前节点出发指向其他动作或节点的流称为导出流或离开流),判断节点的前一个动作应当是判断型动作。

在活动图中判断节点用一个菱形来表示。并且作为判断节点,这个菱形有且仅有一个指向它的箭头,有至少两个由它出发指向其他动作或活动节点的箭头。

在这里插入图片描述

合并节点

合并节点将多个控制流进行合并,并统一导出到同一个离开控制流。在活动图中合并节点也同样使用一个菱形来表示。作为合并节点,这个菱形应该至少有两个指向它的箭头,有且仅有一个由它出发指向其他动作或活动节点的箭头。

在这里插入图片描述

泳道

活动图中的元素可以使用泳道来分组。泳道是将活动中的具体活动按照负责进行该活动的对象进行分区,一条泳道中的所有活动由同一个对象来执行。在业务模型中,每个泳道的负责对象可能是一个单位或一个部门。例如,在一次考试的全过程中,有如下过程:

  • (1)老师出卷
  • (2) 学生作答
  • (3) 老师批卷
  • (4)老师打印成绩单
  • (5)学生领取成绩单

在这个过程中,可以发现每个过程的主语都是该动作的执行者,那么在这个简单的过程中可以分“老师”和“学生”两个泳道,把动作与负责执行它的对象用这种形如二维表的方式进行关联。

在这里插入图片描述

分叉节点与结合节点

在活动图中,我们使用分叉节点和结合节点来表示并发。

分叉节点是从线性流程进入并发过程的过渡节点,它拥有一个进入控制流和多个离开控制流。

结合节点是将多个并发控制流收束回同一流程的节点标记。

在这里插入图片描述

航空购票系统活动图

在此,以航空购票系统的购买机票用例为例绘制活动图;图示如下:

在这里插入图片描述

确定泳道

开始创建活动图时,需要首先确定参与的对象,即确定活动图有几个泳道。泳道说明了活动是由该对象执行的。在该案例中,我们将其粗粒度地分为用户和系统两个泳道。

与创建用例图类似,请在Model中创建活动图;图示如下:

在这里插入图片描述
点击确定后,图示如下:

在这里插入图片描述
选中活动图,右键单击选择添加图,再选择UML Behavioral和Activity;图示如下:

在这里插入图片描述
单击确定后,图示如下:

在这里插入图片描述
首先,将工具箱中的泳道Partition拖拽至绘图区添加用户泳道;图示如下:

在这里插入图片描述
点击确定,图示如下:

在这里插入图片描述
调整泳道方向,图示如下:

在这里插入图片描述
调整泳道方向和长度;图示如下:

在这里插入图片描述
类似地,添加系统泳道并将其与用户泳道对齐;图示如下:

在这里插入图片描述

按照逻辑顺序完成活动图

在添加完泳道后,需要梳理整个控制流的过程:用户首先选择购票的航班,此时如果该航班已无余票,则系统提示该航班已无票,用户重新选择航班;如果航班有余票,则系统请求用户确认购票信息,此时用户可以取消购票也可以确认购票并支付,支付完成后系统修。

首先,将Initial拖动至用户泳道作为起点;图示如下:

在这里插入图片描述
点击确定后,图示如下:
在这里插入图片描述
将Activity拖动至用户泳道作为选择航班的活动;图示如下:

在这里插入图片描述
点击确定后,可以调整活动框大小;图示如下:

在这里插入图片描述
将Decision拖动至系统泳道作为判断节点;图示如下:
在这里插入图片描述
单击确定后图示如下:

在这里插入图片描述
类似地,在系统泳道添加两个活动即提示航班无余票和确认机票信息;图示如下:

在这里插入图片描述

将Decision拖动至用户泳道作为判断节点;图示如下:

在这里插入图片描述

将Final拖动至系统泳道作为第一个终止;图示如下:

在这里插入图片描述

单击确定;图示如下:

在这里插入图片描述
将Activity拖动至用户泳道作为支付活动;图示如下:

在这里插入图片描述
将工具箱中的Fork/Join拖动至系统泳道作为分叉节点;图示如下:

在这里插入图片描述
单击确定后调整分叉节点长度;图示如下:

在这里插入图片描述
类似地,在系统泳道中的分叉节点添加修改机票状态活动和生成订票记录活动;图示如下:

在这里插入图片描述
类似地,将工具箱中的Fork/Join拖动至系统泳道作为结合节点;图示如下:

在这里插入图片描述

最后,将Final拖动至系统泳道作为第二个终止;图示如下:

在这里插入图片描述
接下来,我们依据流程使用工具箱中Activity Relationships中的Control Flow连线;图示如下:

在这里插入图片描述
在目前的活动图中,还缺乏判断节点的说明;图示如下:

在这里插入图片描述
请双击连线添加说明文本;图示如下:
在这里插入图片描述

单击确定后并调整文本位置;图示如下:

在这里插入图片描述

类似地,添加有余票的文本说明;图示如下:

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文件夹重命名:彻底摆脱数字困扰,批量修改文件夹名去除数字

在日常生活和工作中,经常会遇到需要修改文件夹名称的情况。有时候是因为文件夹名称中包含了数字,有时候是因为文件夹名称不符合规范。无论出于什么原因,修改文件夹名称都是一件非常繁琐的事情。尤其是需要修改大量文件夹名称时,手…

Java系列之 String indexOf() 方法

我 | 在这里 🕵️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 🏠 工作 | 广州 ⭐ Java 全栈开发(软件工程师) 🎃 爱好 | 研究技术、旅游、阅读、运动、喜欢流行歌曲 🏷️ 标签 | 男 自律狂人 目标明确 责任心强 ✈️公…

【计算机网络】(网络层)定长掩码和变长掩码

目录 1、IPV4地址的应用规划 2、例题分析 2.1、定长的子网掩码 2.2、变长的子网掩码 1、IPV4地址的应用规划 定长的子网掩码(FLSM): 使用同一个子网掩码划分子网,每个子网所分配的IP地址数量相同,造成IP地址的浪费…

数据结构——堆的实现

堆的实现-----C语言版 目录:一、堆的实现1.1堆的定义1.2堆的实现1.2.1堆的各个接口1.2.2堆的向上调整1.2.3堆的向下调整1.2.4堆的定义声明和初始化1.2.5堆的数据处理1.2.6堆的判空和堆的数据个数以及堆销毁1.2.7堆的代码实现 二、TOP—K问题 目录: 一、…

历时半年,我发布了一款习惯打卡小程序

半年多前,我一直困扰于如何记录习惯打卡情况,在参考了市面上绝大多数的习惯培养程序后,终于创建并发布了这款习惯打卡小程序。 “我的小日常打卡”小程序主要提供习惯打卡和专注训练功能。致力于培养用户养成一个个好的习惯,改掉…

[Latex] Riemann 问题中的激波,接触间断,膨胀波的 Tikz 绘图

Latex 代码 \begin{figure}\begin{subfigure}[b]{0.32\textwidth}\centering\resizebox{\linewidth}{!}{\begin{tikzpicture}\coordinate (o) at (0,0);\coordinate (Si) at (2.5,2.5);\coordinate (x) at (1,0);\draw[->] (0,0) -- (3,0) node[right] {$x$};\draw[->] …

tp8 使用rabbitMQ(4)路由模式

路由模式 在第三节中我们使用的 交换机的 fanout 把生产者的消息广播到了所有与它绑定的队列中处理,但是我们能不能把特定的消息,发送给指定的队列,而不是广播给所有队列呢? 如图,交换机把 orange 类型的消息发送给了…

jQuery_02 引入jQuery,初试牛刀

引入jquery文件 我们在官网上点击dowmload那个 会发现进入了一个网页,里面全部是代码,你可能还在想为什么下载不了,其实jquery不跟vue一样,整个jquery就是一个js文件而已,所以直接ctrla 全选 ctrlc复制 ,然…

关于爱普生L3219彩色喷墨打印机打印过程中噪声过大的几点缓解方法

故障描述: 一台新购买的爱普生L3219使用过程中出现了噪声过大的问题,每次打印或者复印都或有明显的噪音过大的现象,目测观察大概是打印机字车左右来回移动的时候剐蹭滑道的问题,与经销商沟通后由经销商联系上级供货商更换一台全新…

elk 简单操作手册

1.1. 基础概念 EFK不是一个软件,而是一套解决方案,开源软件之间的互相配合使用,高效的满足了很多场合的应用,是目前主流的一种日志系统。 EFK是三个开源软件的缩写,分别表示:Elasticsearch , Filebeat, Kibana , 其中Elasticsearch负责日志保存和搜索,Filebeat负责收集日志,Ki…

喜报|AIRLOOK荣获“创客北京2023”创新创业大赛企业组三等奖

“创客北京2023”创新创业总决赛圆满落幕,埃洛克航空科技(北京)有限公司,(以下统称AIRLOOK)首次参赛即从几千家企业中脱颖而出,荣获大赛企业组三等奖。 自2016年开始,“创客北京”大…

JMeter---BeanShell实现接口前置和后置操作

在JMeter中,可以使用BeanShell脚本来实现接口的前置和后置操作。 下面是使用BeanShell脚本实现接口前置和后置操作的步骤: 1、在测试计划中添加一个BeanShell前置处理器或后置处理器。 右键点击需要添加前置或后置操作的接口请求,选择&quo…

C# ReadOnlyRef Out

C# ReadOnly ReadOnly先看两种情况1.值类型2.引用类型 结论 Ref Out ReadOnly官方文档 ReadOnly 先看两种情况 1.值类型 当数据是值类型时,标记为Readonly时,如果再次设置值,会提示报错,无法分配到只读字段 public class A {pri…

计算机组成原理。3-408

1.动态存储和静态存储 2.双端口RAM 注意:cpu通过地址线和数据线读写数据时,不能同时写,但可以同时读,也不能一边读一边写。 3.多体并行存储器 分为高位存储和低位存储 小结 4.磁盘存储器的组成 5.磁盘的性能指标 磁盘读写寻道…

vcsa6.7打补丁操作

首先到官网中查找到最新的patch,需要有注册账号才可操作 网址链接:https://customerconnect.vmware.com/patch#search 下载后把iso文件上传到磁盘中,vcsa虚拟机中做光盘iso挂接后, 使用浏览器输入https://ip:5480登录&#xff…

220v转5V/150MA电源芯片专业替代阻容降压

标题:220V转5V/150MA电源芯片专业替代阻容降压,SOT23-3小封装,内置高压MOS管,45V-265V输入,固定5V输出,峰值电流200ma,逐周期限流、输出短路保护,片上过温保护(OTP&#…

最新AI创作系统ChatGPT系统运营源码,支持GPT-4图片对话能力,上传图片并识图理解对话,支持DALL-E3文生图

一、AI创作系统 SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧!本系统使用NestjsVueTypescript框架技术,持续集成AI能力到本系统。支持OpenAI DALL-E3文生图,…

js粒子效果(一)

效果: 代码: <!doctype html> <html> <head><meta charset"utf-8"><title>HTML5鼠标经过粒子散开动画特效</title><style>html, body {position: absolute;overflow: hidden;margin: 0;padding: 0;width: 100%;height: 1…

Edit And Resend测试接口工具(浏览器上的Postman)

优点 可以不用设置Cookie或者Token&#xff0c;只设置参数进行重发接口测试API 使用Microsoft Rdge浏览器 F12——然后点击网络——在页面点击发起请求——然后选择要重发的请求右键选择Edit And Resend——在网络控制台设置自己要设置的参数去测试自己写的功能

【C++初阶】STL之学习string的用法

目录 前言&#xff1a;一、认识下string1.1 什么是string1.2 为什么要有string 二、string 类的接口使用2.1 初始化与析构2.1.1 初始化2.1.2 析构 2.2 容量操作2.2.1 长度大小——size和length2.2.2 空间总大小——capacity2.2.3 判空——empty2.2.4 清空——clear2.2.5 预留空…