【UML】第6篇 用例图(1/3)

news2024/10/5 13:48:40

目录

一、什么是用例图

二、参与者

2.1 什么是参与者

2.2 如何识别参与者

2.3 参与者之间的关系


从今天开始,就到了最干的各种的图的梳理和学习了,未来AI就能编码了,把业务建模和设计的基本功打好,也许能和AI和平相处呢。

一、什么是用例图

UML中的用例图是一种描述系统功能的动态视图,它由参与者(Actor)、用例(Use Case)以及它们之间的关系构成。这种图主要用于对系统、子系统或类的功能行为进行建模,并展示用例之间以及同用例参与者之间是怎样相互联系的。用例图定义了系统的功能需求,是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。它是需求分析中的产物,主要作用是描述参与者和用例之间的关系,帮助开发人员可视化的了解系统的功能。

用例图主要多用于需求分析阶段。

二、参与者

2.1 什么是参与者

参与者(Actor)是与主体系统交互的外部实体。每个参与者实际上是一个角色集。在UML中,参与者使用使用人形的图形表示,并给这个参与者赋予一个名字。如下图中的“管理员”即是图书馆借阅系统中的一个参与者。

但是一定要注意:参与者不一定是人。

在UML的用例图中,“参与者”(Actor)是一个重要的元素,指的是与系统进行交互的外部实体。这些实体可以是用户、其他系统、组织或任何与所建模系统有交互行为的对象。参与者的主要特点是,它们不是系统的一部分,但是会与系统进行交互,从而触发系统的某些功能或行为。

简而言之,参与者是与系统发生交互作用的人或事物,它们通过用例与系统交换信息,并期望系统能够提供某种服务或功能。在用例图中,参与者通常用人形图标表示,以突出其与系统之间的交互关系。

2.2 如何识别参与者

识别用例图中的参与者是一个涉及多个维度的过程,需要综合考虑系统的各种交互场景和可能的利益相关者。以下是一些常用的方法来识别和确定参与者:

1.定义系统边界:

  • 明确系统范围和边界。
  • 识别系统的主要功能和服务。

2.识别用户角色:

  • 列出与系统交互的所有人或组织。
  • 考虑不同用户角色的权限和职责。

3.考虑其他系统或设备:

  • 识别与其他系统或设备的交互。
  • 注意非人类参与者的接口或功能。

4.分析业务场景和用例:

  • 深入研究系统的业务场景和用例。
  • 识别在特定情境下与系统交互的实体。

5.考虑信息的来源和目的地:

  • 分析系统中的信息流。
  • 确定信息的起点和终点。

6.检查现有文档和资料:

  • 查看用户需求、业务需求、市场分析报告等。
  • 获取关于潜在参与者的线索。

7.进行访谈和调研:

  • 与潜在用户、利益相关者或领域专家进行访谈。
  • 识别可能被忽略的参与者或特殊场景。

8.使用原型和模拟:

  • 使用原型或模拟来验证和细化对参与者的理解。
  • 观察和理解参与者的行为和需求。

9.持续更新和调整:

  • 随着对系统的理解加深,更新和调整参与者定义。
  • 保持识别和定义的灵活性。

10.注意特殊情况和异常:

  • 不要忽视特殊情况或异常场景下的参与者。
  • 考虑故障恢复、系统维护或灾难恢复等情况下的参与者。

此外,还有一些有用的思考维度,可以帮助你找到系统的参与者:

  • 系统的使用者。比如电商平台的消费者。
  • 系统的管理员,维护者。比如电商平台的运营人员、客服、超级管理员。
  • 外部接口相关的实体,或者设备。比如开放平台,外部接口和设备。
  • 子系统。比如你需要对接的SAP、财务系统等。
  • 时间相关的自动触发的事件,比如定时任务,自动提醒。
  • 自动化的一些事件。这个比较难以界定,我们可以认为,触发条件,也是一种参与者。

再次注意:参与者可能是其它子系统、其它系统、时间、温度等其它因素。

  • 参与者位于系统的外部,而不是系统的一部分;
  • 参与者通过系统边界与系统进行交互;
  • 参与者的图标虽然使用人形图标来表示,但参与者不一定是人。

2.3 参与者之间的关系

在用例图中,参与者之间的关系主要是描述它们之间的相似性或差异性。其中,泛化关系是参与者之间最常见的一种关系。

泛化关系(Generalization):

  • 泛化关系表示一个更一般的参与者(父参与者)与一个或多个更具体的参与者(子参与者)之间的关系。
  • 父参与者通常代表一组共同的特性和行为,而子参与者则继承这些特性,并可能添加一些自己的特性。
  • 在图形表示中,使用带空心箭头的实线连接子参与者和父参与者,箭头指向父参与者。

这里稍微有些“别扭”,就是泛化这个词,我们很容易直觉理解为,是从一般到具体。但是箭头,却是从具体指向一般。可以说,UML中,泛化关系的箭头方向可能初看起来有些反直觉!这种表示方法有助于强调子类是父类的一种特殊情况或具体实现。

记忆这个规则的一个方法是将其与继承的概念联系起来。在面向对象编程中,子类继承父类的属性和方法。因此,可以将箭头从子类指向父类理解为“子类继承了父类的特性”。这样,当看到箭头指向一个更一般的参与者或类时,就可以联想到“继承”和“特化”的概念,从而帮助记忆泛化关系的表示方法。

除了泛化关系外,参与者之间还可以存在其他关系,但这些关系在用例图中并不常见。例如,在某些情况下,参与者之间可能存在关联关系,表示它们之间的某种联系或交互模式。但这些关系通常不直接在用例图中表示,而是通过用例之间的交互来描述。

(未完,下次来讲用例。)

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

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

相关文章

第三节TypeScript 基础类型

1、typescript的基础类型 如下表: 数据类型 关键字 描述 任意类型 any 生命any的变量可以赋值任意类型的值 数字类型 number 整数或分数 字符串类型 string 使用单引号(‘’)或者双引号(“”)来表示字符串…

nodejs微信小程序+python+PHP购物商城网站-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

3D模型格式转换工具如何实现高性能数据转换?请看CAE系统开发实例!

​ 客户背景 DP Technology是全球知名的CAM的供应商,在全球8个国家设有18个办事处。DP Technology提供的CAMESPRIT系统是一个用于数控编程,优化和仿真全方面的CAM系统。CAMESPRIT的客户来自多个行业,因此支持多种CAD工具和文件格式显得格外重…

区块链技术与应用 【全国职业院校技能大赛国赛题目解析】第一套区块链系统部署与运维

第一套区块链系统部署与运维题目 环境 : ubuntu20 fisco : 2.8.0 子任务1-2-1: 搭建区块链系统并验证 题意: 要求搭建一条四节点的区块链系统,我们选择使用fisco作为此次测试的链子 我们使用build_chain.sh进行构建单机四节点,并且使用官方的默认端口【正式比赛大概率不…

java使用面向对象实现图书管理系统

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

算法基础之筛质数

筛质数 核心思想:筛法求质数 埃氏筛法: 每次用 2 3 4…. p-1 筛 2 - p之间的数出现2 3 4 …的倍数时 去掉(4实际已经被去掉 不会用4去筛)当2~p-1的数都没有筛掉p 说明p是质数 优化: 只用2~p-1中质数筛 线性筛法: 核心: n只会被其最小质因子筛掉 每一个合数都只…

如何使用AI智能写作API接口批量处理数据

有大量的数据,想使用AI智能写作工具进行批量操作处理,有没什么好方法? 可以使用简数采集器,支持自动采集数据,也支持批量导入数据,然后调用第三方AI智能写作API接口进行批量处理(例如&#xff…

『 C++ 』二叉树进阶OJ题

文章目录 根据二叉树创建字符串 🦖🥩 题目描述🥩 解题思路🥩 代码 二叉树的层序遍历(分层遍历) 🦖🥩 题目描述🥩 解题思路🥩 代码 二叉树的层序遍历(分层遍历)Ⅱ 🦖&…

redis集群介绍

这里写自定义目录标题 redis集群是什么?redis集群方案1.节点2.槽指派3在集群中执行命令4.复制与故障转移5.消息 redis集群搭建参考文档 redis集群是什么? redis集群是一个由多个主从节点群组成的分布式服务集群,它具有复制、高可用和分片特性…

无锡算法大赛线下颁奖会,齐聚院士专家探讨前沿AI技术,大赛选手优秀获奖方案分享!

极市邀您参与“视界拓新知Al有所为 2023首届无锡国际人工智能算法大赛”,相聚美丽无锡! 举行地点:无锡君来洲际酒店君来厅 举行时间:2023年12月27日(周三) 此次大会齐聚多名院士专家,分享前沿…

Linux/Windows IP | Team基础管理

引言 IP(Internet Protocol) 定义: IP(Internet Protocol)是网络传输数据的协议,负责在网络中唯一标识和定位设备,并提供数据传输的基础。功能: 允许计算机在网络上相互通信和交换…

做一个家政预约小程序需要了解哪些功能?

随着科技的发展,人们的生活方式发生改变,家政服务在快节奏的时代成为家庭必备。为了满足人们对家政服务的需求,许多家政公司开始寻求线上发展机会。小程序作为轻量级应用,逐渐成为家政行业的重要载体。本文将详细介绍家政小程序的…

【数据结构和算法】---二叉树(1)--树概念及结构

目录 一、树的概念及结构1.1 树的概念1.2 树的相关概念1.3 树的表示1.4 树在实际中的运用 二、二叉树的概念及结构2.1 二叉树概念2.2 特殊的二叉树2.3 二叉树的性质2.4 二叉树的存储结构 三、树概念相关题目 一、树的概念及结构 1.1 树的概念 树是一种非线性的数据结构&#…

Python爬虫之两种urlencode编码发起post请求方式

背景 闲来无事想爬一下牛客网的校招薪资水平及城市分布,最后想做一个薪资水平分布的图表出来 于是发现牛客使用的是application/x-www-form-urlencoded的格式 测试 首先可以先用apipost等测试工具先测试一下是否需要cookie之类的,发现是不需要的&…

第五节TypeScript 运算符

一、描述 运算符用于执行程序代码运算。 二、运算符主要包括: 算术运算符逻辑运算符关系运算符按位运算符赋值运算符三元/条件运算符字符串运算符类型运算符 1、算术运算符 y5,对下面算术运算符进行解释: 运算符 描述 例子 x 运算结果…

Elasticsearch:什么是文本分类?

文本分类定义 - text classification 文本分类是一种机器学习,它将文本文档或句子分类为预定义的类或类别。 它分析文本的内容和含义,然后使用文本标签为其分配最合适的标签。 文本分类的实际应用包括情绪分析(确定评论中的正面或负面情绪&…

10 个顶级免费 Android 数据恢复软件可帮助恢复已删除的文件

不小心删除了手机上的一些重要数据或文件?这很不幸,但不要悲伤或放弃希望,因为仍有机会恢复它们。 10 个顶级免费 Android 数据恢复软件 虽然 Android 手机没有像 Windows 那样的回收站可以自动存储您删除的数据,但是有很多功能强…

v高速、低功耗数模转换器MS9708/MS9710/MS9714

产品简述 MS9708/MS9710/MS9714 是一个 8-Bit/10-Bit/14-Bit 高速、低功耗 D/A 转换器。当采样速率达到 125MSPS 时, MS9708/MS9710/MS9714 也能提供优越的 AC 和 DC 性能。 MS9708/MS9710/MS9714 的正常工作电压范围为 2.7V 到 5.5V ,…

Python轴承故障诊断 (八)基于EMD-CNN-GRU并行模型的故障分类

目录 前言 1 经验模态分解EMD的Python示例 2 轴承故障数据的预处理 2.1 导入数据 2.2 制作数据集和对应标签 2.3 故障数据的EMD分解可视化 2.4 故障数据的EMD分解预处理 3 基于EMD-CNN-GRU并行模型的轴承故障诊断分类 3.1 训练数据、测试数据分组,数据分ba…

什么是“人机协同”机器学习?

“人机协同”(HITL)是人工智能的一个分支,它同时利用人类智能和机器智能来创建机器学习模型。在传统的“人机协同”方法中,人们会参与一个良性循环,在其中训练、调整和测试特定算法。通常,它的工作方式如下…