UML-活动图

提示:大家可以参考我的状态图博客

UML-活动图

  • 一、活动图的基本概念
    • 1.开始状态和结束状态
    • 2.动作状态和活动状态(活动)
    • 3.分支与合并
    • 4.分叉与合并
    • 5.活动转换
      • (1)转移
      • (2)判定
    • 6.泳道
  • 二、活动图的例图练习
    • 1.例题1
    • 2.例题2
  • 三、总结


一、活动图的基本概念

  • 活动图是 UML 用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流。
  • 活动图本质上是一种流程图。活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。
  • 活动图在用例图之后提供了系统分析种对系统的进一步充分描述。因此,活动图可以用来为用例建模工作流,更可以理解为用例图具体的细化。
  • 活动图的主要元素:
    在这里插入图片描述

1.开始状态和结束状态

  • 一个活动图中只能有一个开始状态,但可以有多个结束状态。

2.动作状态和活动状态(活动)

  • 活动图中的活动叫做活动状态。活动图中有活动状态和动作状态,动作状态是活动状态的特例。
  • 对象的动作状态是活动图的最小单元的构造快,是指执行原子的,不可中断的动作,并在此动作完成后通过完成转换转向另一个状态。
  • 活动也称为动作状态(Action State),是活动图的核心符号,它表示工作流过程中命令的执行或活动的进行。

3.分支与合并

  • 选择其中一种情况执行。
    在这里插入图片描述
    在这里插入图片描述

4.分叉与合并

  • 分叉是用于将一个控制流分为两个或多个并发运行的分支。
  • 汇合与分叉相反,代表两个或多个并发控制流同步发生,它将两个或多个并发控制流合并到一起,形成一个单向控制流。
    在这里插入图片描述
    在这里插入图片描述

5.活动转换

(1)转移

  • 一个活动图有很多动作或者活动状态,活动图通常开始于初始状态,然后自动转换到活动图的第一个动作状态,一旦该状态的动作完成后,控制就会不加延迟地转换到下一个活动状态或者动作状态。所有活动之间的转换称为转移。转移不断重复进行,直到遇到一个分支或者终止状态为止。
  • 转移用来显示从某个活动到另一个活动或状态的控制流。
  • 转移的标记符是执行控制流方向的开放的箭头。
    在这里插入图片描述

(2)判定

  • 一个活动最终总是要到达某一个点,如果一个活动可能引起两个以上不同的不同路径,并且这些路径是互斥的,此时就需要使用判断来实现。
  • 在 UML 中,判定有两种表示方式:
    • ①从一个活动直接引出可能的多条路径。
    • ②将活动转移到一个菱形图标,然后从这个菱形的图标再引出可能的路径。
    • 注意:无论用那种方式,都必须在相关的路径附近指明标识执行该路径的条件,并且条件表达式要用中括号括起来。
      在这里插入图片描述

6.泳道

  • 元素的活动图将元素的行为顺序表现出来,但元素的行为并不是没有交互的,活动图种表现不出这种交互。
  • UML 使用泳道来解决不同元素的交互问题。泳道是一个有着头部的矩形区域,在泳道内部放置元素的行为和转移,一个泳道代表一组行为,指定了负责对象的一组行为。
  • 泳道将活动图中的活动划分为若干个组,并把每一组指定给负责这组活动的人或事物,即与活动图交互的对象。
    在这里插入图片描述

二、活动图的例图练习

1.例题1

  • 销售合同签订后要进行信息核对。如果发现错误则终止合同;如果没有错误,则要核对货物清单确定是否有货;还要核对付款单确定对方是否已经付款,只有这两项都完成了,才可以发货。如果无货或者对方还没付款,也会终止合同。根据以上描述绘制一张活动图。
    在这里插入图片描述

2.例题2

  • 客户首先在查看和浏览商品,一旦确定要购买的物品后,就通知销售员。这时销售员为购买的物品,开出订单,并通知仓管员提取物品。仓管员则根据定单,提取货物,再把订单交给销售员。这时,顾客查看自己的订单,确认货物,而销售员则开始计算货款。一旦双方都完成后,顾客就付款,提货,销售员则将订单保存下来。在这里插入图片描述

三、总结

  • 活动图和状态图的区别:
    • 状态图:用来描述一个特定对象所有可能状态及其引起状态转移的事件。大多数面向对象技术都用状态图表示单个对象在其生命周期中的行为。一个状态图包括一系列的状态及状态之间的转移。
    • 活动图:它既可用来描述操作的行为,也可以描述用例和对象内部的工作过程。活动图是由状态图变化而来的,它们各自用于不同的目的。活动图依据对象状态的变化来捕获动作与动作的结果。活动图中一个活动束后将立即进入下一个活动。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构:顺序栈

栈是一种先进后出的数据结构,只允许在一端(栈顶)操作,代码中top表示栈顶。 stack.h /* * 文件名称:stack.h * 创 建 者:cxy * 创建日期:2024年01月17日 * 描 述: …

数据分片概述、环境准备、部署MyCAT服务、全局表、分片表、ER表

1 案例1:部署mycat服务 1.1 问题 把主机mysql60 配置为 MySQL59 的从服务器把主机mysql62 配置为 MySQL61 的从服务器把主机mycat63 配置为mycat服务器客户端192.168.88.50访问mycat服务 1.2 方案 准备6台虚拟机,具体配置如表-1 1.3 步骤 实现此案例…

Docker中创建并配置MySQL、nginx、redis等容器

Docker中安装并配置MySQL、nginx、redis等 文章目录 Docker中安装并配置MySQL、nginx、redis等一、创建nginx容器①:拉取镜像②:运行nginx镜像③:从nginx容器中映射nginx配置文件到本地④:重启nginx并重新配置nginx的挂载 二、创建…

React全局状态管理

redux是一个状态管理框架,它可以帮助我们清晰定义state和处理函数,提高可读性,并且redux中的状态是全局共享,规避组件间通过props传递状态等操作。 快速使用 在React应用的根节点,需要借助React的Context机制存放整个…

新定义51单片机(RD8G37)实现测距测速仪

本文描述用新定义51单片机(RD8G37)超声波一体测距传感器实现简单的测距测速仪。 测距仪演示效果 新定义RD8G37Q48RJ开发板 超声波测距模块: 8位并口屏 1、main.c unsigned short timeConsuming0; unsigned int oldDistance;void rectClearS…

jeecgboot 前端bug or 后端 看图

无法显示文本 只能显示value 很恶心 如果用 varchar 就可以 不知道有没有别的方式 用int 解决 ,可能是我没有发现好的方法

Peter算法小课堂—并查集

我们先来看太戈编程467题 攀亲戚 题目描述: 最近你发现自己和古代一个皇帝长得很像:都有两个鼻子一个眼睛,你想知道这皇帝是不是你的远方亲戚,你是不是皇亲国戚。目前你能掌握的信息有m条,关于n个人:第i条…

手机崩溃日志的查找与分析

手机崩溃日志的查找与分析 摘要 本文介绍了一款名为克魔助手的iOS应用日志查看工具,该工具可以方便地查看iPhone设备上应用和系统运行时的实时日志和崩溃日志。同时还提供了崩溃日志的分析查看模块,可以对苹果崩溃日志进行符号化、格式化和分析&#x…

yolov5训练自己的数据

目录 1. 环境搭建2. 数据准备3. 数据标注4. 数据整理4.1 数据集切分4.2 修改数据文件4.3 修改模型文件 5. 训练模型5.1 训练5.2 验证5.3 测试 6. 训练结果分析 1. 环境搭建 安装anaconda、python、 cuda、 cudnn、 pytoch、 torchvision、 torchaudio等等。这里不详述 2. 数据…

软件测试大作业||测试计划+测试用例+性能用例+自动化用例+测试报告

xxx学院 2023—2024 学年度第二学期期末考试 《软件测试》(A)试题(开卷) 题目:以某一 web 系统为测试对象,完成以下文档的编写: (满分 100 分) (1&am…

量化研究员!你应该如何写一手好代码

即使是Quant Researcher, 写一手高质量的代码也是非常重要的。再好的思路,如果不能正确地实现,都是没有意义的。 写一手高质量的代码的意义,对Quant developer来讲就更是自不待言了。这篇笔记就介绍一些python best practice。 始…

QT第二周周三

题目&#xff1a;使用图片绘制出仪表盘 代码&#xff1a; widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *paren…

申请开启|成为亚马逊云科技 Community Builder,共建云端社区!

在探索由技术打造的云端世界时&#xff0c;和同行者一起学习&#xff0c;与技术专家共同探讨是开发者成长的最佳助力&#xff01; 亚马逊云科技开发者社区 Community Builders 为技术爱好者和新兴思想领袖提供技术资源、学习和交流机会&#xff0c;帮助开发者探索、分享技术相关…

【车载HMI开发工具--EB GUIDE 与 Unity 合作提供一体化的沉浸式 HMI 设计开发工具链】【转载】

随着车载高性能计算平台的日益普及以及显示器尺寸和数量的不断增加&#xff0c;沉浸式车载人机交互界面&#xff08;HMI&#xff09;的需求也在持续增长。为了将实时 3D 技术带入车载 HMI 领域&#xff0c;Unity 与 Elektrobit (EB)展开了合作&#xff0c;EB 是推进 HMI 功能安…

CC工具箱使用指南:【添加字段(批量)】

一、简介 Arcgis中添加字段是常用的一个操作&#xff0c;软件中也自带有添加字段工具。 如果要给一个要素或表批量添加字段&#xff0c;可以用迭代器或批处理。 但如果理复杂一点&#xff0c;有多个GDB要素、表格&#xff0c;或者是SHP文件&#xff0c;需要给这个要素或表添…

Git将某个文件合并到指定分支

企业开发中&#xff0c;经常会单独拉分支去做自己的需求开发&#xff0c;但是某些时候一些公共的配置我们需要从主线pull&#xff0c;这时候整个分支merge显然不合适 1.切换至待合并文件的分支 git checkout <branch>2.将目标分支的单个文件合并到当前分支 git checkou…

.NET国产化改造探索(三)、银河麒麟安装.NET 8环境

随着时代的发展以及近年来信创工作和…废话就不多说了&#xff0c;这个系列就是为.NET遇到国产化需求的一个闭坑系列。接下来&#xff0c;看操作。 上一篇介绍了如何在银河麒麟操作系统上安装人大金仓数据库&#xff0c;这篇文章详细介绍下在银河麒麟操作系统上安装.NET8环境。…

最新 生成pdf文字和表格

生成pdf文字和表格 先看效果 介绍 java项目&#xff0c;使用apache的pdfbox工具&#xff0c;可分页&#xff0c;自定义列 依赖 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.22<…

第一讲_HarmonyOS应用开发环境准备

HarmonyOS应用开发环境准备 1. 知识储备2. 环境搭建2.1 安装node.js2.2 配置node.js2.3 安装命令行工具2.4 安装DevEco Studio2.5 配置DevEco Studio 1. 知识储备 HarmonyOS提供了一套UI开发框架&#xff0c;即方舟开发框架&#xff08;ArkUI框架&#xff09;。方舟开发框架可…

Flutter开发进阶之动画

Flutter开发进阶之动画 在Flutter中&#xff0c;动画是至关重要的一个部分&#xff0c;它能够为应用程序提供更加丰富和生动的用户体验&#xff0c;Flutter中的动画系统是UI框架的核心功能之一&#xff0c;也是开发者学习Flutter框架的重要部分&#xff0c;由于动画原理在所有…