UML中用例和用例图的概念

用例

用例模型的基本组成部分有用例、参与者(或角色)和系统。用例用于描述系统的功能,也就是从用户的角度来说,系统具体应包含哪些功能,从而帮助分析人员理解系统的行为。它是对系统功能的宏观的、整体的描述。一个完整的系统通常包含许多用例,每个用例具体说明应完成的功能。参与者是指那些与系统进行交互的外部实体,通常是系统的一个用户,但它也可以是其他系统或硬件设备,总之凡是需要与系统进行交互的实体都可以称作参与者。用例必须向参与者传递一些数值,这些数值是参与者在系统中获得的信息。

在用例模型中,系统仿佛是实现各种用例的一个“黑盒子”,用户只关心该系统实现了哪些功能,并不需要知道其内部的具体实现细节,比如系统是如何做的用例,是如何实现的。用例模型主要应用在工程开发的初期阶段,在进行系统需求分析时使用,通过分析描述使开发者明确需要开发的系统功能有哪些。

使用用例的主要目的是:

(1)明确系统应具备什么功能,这些功能是否满足客户的基本需求,并与系统开发人员达成一致。

(2)为系统的功能提供清晰一致的描述,用例模型应用于系统开发的整个过程,为后阶段的系统设计和开发工作打下良好的基础。

(3)为系统测试打下基础,可以用于验证最终实现的系统所完成的功能是否符合客户的最初需求。

(4)通过从需求的功能用例出发,跟踪进入系统中具体实现的类和方法,可以检查其是否正确。例如,通过下面这种方法可以简化对系统的修改和扩展:首先修改用例模型,针对受到影响的用例,找到相应的系统设计和实现部分,对它进行相应的修改。

用例图

用例图是显示一组用例、参与者以及它们之间关系的一种图。

用例图在UML中是非常特别的图形元素,它描述了用户希望如何使用一个系统。通过用例图可以知道谁将是系统相关的用户,他们希望系统提供什么样的服务,以及他们需要为系统提供什么样的服务。

用例图从用户的角度而不是开发者的角度来描述对软件产品的需求,分析产品所需的功能和动态行为。用例图常用来对需求进行建模,它在系统的整个分析、设计和开发阶段是非常重要的,它的正确与否直接影响到客户对最终实现的产品的满意度的高低。用例图被广泛使用在各种开发活动中,但它最常用于描述系统以及子系统。

用例图的主要作用如下:

(1)用来描述将要开发的系统的功能需求和使用场景。

(2)作为设计和开发过程的基础,促进各阶段开发工作的进行。

(3)用于验证与确认系统需求。

画好用例图是系统从软件需求到最终实现的第一步。下面将具体介绍用例图中的各个组成元素。

(1)参与者(Actor):也称为角色,它代表系统的用户。

(2)系统边界(System Scope):它确定系统的范围。

(3)用例(Use Case):它代表系统提供的服务。

(4)关联(Association):它表示参与者与用例间的关系。

一个用例图如图4.1所示。

从图4.1中可以看出,所有的用例都放置在系统边界内,表明它属于一个系统;参与者则放在系统边界的外面,表明参与者并不属于系统,但是参与者负责直接(或间接)地驱动与其相关联的用例的执行。

《UML 2.5基础、建模与设计实践》(李波,姚丽丽,朱慧)【摘要 书评 试读】- 京东图书 (jd.com)

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

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

相关文章

idea中的块映射中的子元素无效

在yml文件中,出现块映射中的子元素无效,如图: 在YAML文件中,通常需要在键和值之间添加空格,以确保文件的可读性和正确解析。一些YAML解析器可能要求在冒号后面必须有空格才能正确解析文件。如果不加空格,解…

变长输入神经网络设计

我对使用 PyTorch 可以轻松构建动态神经网络的想法很感兴趣,因此我决定尝试一下。 我脑海中的应用程序具有可变数量的相同类型的输入。对于可变数量的输入,已经使用了循环或递归神经网络。但是,这些结构在给定行的输入之间施加了一些顺序或层…

Hugging Face使用笔记

1. HuggingFace简介 Hugging Face Hub和 Github 类似,都是Hub(社区)。Hugging Face可以说的上是机器学习界的Github。Hugging Face为用户提供了以下主要功能: 模型仓库(Model Repository):Git仓库可以让你管理代码版…

kei5l中不能跳转到函数定义的原因和个人遇到的问题

快捷键 CTRLK或F12,在选择要查看的函数定义时按下可以查看到(文件没问题的情况下) 出现不能查看的原因 1,没有设置生成文件信息(第一次打开工程常遇到问题) 2, 定义函数的代码没有加入工程 解决方式如下…

南大通用数据库-Gbase-8a-学习-44-DDLEVENT恢复

目录 一、环境信息 二、前景提要 1、情况描述 2、3号节点gc_recover日志截图 3、3号节点express日志截图 4、ddlevent截图 5、报错赋权语句分别在1节点和4节点执行 6、gcadmin 三、解决方法 1、描述 2、清理系统user表DDLEVENT 3、拷贝系统user表数据 (…

3.js - 灯光与阴影 - 聚光灯

// ts-nocheckimport * as THREE from three // 导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls // 导入hdr加载器 import { RGBELoader } from three/examples/jsm/loaders/RGBELoader.js // 导入lil.gui import { GUI } from thre…

数据库之索引(三)

目录 一、简述索引实现的原理 二、简述数据库索引的重构过程 三、为什么MySQL的索引使用B树 四、简述联合索引的存储结构及其有效方式 五、MySQL的Hash索引和B树索引有何区别 一、简述索引实现的原理 在MySQL中,索引是在存储引擎层实现的,不同存储引…

Echarts:渲染成Canvas还是SVG,该如何抉择?

ECharts 从初始一直使用 Canvas 绘制图表。而 ECharts v4.0 发布了 SVG 渲染器,从而提供了一种新的选择。在初始化图表实例时,只需设置 renderer 参数 为 canvas 或 svg 即可指定渲染器,比较方便。贝格前端工场带领大家看下如何选择。 一、C…

如何使用HTML和JavaScript读取文件夹中的所有图片并显示RGB范围

如何使用HTML和JavaScript读取文件夹中的所有图片并显示RGB范围 在这篇博客中&#xff0c;我将介绍如何使用HTML和JavaScript读取文件夹中的所有图片&#xff0c;并显示这些图片以及它们的RGB范围。这个项目使用现代浏览器提供的<input type"file" webkitdirecto…

苹果电脑为什么要清理软件?

你有没有想过&#xff0c;你的苹果电脑也许是一个秘密的收藏家&#xff1f;没错&#xff0c;你的Mac可能在悄悄收集那些你曾经用过的每一个字节&#xff0c;从那次偶然下载的应用到你已经忘记了的各种文件。久而久之&#xff0c;这些“收藏品”就会堆积成山&#xff0c;让你的苹…

智能电表在碳中和实现过程中发挥什么作用

智能电表在碳中和实现过程中发挥着至关重要的作用&#xff0c;这些作用主要体现在提高碳排放计量的精准度、推动绿色能源转型、促进电力领域低碳发展等方面&#xff1b;随着技术的不断发展和应用的不断深入相信智能电表将在碳中和实现过程中发挥更加重要的作用。以下是对智能电…

开始尝试从0写一个项目--前端(二)

修改请求路径的位置 将后续以及之前的所有请求全都放在同一个文件夹里面 定义axios全局拦截器 为了后端每次请求都需要向后端传递jwt令牌检验 ps&#xff1a;愁死了&#xff0c;翻阅各种资料&#xff0c;可算是搞定了&#xff0c;哭死~~ src\utils\request.js import axio…

【最新鸿蒙应用开发】——Router页面路由

Router路由 页面路由指的是在应用程序中实现不同页面之间的跳转&#xff0c;以及数据传递。通过 Router 模块就可以实现这个功能. 1. 创建页面 之前是创建的文件&#xff0c;使用路由的时候需要创建页面&#xff0c;步骤略有不同 方法 1&#xff1a;直接右键新建Page&#xf…

Python28-10 LightGBM对乳腺癌数据集进行分类

LightGBM&#xff08;Light Gradient Boosting Machine&#xff09;是一个梯度提升框架&#xff0c;由微软开发。它用于机器学习中的分类、回归和排序等任务&#xff0c;特别适合处理大规模数据和高维特征。LightGBM的核心是梯度提升决策树&#xff08;GBDT&#xff09;算法&am…

虚拟现实3d场景漫游体验实现了“所见即所得”

如今&#xff0c;从实体店铺到工厂企业&#xff0c;再到政府单位&#xff0c;各行各业都已纷纷加入VR数字化升级的行列&#xff0c;相比传统的2D商品展示&#xff0c;三维交互展示成为商企客户交流的主流方式。产品展示、服务介绍、考察洽谈等都可以通过在3D虚拟场景网站中真实…

7月学术会议:7月可投的EI国际会议

随着科技的迅猛发展&#xff0c;学术交流与研讨成为了推动科研进步的重要途径。进入7月&#xff0c;众多高质量的EI国际会议纷纷拉开帷幕&#xff0c;为全球的科研工作者提供了一个展示研究成果、交流学术思想的平台。以下&#xff0c;我们将详细介绍一些在7月可投的EI国际会议…

Chromium编译指南2024 Linux篇-安装官方工具depot_tools(二)

1.引言 在上一节中&#xff0c;我们已经完成了 Git 的安装&#xff0c;并了解了其在 Chromium 编译过程中的重要性。接下来&#xff0c;我们将继续进行环境的配置&#xff0c;首先是安装和配置 Chromium 编译所需的重要工具——depot_tools。 depot_tools 是一组用于获取、管…

你最近想通了什么事情?这10条职场经验帮助你活得更通透

1别总当老好人 记得刚步入职场那会儿&#xff0c;我简直是“老好人”的代名词。 无论是同事的额外任务&#xff0c;还是朋友的小忙&#xff0c;我总是二话不说就接下来&#xff0c;结果自己累得半死&#xff0c;换来的却是别人的理所当然和偶尔的忽视。 直到有一次&#xff…

云计算【第一阶段(27)】DHCP原理与配置以及FTP的介绍

一、DHCP工作原理 1.1、DHCP概念 动态主机配置协议 DHCP&#xff08;Dynamic Host Configuration Protocol&#xff0c;动态主机配置协议&#xff0c;该协议允许服务器向客户端动态分配 IP 地址和配置信息。 DHCP协议支持C/S&#xff08;客户端/服务器&#xff09;结构&…

break 和 continue 的区别与用法

break 和 continue 的区别与用法 1、break 语句2、continue 语句3、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在JAVA中&#xff0c;break 和 continue 是两种常用的控制流语句&#xff0c;它们主要用于在循环结构中改变程序的执行…