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

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

三、总结

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

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

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

相关文章

Django REST Framework入门之序列化器

文章目录 一、概述二、安装三、序列化与反序列化介绍四、之前常用三种序列化方式jsonDjango内置Serializers模块Django内置JsonResponse模块 五、DRF序列化器序列化器工作流程序列化(读数据)反序列化(写数据) 序列化器常用方法与属…

flink 最后一个窗口一直没有新数据,窗口不关闭问题

flink 最后一个窗口一直没有新数据&#xff0c;窗口不关闭问题 自定义实现 WatermarkStrategy接口 自定义实现 WatermarkStrategy接口 代码&#xff1a; public static class WatermarkDemoFunction implements WatermarkStrategy<JSONObject>{private Tuple2<Long,B…

oracle篇—19c新特性自动索引介绍

☘️博主介绍☘️&#xff1a; ✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux&#xff0c;也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章&#xff0c;并且也会默默的点赞收藏加关注❣…

【python】学习笔记01

一、基础语法 1. 字面量 - 什么是字面量&#xff1f; 在代码中&#xff0c;被写下来的的固定的值&#xff0c;称之为字面量。 - 常用的值类型 Python中常用的有6种值&#xff08;数据&#xff09;的类型。 666 13.14 "程序员"print(666) print(13.14) print(&qu…

前端面试题-html5新增特性有哪些

HTML html5新增特性有哪些 1.新增了语义化标签 标签用法header定义文档或区块的页眉&#xff0c;通常包含标题&#xff0c;导航和其他有关信息nav定义导航链接的容器&#xff0c;用于包裹网站的导航部分section定义文档的一个独立节或区块&#xff0c;用于组织相关的内容art…

前端框架前置学习Webpack(1) 常用webpack配置

什么是Webpack? 定义 本质上,Webpack是用于现代JavaScript应用程序的静态模块打包工具.当webpack处理应用程序时,它会在内部从一个或多个入口点构建一个依赖图(dependency graph),然后将你项目中所需的每一个模块组合成一个或多个bundles,它们均为静态资源,用于展示你的内容.…

web开发学习笔记(6.element ui)

1.安装 2.在app.vue中引入ElementView中的内容 3.表格控件&#xff0c;当页大小发生变化&#xff0c;当当前页发生变化 4.对话框组件 5.将form表单中的数据打印出来 6.当遇到日期选择器得到的数据为昨日时&#xff0c;应该加入 value-format"yyyy-MM-dd"即可避免这个…

子类的构造函数和析构函数调用顺序

看代码&#xff1a; class A { public:A() { cout << __FUNCTION__ << endl; }~A() { cout << __FUNCTION__ << endl; } };class B { public:B() { cout << __FUNCTION__ << endl; }~B() { cout << __FUNCTION__ << endl; …

vue 指定区域可拖拽的限定拖拽区域的div(如仅弹窗标题可拖拽的弹窗)

<template><div class"container" ref"container"><div class"drag-box" v-drag><div class"win_head">弹窗标题</div><div class"win_content">弹窗内容</div></div><…

系统配置dns主从服务器

一、准备两台主机&#xff0c;区分主从 二、完全区域传送 1、主DNS服务器配置 #安装相关的包 [rootoula1 ~]# yum install bind -y#关闭防火墙 [rootoula1 ~]# systemctl stop firewalld [rootoula1 ~]# setenforce 0#修改配置主文件 [rootoula1 ~]# vim /etc/named.conf opt…

java大数据hadoop2.9.2 Java编写Hadoop分析平均成绩

1、准备文件&#xff0c;例如score.txt&#xff0c;内容如下&#xff1a; zs k1 88 ls k1 98 ww k1 78 zs k2 88 ls k2 98 ww k2 78 zs k3 88 ls k3 98 ww k3 78 2、创建maven项目 <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common --><d…

【软件测试】学习笔记-精准测试

软件测试行业从最开始的手工测试到自动化测试&#xff0c;从黑盒测试到白盒测试&#xff0c;测试理念和技术都发生了日新月异的变化。现如今&#xff0c;几乎所有的软件公司都有一套强大且复杂的自动化测试用例&#xff0c;用来夜以继日地保证产品的正确性和稳定性。 然而&…

web前端项目-贪吃蛇小游戏【附源码】

web前端项目-贪吃蛇小游戏 【贪吃蛇】是一款经典的小游戏&#xff0c;采用HTML、CSS和JavaScript技术进行开发&#xff0c;玩家通过控制一条蛇在地图上移动&#xff0c;蛇的目的是吃掉地图上的食物&#xff0c;并且让自己变得更长。游戏的核心玩法是控制蛇的移动方向和长度&am…

深度学习记录--梯度检验

数值逼近 为了对梯度进行检验&#xff0c;需要计算近似误差值来接近梯度 对于单边误差和双边误差公式&#xff0c;其中双边误差与真实梯度相差更小&#xff0c;故一般采用双边误差公式 双边误差 公式&#xff1a; 梯度检验(gradient checking) 对于成本函数&#xff0c;求出…

微信小程序之组件和API

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

S/MIME电子邮件证书申请指南

近年来&#xff0c;邮件安全问题日益突出&#xff0c;电子邮件成为诈骗、勒索软件攻击的重灾区。恶意邮件的占比屡创新高&#xff0c;邮件泄密事件更是比比皆是。在如此严峻的网络安全形势下&#xff0c;使用S/MIME电子邮件证书进行邮件收发是当今最佳的邮件安全解决方案之一。…

RT-Thread 15. list_timer与软定时器

1. 代码 void rt_thread_usr1_entry(void *parameter) {/* set LED2 pin mode to output */rt_pin_mode(LED2_PIN, PIN_MODE_OUTPUT);while (1){rt_pin_write(LED2_PIN, PIN_HIGH);rt_thread_mdelay(2000);rt_pin_write(LED2_PIN, PIN_LOW);rt_thread_mdelay(3000);} }int ma…

Demo: 实现PDF加水印以及自定义水印样式

实现PDF加水印以及自定义水印样式 <template><div><button click"previewHandle">预览</button><button click"downFileHandle">下载</button><el-input v-model"watermarkText" /><el-input v-mo…

class_7: C++引用

//1、引用是给变量取别名&#xff0c;定义的时候必须初始化&#xff0c;且指向一个确定的内存空间&#xff1b; //2、引用实质是指针常量&#xff0c;值可以改变&#xff0c;地址不可改变&#xff0c;即不可重复赋值#include <iostream> using namespace std;//1、引用是…

阿赵UE学习笔记——10、Blender材质和绘制网格体

阿赵UE学习笔记目录   大家好&#xff0c;我是阿赵。   之前介绍了虚幻引擎的材质和材质实例。这次来介绍一个比较有趣的内置的Blender材质。   在用Unity的时候&#xff0c;我做过一个多通道混合地表贴图的效果&#xff0c;而要做过一个刷顶点颜色混合地表和水面的效果。…