一文读懂UML用例图

news2024/12/28 13:40:31

一、概述

用例是描述系统需求的一种手段,即系统应该做什么。用例图由参与者、用例和主题组成。每个用例的主题都代表了一个用例所适用的系统。用户和任何其他可以与主体交互的系统都被表示为行动者。

用例是一种行为规范。用例的实例指的是紧急行为的发生符合相应的用例。这种情况通常用交互来描述。

二、Abstract Syntax

图 1 

三、用例图的基本符号与元素

参与者(Actor):表示系统中的用户,即与系统交互的对象

用例(Use Case):用户与系统的交互行为,可以理解为用户可以使用系统做的事情

系统边界(system):用来表示正在建模系统的边界

包含关系(include):被指向用例为指向用例的行为之一

拓展关系(extend):被指向用例为指向用例的拓展功能

泛化关系(generalization):被指向用例为指向用例的特例之一

关联关系(association):表示参与者与用例之间的关联关系

1、Use Cases and Actors

用例可以适用于任何数量的主题。当用例应用于主题时,它指定了一组行为由受试者执行,从而产生对参与者或受试者的其他利益相关者有价值的可观察结果。
用例是一种BehavioredClassifier,它表示一组提供的行为的声明。每个用例指定受试者可以与一个或多个演员合作执行的某些行为。用例定义了受试者提供的行为,而不参考其内部结构。这些行为涉及参与者和受试者之间的互动,可能会导致受试者状态的变化以及与环境的沟通。用例可以包括其基本行为的可能变体,包括异常行为和错误处理

用例的主题可以是一个系统或任何其他可能具有行为的元素,例如组件或类。每个用例都指定了主题向用户提供的有用功能单元(即与受试者互动)。必须始终完成此功能才能完成用例。视为如果在执行之后,受试者将处于不期望进一步输入或操作的状态,并且UseCase可以再次启动,也可以处于错误状态。

用例既可以用于规范主题的(外部)需求,也可以用于规范由主题提供的功能。此外,用例还可以通过定义参与者应该如何与主体交互,从而使主体能够执行其服务,来说明指定主体对其环境提出的要求

用例的行为可以由一组行为(通过其ownedBehavior关系)来描述,例如交互、活动和StateMachines,以及按前置条件、后置条件和自然语言文本在适当的情况下。它也可以通过协作来间接描述,该协作使用用例及其参与者作为分类器来键入其部分。使用哪种技术取决于用例行为的性质以及预期的读者。这些描述可以组合在一起。具有关联StateMachine的用例示例如图1 所示。
用例可能有相关的Actor,这些Actor描述分类器的实例如何实现用例和扮演Actor角色之一的用户进行交互。指定同一主题的两个用例不能关联,因为它们各自描述了主题的完整用法。

当UseCase与Actor的关联在Actor端的多重性大于1时,这意味着UseCase中涉及多个Actor实例。多个参与者参与用例的方式取决于手头的具体情况,本规范中未对此进行定义。例如用例可能需要两个独立的行动者同时(同时)采取行动(例如,在发射核导弹时)或它可能需要参与者采取互补和连续的行动(例如,一个参与者开始某件事,另一个参与者一个停止它)。

用例可以由包(Package)拥有,也可以由分类器(Classifier)拥有。尽管拥有的分类器通常代表拥有的用例所适用的主题,但情况并非如此。Actor为实体所扮演的角色类型建模,该实体与其相关用例的主体进行交互(例如,通过交换信号和数据)。Actor可以代表由人类用户、外部硬件或其他系统扮演的角色。

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

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

相关文章

【前端客栈】基于HTML、CSS、JavaScript的羊了个羊静态仿写页面小游戏

🏜哈喽,大家好,我是小浪。前段时间羊了个羊火遍了大江南北,大家是否都通过第二关了呢?哈哈,没关系,既然通不过,那咋们不如自己来做一个这样的羊了个羊的仿写页面,学会了赶…

文本中的关键词提取方法

目录 1. TF-IDF(Term Frequency-Inverse Document Frequency)算法: 2. TextRank算法: 3. LDA(Latent Dirichlet Allocation)算法: 4. RAKE(Rapid Automatic Keyword Extraction&…

基于SLM调制器,MIT研发高效率全息显示方案

此前,青亭网曾报道过NVIDIA、三星、剑桥大学等对空间光调制器(SLM)全息方案的探索。空间光调制器可调节光波的空间分布,在电驱动信号控制下,可改变光在空间中传播的振幅、强度、相位、偏振态等特性,从而形成…

MySQL性能优化之(explain)工具

慢SQL的定位 在MySQL当中,我们有时候写的SQL执行效率太慢此时我们需要将其优化。但是SQL可能非常的多,难道我们一条一条的进行查看吗?在MySQL当当中我们可以查看慢查询日志,看看那些SQL这么慢。但是这个默认情况下这个慢查询日志…

sqoop使用

sqoop使用 1. 导入数据2. 从mysql向hive导入数据2.1 导入用户信息表 2.导入订单表2.2 导入订单表2.3 导入商品信息表2.4 导入国家信息表2.5 导入省份信息表2.6 导入城市信息表2.7 创建hive临时表文件 在使用sqoop之前,需要提前启动hadoop, yarn和对应的数据库mysql …

当音乐遇上Python:用Pydub自动分割音频

🎵 🎵 🎵 当音乐遇上Python:用Pydub自动分割音频 随着短视频应用的普及,越来越多人开始了解并尝试制作自己的短视频作品。而在制作短视频时,背景音乐的选择和使用也是非常重要的一步。很多人喜欢选择一首长…

倒立摆控制器的设计(分别用极点配置,LQR方法,Robust H-无穷方法)

G01倒立摆控制器设计 Author:DargonNote date:2020/12/13课程用书:LMIs in Control Systems Analysis,Design and Applications 1,倒立摆控制系统简介 倒立摆系统是一个复杂的控制系统,具有非线性、强耦合、多变量、不稳定等特…

干货 | 正念,寻求属于你的存在之道

Hello,大家好! 这里是壹脑云科研圈,我是喵君姐姐~ 你是否也曾感到内心无法平静?如果是,不妨了解一下正念,它或许能为你带来改变。 正念作为一种古老的修行方式,如今已经在世界范围内广为流传,…

《Netty》从零开始学netty源码(四十九)之PoolArena

目录 PoolArenaallocate()创建newByteBuf()分配具体的内存空间allocate() PoolArena Netty中分配内存是委托给PoolArena来管理的,它主要有两个实现类: 默认情况下使用的DirectArena,它的数据结构如下: 从属性中我们看到PoolA…

人生若只如初见,你不来看看Django吗

前言 本文介绍python三大主流web框架之一的Django框架的基本使用,如何创建django项目,如何运行django项目以及django项目的目录结构,另外django又是如何返回不同的数据和页面? python三大主流web框架 Python有三大主流的web框架…

JS手写实现Promise.all

Promise.all() 方法接收一个 Promise 对象数组作为参数,返回一个新的 Promise 对象。该 Promise 对象在所有的 Promise 对象都成功时才会成功,其中一个 Promise 对象失败时,则该 Promise 对象立即失败。 本篇博客将手写实现 Promise.all() 方…

用于scATAC-seq有监督分类的Cellcano

细胞类型识别是单细胞数据分析的基本步骤。由于高质量参考数据集的可用性,有监督细胞分类方法在scRNA-seq数据中很受欢迎。染色质可及性分析(scATAC-seq)的最新技术进步为理解表观遗传异质性带来了新的见解。随着scATAC-seq数据集的不断积累&…

第二节课 Linux和shell命令之文件管理与常用命令

命令执行,没有图形页面 文件权限是重点 1.目录树 windous分盘 CDEF 在Linux系统中并不存在C/D/E/F等盘符,Linux系统中的一切文件都是 从“根(/)”目录开始的,并按照文件系统层次化标准(Filesystem Hie…

C++:计算机操作系统:多线程:高并发中的线程

高并发中的线程 一切要从CPU说起PC 程序计数器从CPU到操作系统从进程到线程 从这篇开始,我将会开启高性能,高并发系列,本篇是给系列的开篇,主要关注 多线程以及线程池。 一切要从CPU说起 你可能会有疑问,讲多线程为何…

西门子AmeSim车辆仿真软件在新能源汽车开发中的应用-软件AmeSim2021版分享

利用Simcenter Amesim提高系统仿真产品设计效率,Simcenter Amesim是一个全球领先的集成、可扩展的机、电、液系统仿真平台。它允许设计工程师虚拟评估和优化系统性能。 提高系统仿真效率 Simcenter Amesim是一个领先的集成、可扩展的系统仿真平台,允许…

汇编语言学习笔记一

常用寄存器类型 通用寄存器 AX,BX,CX,DX,这四个寄存器都是16位的 他们也可以拆分为2个8位的寄存器,如AX可以拆分为AH和AL两个8位的寄存器,其它三个也可以如此。 通用寄存器的使用比较简单,如 …

【HTML5笔记】HTML5语义化标签、音视频标签、表单标签属性

目录 一、HTML5学习 1.1、HTML5语法 1.2、语义化标签 1.3、音视频标签 (1)音频标签 (2)视频标签 1.4、input标签type属性 1.5、datalist数据列表 1.6、表单属性 一、HTML5学习 1.1、HTML5语法 HTML5增加了很多的新标签…

【SpringBoot】自定义策略的静态资源访问

文章目录 新建static文件夹,存储图片等资源方式一 Java编码定义方式二 配置中定义 新建static文件夹,存储图片等资源 项目版本信息:SpringBoot版本为2.3.3.RELEASE,JDK1.8 方式一 Java编码定义 配置类实现WebMvcConfigurer接口&…