当前位置: 首页 > news >正文

【UML】- 用例图(结合银行案例解释其中的奥义)

目录

一、相关介绍

作用:

组成:

关系

二、使用具体银行案例解释各组成部分的含义

1、系统

2、参与者

3、用例

4、关联关系

5、扩展关系

6、泛化(继承)关系

三、成品


一、相关介绍

作用:

用例图可以描述一个系统工作的基本流程

组成:

用例图包括四个元素:系统(system)、参与者actors、用例(uer cases)、关系(reletionships)

关系

关联 (Association)

包含(Includ)

扩展(Extend)

泛化 / 继承(Generalization)

二、使用具体银行案例解释各组成部分的含义

1、系统

在这里银行应用就是一个系统:

用一个矩形表示;

系统名称放在矩形顶部;

这个矩形定义的系统的范围。矩形内的任何事都会在银行系统中出现,矩形之外的都不会出现。

2、参与者

参与者分为主要参与者和次要参与者:主要参与者做出动作后,次要参与者才会给予响应

参与者用如下图小人表示:

该系统有两个参与者:

用户(主要参与者):下载并使用银行应用APP

银行(次要参与者):向APP提供相应数据

这些参与者都是APP外部人员,所以放在矩形外,主要参与者在系统左边,次要参与者在系统右边:

3、用例

用于描述系统功能所要用到的元素(银行应用内的动作),用椭圆表示:

将可能有的动作按逻辑顺序排列:

注意:

每个参与者至少与系统中的一个用例进行交互

4、关联关系

用户可以登录APP,可以查看余额,转账,支付等操作,所以用一条直线将用户和用例连接起来:这就是关联关系

以此类推,连出银行参与者的关联关系:

5、包含关系:

(1)、概念:显示基本用例和包含用例之间的依赖关系,每次执行基本用例时,包含关系也会执行。

(2)、使用:当有包含关系时,用虚线箭头指从基本用例指向包含用例,并在线上写出<<include>>。

(3)、在例子中,用户登录是基本用例,验证密码是包含案例,每次登录时,APP都会验证密码是否正确,所以进行包含关系连接:

5、扩展关系

(1)、概念:扩展关系中有基本用例和扩展用例,当基本用例执行时,扩展用例可能执行也可能不执行,扩展用例必须满足一定的条件才会执行,此时就有扩展关系。

(2)、使用:当有扩展关系时,使用一条虚线箭头,从扩展用例指向基本用例,并在线上标注<<extend>>。

(3)、在例子中,用户登录是基本用例,提示密码错误是扩展消息,因为只有密码输入错误才会提示:

注意:

多个基本用例可以指向同一个包含或扩展用例,比如转账和支付两个操作,在执行之前都需要验证资金是否充足(包含关系):

6、泛化(继承)关系

(1)、概念:该关系中有父用例和子用例,子用例拥有父用例的功能,并且子用例还可以额外具有特有的功能,

(2)、使用:当出现泛化关系时,用实线空心箭头从子用例指向父用例连接。

(3)、该例子中支付用例可以细分为支票支付和现金支付,所以存在泛化关系,连接如下:

三、成品

相关文章:

【UML】- 用例图(结合银行案例解释其中的奥义)

目录 一、相关介绍 作用&#xff1a; 组成&#xff1a; 关系 二、使用具体银行案例解释各组成部分的含义 1、系统 2、参与者 3、用例 4、关联关系 5、扩展关系 6、泛化&#xff08;继承&#xff09;关系 三、成品 一、相关介绍 作用&#xff1a; 用例图可以描述一个…...

浅谈UI自动化

⭐️前言⭐️ 本篇文章围绕UI自动化来展开&#xff0c;主要内容包括什么是UI自动化&#xff0c;常用的UI自动化框架&#xff0c;UI自动化原理等。 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f349;博主将持续更新学习记录收获&#xff0c;友友们有任何问题…...

三、k8s快速入门之Kubectl 命令基础操作

⭐️创建Pod [rootmaster ~]# kubectl run nginx --imageharbor.tanc.com/library/ngix:latest kubectl run --generatordeployment/apps.v1 is DEPRECATED and will be rmoved in a future version. Use kubectl run --generatorrun-pod/v1 or kbectl create instead. deplo…...

深度学习-BP算法详解

BP&#xff08;Back Propagation&#xff0c;反向传播&#xff09;是训练神经网络的重要算法之一。它通过计算误差并将误差反向传播&#xff0c;以更新神经网络中的权重和偏置&#xff0c;进而使模型更好地拟合数据。 1. BP算法的基本原理 反向传播的基本思想是&#xff1a; …...

Java审计对比工具JaVers使用

最近有个需求&#xff0c;需要将页面的内容生成excel或者word文档&#xff0c;而且每次的修改都需要生成新的版本&#xff0c;同时需要记录每次修改变化的内容。我们会把每次的修改的内容提交赋值给一个java对象&#xff0c;同时存储到数据库一条新数据&#xff0c;对应数据表一…...

unity中预制体的移动-旋转-放缩

unity中预制体的移动-旋转-放缩 左上侧竖栏图标介绍Tools(手形工具)Move Tool(移动工具&#xff0c;单位米)Rotate Tool(旋转工具&#xff0c;单位角度)Scale Tool(缩放工具&#xff0c;单位倍数)Rect Tool(矩形工具)Transform Tool(变换工具)图标快捷键对照表工具使用的小技巧…...

【压力测试】如何确定系统最大并发用户数?

一、明确测试目的与了解需求 明确测试目的&#xff1a;首先需要明确测试的目的&#xff0c;即为什么要确定系统的最大并发用户数。这通常与业务需求、系统预期的最大用户负载以及系统的稳定性要求相关。 了解业务需求&#xff1a;深入了解系统的业务特性&#xff0c;包括用户行…...

ubuntu常用基本指令简记

一、在线帮助 1、help Linux命令可以分为内部命令和外部命令&#xff0c;内部命令就是由Linux默认Shell-bash提供的命令&#xff0c;而非bash提供的命令就是外部命令。 对于内部命令&#xff0c;可以使用help命令来获取帮助 形式为 help 指令 2、man 在日常使用中碰到的绝…...

【解决方案】用git reset --hard重置了提交但是发现reset了一些本不该reset的内容,是不是寄了?

使用 git reset --hard [commit_id] 命令后&#xff0c;所有的更改&#xff08;包括暂存区和工作区的更改&#xff09;都会被重置到指定的提交。如果想要撤销这个操作&#xff0c;恢复到重置之前的状态&#xff0c;可以尝试以下方法&#xff1a; 1. 使用 Git Reflog 恢复 Git…...

ACM模式下Java读取控制台输入注意事项及输出规范化

背景 在ACM模式下。需要我们去接受输入的参数&#xff0c;一般是使用Scanner去读取控制台输入的参数System.in。 不熟悉的情况下&#xff0c;很容易出现问题&#xff0c;针对常见的问题做一个总结。 一、nextXxx 如next&#xff0c;nextInt&#xff0c;nextFloat&#xff0c…...

面试题整理 2

总结了本次面试遇到的值得整理记录的面试题。 目录 变量赋值判断 变量判断 Foreach使用 Mysql优化策略 合理的索引设计 查询优化 数据表结构设计 配置优化 合理使用事务 定期维护数据库 使用缓存 监控与性能分析 Redis主从复制 介绍 配置 示例 Redis 数据类型…...

华为自研仓颉编程语言官网上线 首个公测版本开放下载

仓颉编程语言官网正式公开上线&#xff0c;同时首个公测版本开放下载。本次仓颉编程语言官网上线了首页、在线体验、文档、学习、下载、动态以及三方库共六个模块&#xff0c;可供开发和学习和体验。 据悉&#xff0c;仓颉编程语言是在今年6月的华为开发者大会上正式公布&…...

NVR监测软件/设备EasyNVR多品牌NVR管理工具/设备对城市安全有哪些具体益处?

在智慧城市的建设中&#xff0c;各种先进的技术系统正发挥着越来越重要的作用。其中&#xff0c;NVR监测软件/设备EasyNVR作为一种高效的视频边缘计算网关&#xff0c;不仅能够实现视频数据的采集、编码和存储&#xff0c;还能与其他智慧城市系统进行深度集成&#xff0c;共同推…...

MFC工控项目实例二十八模拟量信号每秒采集100次

用两个多媒体定时器&#xff0c;一个定时0.1秒计时&#xff0c;另一个定时0.01秒用来对模拟量信号采集每秒100次。 1、在SEAL_PRESSUREDlg.h中添加代码 class CSEAL_PRESSUREDlg : public CDialo { public:CSEAL_PRESSUREDlg(CWnd* pParent NULL); // standard constructor&a…...

安装scrcpy-client模块av模块异常,环境问题解决方案

背景 使用 pip install scrcpy-client命令出现以下报错 performance hint: av\logging.pyx:232:5: Exception check on log_callback will always require the GIL to be acquired. Possible solutions: 1. Declare log_callback as noexcept if you control the definition …...

硅谷甄选(11)角色管理

角色管理模块 10.1 角色管理模块静态搭建 还是熟悉的组件&#xff1a;el-card、el-table 、el-pagination、el-form <template><el-card><el-form :inline"true" class"form"><el-form-item label"职位搜索"><el-…...

C语言结构体 变量对齐原理

以32位Linux为例&#xff0c;默认对齐值是4. 对齐原则通常有以下几种&#xff1a; 第一个成员在与结构体变量偏移量为0的地址处。其他成员变量要对齐到某个数字&#xff08;对齐参数&#xff09;的整数倍的地址上。结构体总大小为最大对齐参数的整数倍。嵌套结构体要对齐到…...

【oracle】正则表达式

文章目录 1.介绍1.1 什么是正则表达式1.2 什么是Oracle正则表达式 2. Oracle正则表达式的基础知识2.1 常用的元字符2.2 常用的转义序列2.3 常用的量词 3. Oracle正则表达式的函数3.1 REGEXP_LIKE3.2 REGEXP_SUBSTR3.3 REGEXP_REPLACE3.4 REGEXP_INSTR3.5 REGEXP_COUNT 4. Oracl…...

如何找到网上爆款内容,快速复制扩大品牌声量

社媒内容爆款复制是现代营销中的一个重要策略&#xff0c;它对于提升品牌声量、曝光度和知名度具有显著效果。 首先什么是爆款&#xff1f; 爆款内容指的是在社交媒体或其他在线平台上迅速获得大量关注、分享和讨论的内容。 准确、及时找到这部分品牌相关的爆款内容&#xf…...

补齐:相交链表:扣160

梦重新开始的地方 – 相交链表 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。图示两个链表在节点 c1 开始相交&#xff1a; 示例&#xff1a; 何解&#xff1f; 暴力&…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

深入理解Optional:处理空指针异常

1. 使用Optional处理可能为空的集合 在Java开发中&#xff0c;集合判空是一个常见但容易出错的场景。传统方式虽然可行&#xff0c;但存在一些潜在问题&#xff1a; // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...