UML用例图-UML Use Case Diagram

news/2025/4/1 5:49:19/文章来源:https://www.cnblogs.com/wubayue/p/18799692

导航

1前言

2UML用例图中的元素

2.1用例

2.2参与者

2.3系统

2.4子系统

3UML用例图中的关系

3.1关联关系

3.2包含关系

3.3扩展关系

3.4泛化关系

3.5依赖关系

1 前言

在建筑行业,大到百层的摩天大楼,小到两层的乡间别墅,在施工之前都需要设计。地基挖多深,使用什么样的主体框架,承重多少,客厅与卧室如何连通,厨房的排烟管在什么位置......建筑行业先设计后施工已经成为标准范式,即使盖一间公园的厕所,如果没有设计图纸,也会让人觉得不可思议,工人们更不知道如何动手。

反观软件行业,我们离传统的建筑设计,差的就不是一星半点了。以我自己的亲身经历为例,从业二十年间,从十来人的创业公司,到上万人的上市公司,真正把软件设计规划好的,少之又少,其中主要原因是管理决策者们很难提前意识到软件架构设计的重要性,另外在中国,一部分开发人员经历了项目的磨砺刚具备了设计经验,但35岁年龄已到,他们被迫转去了其它岗位......

建筑设计有上千年的历史了,而软件诞生不过区区几十年,虽然软件设计的思想、方法、工具无法媲美建筑领域的千年沉淀,但在软件设计中,UML无疑是最闪亮的那颗星。 我们知道图的表达能力远大于文字,在软件设计中,UML是图形表达的唯一通用标准,意味着使用不同技术的开发者之间,比如Python与C++开发者,不同的软件岗位之间,比如产品与开发,开发与测试,UML都是大家的通用沟通语言,并且以图形化的方式传递信息。

用例图是UML中最简单,使用最高频的图之一,它通常用于诠释“这个软件做了什么”。用例图的的表达非常简单并且通俗易懂,不论研发、产品、测试,还是完全不懂软件的外行,用例图基本都能被看懂。来源:https://www.wubayue.com

2 UML用例图中的元素

2.1 用例

UML用例图中的元素-用例

用例(Use Case)为椭圆形,可表示功能、动作、行为、过程等。

2.2 参与者

UML用例图中的元素-参与者

参与者(Actor)为人形,表示参与交互的角色,可为人、事物、外部系统等。

2.3 系统

UML用例图中的元素-系统

系统也称为系统边界(System Boundary),其中集合了一系列相关的功能,有助于明确系统的功能范围。

2.4 子系统

UML用例图中的元素-子系统

子系统(Subsystem)用于在系统中划分更小颗粒度功能的集合。来源:https://www.wubayue.com

3 UML用例图中的关系

3.1 关联关系

UML用例图中的关系-关联关系

关联(Association)表示两个元素之间发生信息交互/协作,关联可带有方向性。

3.2 包含关系

UML用例图中的关系-包含关系

包含(Include)表示整体与部分之间的关系,使用由整体到部分的虚线。

3.3 扩展关系

UML用例图中的关系-扩展关系

扩展(Extend)表示一个用例对另一个用例行为的增强。注意箭头方向为扩展用例到基用例,这也表明扩展用例占据主导权,什么时候扩展如何扩展均取决于扩展用例。

3.4 泛化关系

UML用例图中的关系-泛化关系

泛化(Generalization)可视为面向对象编程中的继承/实现关系,通常用于表示抽象与具体。

3.5 依赖关系

UML用例图中的关系-依赖关系

依赖(Dependency)即使用关系,为单方向的虚线。来源:https://www.wubayue.com

<全文完>

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

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

相关文章

喜提好人卡?混元模型模块独立维护与开源发布

接着我们上次向Spring AI提交的混元模型模块,我已经完成了所有关于混元的聊天对接,并提交了相应的PR描述。提交后,荣获了一张“好人卡”,如图所示:今天,我们决定将之前提交给Spring AI官方的PR重新拿出来,并准备将其独立维护在一个开源仓库中。做出这一决策的原因是Spri…

VMware Aria Automation 8.18.1 新增功能简介

VMware Aria Automation 8.18.1 新增功能简介VMware Aria Automation 8.18.1 - 多云基础架构自动化平台 Multi-Cloud Infrastructure Automation Platform 请访问原文链接:https://sysin.org/blog/vmware-aria-automation/ 查看最新版。原创作品,转载请保留出处。 作者主页:…

最小二乘及最小二乘法系统辨识

目录一般最小二乘法加权最小二乘递推最小二乘 一般最小二乘法 无需每次对整体数据进行最小二乘估计,利用上次计算的值与当前数据融合计算,获取计算结果。本质上是对老的计算结果修正的方式,节省计算步骤,降低运算量,提升计算的效率。 若辨识模型: \[z_{(k)}={h_{(k)}}^T\…

氩气保护焊接气体流量控制

该节气装置通过以下方法,为您减少30%-50%的焊接气体的用量。在整个焊接过程中,气流与焊接电流自动同步调节。 “较大电流 — 较多气体/较小电流 — 较少气体”极高速气阀即使在焊接停止时间很短的情况下,也可开闭。通过持续的气体保护以及预先“编程”,脉冲气体可进一步减小…

2025.3.29日 清华大学-郝泽旭 的模拟赛

2025.3.29日 清华大学-郝泽旭 的模拟赛原题可以转化为给定了 \(k\) 个起点,求 \(k\) 个终点,使得路径两两无公共点的所有路径之和的最大值。 注意到先上再下的路径可以拆成两部分,即从关键点开始先向上到达一个点后再向下可以看作一条从关键点向上的路径与一条从非关键点向上…

DDL转换,一键导出表结构,生成DDL语句【转载】

源代码:https://gitee.com/wsitm/RuoYi-RDBMS 一、驱动管理驱动管理功能,用户能够上传并配置各类数据库驱动包。无论是常见的MySQL、Oracle、PostgreSQL、SQL Server,还是更多小众的数据库类型,只需上传相应的驱动包,即可迅速完成配置。 这一功能不仅简化了驱动安装与更新…

库卡机器人维修KSS26045硬件错误维修

库卡机器人在使用过程中,可能会遇到常见的KSS26045硬件故障,这些机器人故障大致可以归结为以下几种类型: 先是电源故障。一旦电源系统出现问题,库卡机器人可能会面临无法启动或无法维持正常运行的困境。为了诊断电源故障,可以利用万用表等专业工具来精确测量电源的输出电压…

PHP历理 精准处理数学表达式中的小数末尾零

<?php /*** 精准处理数学表达式中的小数末尾零* @param string $expression 原始数学表达式* @return string 处理后的规范表达式*/ function formatMathExpression(string $expression): string {// 正则匹配所有小数(包含整数部分和小数部分)return preg_replace_callb…

判断 Python 代码是不是 AI写的几个简单方法

作者:Laurel W来源:Adobe作为一名数据科学和数学老师,我其实不介意我的学生使用像 ChatGPT 这样的 LLM,只要它是用来辅助他们学习,而不是取代学习过程。加州理工学院的申请文书指南启发了我为编程和机器学习课制定 AI 使用政策: 哪些是加州理工申请文书中不道德的 AI 使用…

Golang学习Ⅱ

iota,函数多返回值,init函数,import导包 常量定义方式:const a int = 10; const{ a=10 b=20 }1 const{ 2 BeiJing = iota*10 //iota为0 3 ShangHai 4 NanJing 5 } //使用const定义枚举,BeiJing为0,ShangHai为10,NanJing为20View Code

SpringBoot整合RabbitMQ--Direct和Topic模式

一.Direct模式 这几个模式使用SpringBoot的整合和前面使用源生Java整合其实是差不多的,故而步骤就不再详细赘述了,直接先导入依赖:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId&g…

CMS和G1的区别

悲观者从机会中看到困难。乐观者从困难中看到机会。 ——温斯顿丘吉尔区别一:使用的范围不一样:CMS收集器是老年代的收集器,可以配合新生代的Serial和ParNew收集器一起使用。 G1收集器收集范围是老年代和新生代。不需要结合其他收集器使用区别二:STW的时间:CMS收集器以最小的停…