初学者指南:用例图——开启您的软件工程之旅

目录

背景:

基本组成:

关联(Assciation):

包含(Include):

扩展(Extend):

泛化(Inheritance):

完整银行系统用例图:

总结:


背景:

用例图(Use Case Diagram)是一种在软件开发和系统设计中广泛使用的图形化工具,它属于UML(Unified Modeling,统一建模语言)的一部分。用例图通过展示参与者(Actor)与系统用例(Use Case)之间的交互关系,来描述系统功能需求和行为

基本组成:

名称

表示

名词解释

系统(System)

用一个矩形代表一个系统,然后将系统名称放在顶部。矩形用于定义系统的范围,矩形内的所有内容都在系统内发生,矩形外的所有内容都不会在系统外发生

参与者(Actor)

与系统交互的外部实体,可以是用户、其他系统或任何能够触发系统功能的实体

用例(Use Case)

描述系统的一个功能或行为,是系统参与者提供的一项服务或完成一个任务

关联(Assciation)

参与者与用例间的关系
包含(Include)

参与者之间或用例之间的关系
扩展(Exten)

用例之间的关系
泛化(Inheritance)

用例之间的关系

关联(Assciation):

关联关系,用实线表示。表示参与者与用例与用例之间的通信,任何一方都可以发送和接收消息。

例子:在银行系统中,客户(参与者)与登录(用例)之间存在关联关系。客户登录银行应用、客户检查账单、客户转账、客户付款。这种之间的连接或交互就是关联关系

包含(Include):

包含关系,把一个较复杂用例所表示的功能分解成较小的步骤,是上一个用例过程中不可可少的。箭头指向包含的子用例

例子:登录是基本用例,验证密码是包含用例,在银行系统中,每次客户登录时,银行应用都会验证密码

扩展(Extend):

扩展关系,用例功能的延伸,相当于为基础用例提供一个附加功能。(指向基础用例)

基本用例和扩展用例,当执行基本用例时,扩展用例有时候会触发有时候不会触发,扩展用例只会在满足某种条件的时候才会触发,

当有扩展关系时,使用一条带有箭头的虚线指向基本用例

例子:在银行系统中,登录是基本用例,而提示登录错误是一个扩展用例,银行应用不会在每次可客户登录时都提示登录错误消息,而是当客户输入错误的密码时,才会提示登录错消息。因为这是一个扩展关系,所以画一条带有箭头的虚线,箭头指向基本用例。

转账和支付者两个动作完成之前都需要检查余额是否充足

泛化(Inheritance):

泛化关系是一种继承关系,它表示一般与特殊的关系。在用例图中,泛化关系通常用于描述用例或参与者之间的继承关系。一个用例(或参与者)可以是另一个用例(或参与者)的特化或子类,继承父类(基类)的所有行为或者特征。

例子:在银行系统中,当客户使用银行应用付款时,可以从支票账户进行付款或者从储蓄账户进行付款,付款是一个通用用例。从支票账户付款和从储蓄账户付款是专门用例,可以把它们叫做父用例和子用例,子用例有着父用例的功能,并且子用例还具有特有的功能。

完整银行系统用例图:

总结:

用例图的好处解释
清晰表达系统需求通过展示参与者与系统之间的交互,使系统需求更加明确和直观
促进沟通为开发团队、测试团队、业务分析师等提供了共同的语言和理解基础
识别系统功能明确列出系统需要实现的功能,有助于后续的设计和开发工作
降低开发风险通过早期识别潜在的问题和需求变更,减少开发过程中的风险和不确定性
支持迭代开发易于更新和调整,适应迭代开发过程中的需求变化
提高开发效率为开发团队提供了明确的指导,减少不必要的开发和测试工作

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于单片机洗衣机控制器的设计(论文+源码)

1需求分析 在智能洗衣机系统设计中,考虑到洗衣机在实际应用过程中,需要满足用户对于不同衣物清洁、消毒的应用要求,对设计功能进行分析,具体如下: 通过按键实现洗衣机不同工作模式的切换,包括标准模式&am…

qt QFontDialog详解

1、概述 QFontDialog 是 Qt 框架中的一个对话框类,用于选择字体。它提供了一个可视化的界面,允许用户选择所需的字体以及相关的属性,如字体样式、大小、粗细等。用户可以通过对话框中的选项进行选择,并实时预览所选字体的效果。Q…

Python学习从0到1 day27 第三阶段 Spark ③ 数据计算 Ⅱ

目录 一、Filter方法 功能 语法 代码 总结 filter算子 二、distinct方法 功能 语法 代码 总结 distinct算子 三、SortBy方法 功能 语法 代码 总结 sortBy算子 四、数据计算练习 需求: 解答 总结 去重函数: 过滤函数: 转换函数: 排…

今天,智谱「新清影」上线,率先进入有声视频生成时代!还要继续开源宠粉

来,你先把手机音量打开,然后去“听”下面一段视频: 你是不是一脸懵逼?不知道我想表达什么? 视频是AI生成的并不奇怪,但你可能没法相信,这个视频的音效,也是AI生成的。 火车鸣笛 你…

「Mac畅玩鸿蒙与硬件31」UI互动应用篇8 - 自定义评分星级组件

本篇将带你实现一个自定义评分星级组件,用户可以通过点击星星进行评分,并实时显示评分结果。为了让界面更具吸引力,我们还将添加一只小猫图片作为评分的背景装饰。 关键词 UI互动应用评分系统自定义星级组件状态管理用户交互 一、功能说明 …

pdf转excel;pdf中表格提取

一、问题描述 在工作中或多或少会遇到:需要将某份pdf中的表格数据提取出来,以便能够“修改使用”数据 可将pdf中的表格提取出来,解决办法还有点复杂 尤其涉及“pdf中表格不是标准的单元格”的时候,提取数据到excel不太容易 比…

IT架构管理

目录 总则 IT架构管理目的 明确组织与职责 IT架构管理旨在桥接技术实施与业务需求之间的鸿沟,通过深入理解业务战略和技术能力,推动技术创新以支持业务增长,实现技术投资的最大价值。 设定目标与范围 IT架构管理的首要目的是确立清晰的组织…

小红书图文矩阵的运营策略与引流技巧解析

内容概要 小红书图文矩阵是一种高效的内容运营方式,能够帮助品牌在竞争激烈的环境中脱颖而出。通过构建矩阵账号,品牌可以实现多维度的内容覆盖,创造出丰富而立体的用户体验。为什么要做图文矩阵?首先,这种方式能够提…

python中常见的8种数据结构之一元组

元组(tuple)是Python中常见的数据结构之一,它是一个有序、不可变的序列。元组使用圆括号来表示,可以包含任意类型的元素,包括数字、字符串、列表等。元组的元素可以通过索引访问,但是不能修改。 下面是一些…

计算机毕业设计Python+大模型动漫推荐系统 动漫视频推荐系统 机器学习 协同过滤推荐算法 bilibili动漫爬虫 数据可视化 数据分析 大数据毕业设计

作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,…

【leetcode练习·二叉树】用「分解问题」思维解题 I

本文参考labuladong算法笔记[【强化练习】用「分解问题」思维解题 I | labuladong 的算法笔记] 105. 从前序与中序遍历序列构造二叉树 | 力扣 | LeetCode | 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵…

产品经理晋级-Axure中继器制作美观表格

这里的效果,步骤如下: 点击中继器,输入表格信息;在中继器中创建表格内容,把你想要的效果制作在中继器中,表头有几个表格,这边就对应多少个。 按照视频的过程把中继器双击后-样式中的文本内容&am…

防火墙|WAF|漏洞|网络安全

防火墙|WAF|漏洞|网络安全 防火墙 根据内容分析数据包: 1、源IP和目的IP地址 2、有效负载中的内容。 3、数据包协议(例如,连接是否使用 TCP/IP 协议)。 4、应用协议(HTTP、Telnet、FTP、DNS、SSH 等)。 5…

【Linux系统编程】第四十四弹---从TID到线程封装:全面掌握线程管理的核心技巧

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、tid是什么 1.1、理解库 1.2、理解tid 1.3、tid中线程局部存储 2、封装线程 2.1、基本结构 2.2、函数实现 2.3、使用…

医学图像算法之基于Unet的视网膜血管分割

第一步:准备数据 视网膜血管分割数据比较少,但效果好,总共40张 第二步:搭建模型 UNet主要贡献是在U型结构上,该结构可以使它使用更少的训练图片的同时,且分割的准确度也不会差,UNet的网络结构…

ARM死机(HardFault)调试技巧详解(栈回溯,不破坏现场)

目录 Keil调试技巧: 一.不破坏现场连接仿真器与进入debug 二.栈回溯 死机调试示例 J-Link调试方法 示例:空指针异常 不能连接烧录器或者读取内存怎么办? 在日常开发中,经常会遇到单片机卡死机等问题,经常很难定…

nodejs 020: React语法规则 props和state

props和state 在 React 中,props 和 state 是管理数据流的两种核心机制。理解它们之间的区别和用途是构建 React 应用程序的基础。 一、props 和 state的区别 特性propsstate定义方式由父组件传递给子组件的数据组件内部管理的本地数据是否可修改不可变&#xff…

【开源免费】基于SpringBoot+Vue.JS水果购物网站(JAVA毕业设计)

博主说明:本文项目编号 T 065 ,文末自助获取源码 \color{red}{T065,文末自助获取源码} T065,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

python可视化进阶

引用: 首先需要安装 plotnine from plotnine import* import joypy数据可视化进阶操作 3.1 类别数据可视化 【例3-1】——绘制简单条形图 【代码框3-1】——绘制简单条形图 # 图3-1的绘制代码 import pandas as pd import matplotlib.pyplot as plt from cvxpy …

大模型入门自学资源汇总,很难找到比这还全的大模型学习资源总结了!

接触各种AI工具到现在也快两年了,今年和同学陆续做了一些AI应用的科普宣讲,在这过程中收集了不少自学资源,特地挑出一部分整理成以下的内容。 书籍 大模型应用开发极简入门:基于GPT-4和ChatGPT 首推今年年初出版的《大模型应用开…