UML--用例图详解

UML图详解(二)用例图 一、概念 用例图(Use Case Diagram):主要用于描述系统的行为及各种功能之间的关系,是描述参与者(Actor)与用例以及用例与用例之间关系的图。 用例图 = 参与者 + 用例 + 关系 二、用途 用例图显示谁将是相关的用户、用户希望系统提供什么服务以及用户需要为系统提供的服务。 用例图最常用来描述系统以及子系统。   通俗的来说:用例图与具体实现并不关联,从用户和外部系统的... 阅读详情
AI摘要

本文深入解析用例图的构成元素,如参与者、用例、系统边界及元素间关系,阐述用例图在需求分析中的作用,包括其在描述系统功能、促进团队沟通方面的价值。同时,文章探讨了用例图的粒度、用例规约等内容,以及用例间的包含、扩展、泛化关系。

用例图的含义

由参与者(Actor)、用例(Use Case) 以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。
其中用例和参与者之间的对应关系又叫做通讯关联(Communication Association)。

用例图的作用

用例图是需求分析中的产物,主要作用是描述参与者与和用例之间的关系,帮助开发人员可视化地了解系统的功能。借助于用例图,系统用户、系统分析人员、系统设计人员、领域专家能够以可视化的方式对问题进行探讨,减少了大量交流上的障碍,便于对问题达成共识。

用例图的构成元素

用例图的构成元素又四个:参与者(角色)、用例、系统边界、元素之间的关系

  • 参与者(Actor)——与应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。
    在这里插入图片描述

  • 用例(Use Case)——用例就是外部可见的系统功能,对系统提供的服务进行描述。用椭圆表示。
    在这里插入图片描述

  • 系统边界——系统边界是指系统与系统之间的界限。用方形框+系统名称表示。
    在这里插入图片描述- 元素之间的关系
    用例图中的关系有四种:关联、泛化、包含、扩展

关系类型说明表示符号
关联参与者与用例之间的关系在这里插入图片描述
泛化参与者之间或用例之间的关系在这里插入图片描述
包含用例之间的关系在这里插入图片描述
扩展用例之间的关系在这里插入图片描述
参与者

参与者(Actor)是指存在于系统外部并直接与系统交互的人、系统、子系统或类的外部实体的抽象。每个参与者可以参与一个或多个用例,每个用例也可以有一个或多个参与者。

参与者间的关系

由于参与者实质上也是类,所以它拥有与类相同的关系描述,即参与者与参与者之间主要是泛化关系(或称为“继承”关系)。
泛化关系是指把某些参与者的共同行为提取出来表示成通用行为,并描述成超类。泛化关系表示的是参与者之间的一般或特殊关系,在UML图中,使用带空心三角箭头的实现表示泛化关系,箭头指向超类参与者。
在这里插入图片描述

系统边界

系统边界是指系统与系统之间的界限。通常所说的系统可以认为是由一系列相互作用的元素形成的具有特定功能的有机整体。系统同时又是相对的,一个系统本身又可以是另一个更大系统的组成部分,因此,系统与系统之间需要使用系统边界进行区分。
系统边界在用例图中用方框来表示,同时附上系统的名称,参与者画在边界的外面,用例画在边界里面。

用例

用例(Use Case)是参与者(角色)可以感受到的系统服务或功能单元。它定义了系统是如何被参与者使用的,描述了参与者为使用系统所提供的某一完整功能而与系统之间发生的一段对话。
用例最大的优点就是站在用户的角度上(从系统的外部)来描述系统的功能。它把系统当作一个黑箱子,并不关心系统内部是如何完成它所提供的功能的,表达了整个系统对外部用户可见的行为。

用例的特征:

  • 用例必须由某一个参与者触发激活后才能执行,即每个用例至少应该涉及一个参与者。如果存在没有参与者的用例,则可以考虑将这个用例并入其他用例之中。
  • 用例表明的也是一个类,而不是某个具体的实例。用例所描述的是它代表的功能的各个方面,包含了用例执行期间可能发生的各种情况。
  • 用例是一个完整的描述。

用例的粒度:
用例的粒度是指用例所包含的系统服务或功能单元的多少。用例的粒度越大,用例包含的功能越多,反之则包含的越少。

粗粒度细粒度
在这里插入图片描述在这里插入图片描述

用例规约:
用例图只是在总体上大致描述了系统所提供的各种服务,让人们对系统有一个总体的认识。但对于每一个用例,还需要详细地描述信息,以便让别人对于整个系统由更加详细的了解,这些信息包含在**用例规约(Use Case Specification)**中。

  1. 简要说明(Brief Description)
    简要说明是指对用例作用和目的的简要描述。
  2. 事件流(Flow Event)
    事件流包括基本流和备选流。基本流描述的是用例的基本流程,是指用例“正常”运行时的场景。备选流描述的时用例执行过程中可能发生的异常和偶尔发生的情况。
  3. 用例场景(Use-Case Scenario)
    同一个用例在实际执行的时候会有很多不同的情况发生,称之为用例场景,也可以说用例场景就是用例的实例,用例场景包括成功用例场景和失败场景。
  4. 特殊需求(Sepcial Requirement)
    特殊需求是指一个用例的非功能性需求和设计约束。特殊需求通常时非功能性需求,包括可靠性、性能、可用性和可扩展性等。
  5. 前置条件(Pre-Condition)
    前置条件是指执行用例之间系统必须所处的状态。例如,前置条件是要求用户有访问的权限,或是要求某个用例必须已经执行完。
  6. 后置条件(Post-Condition)
    后置条件是指用例执行完毕后系统可能处于的一组状态。例如,要求在某个用例执行完后,必须执行另一个用例。

用例之间的重要关系

1. 包含

包含关系指用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为作为自身行为的一部分。
在UML中,包含关系是通过带箭头的虚线段 + << include >>字样来表示的,箭头由基础用例(Base)指向被包含的用例(Inclusion)。
包含关系
主要由以下两种情况需要用到包含关系:

  1. 多个用例用到同一段的行为,则可以把这段共同的行为单独抽象成一个用例,然后让其他用例来包含这一用例。
  2. 当某一个用例的功能过多、事件流过于复杂时,也可以把某一段事件流抽象成一个被包含的哟管理,以达到简化描述的目的。
    在这里插入图片描述
    添加和修改会员信息后需要预览会员信息,用以检查添加和修改操作是否正确完成。

包含关系的两个优点:

  1. 提高了用例模型的可维护性,当需要对公共需求进行修改时,只需要修改一个用例而不必修改所有与其有关的用例。
  2. 不但可以避免在多个用例中重复的描述同一段行为,还可以避免在多个用例中对同一段行为描述不一致的现象。

2. 扩展

在一定条件下,把新的行为加入到已有的用例中,获得的新用例叫做扩展用例(Extension)。原有的用例叫做基础用例(Base),从扩展用例到基础用例的关系就是扩展关系。
一个基础用例可以拥有一个或者多个扩展用例,这些扩展用例可以一起使用。需要注意的时:在扩展关系中是基础用例而不是扩展用例被当做例子使用。
在UML图中,扩展关系是通过带箭头的虚线段 + << extend >> 字样来表示的,箭头指向基础用例。
扩展关系
扩展关系与包含关系的不同点如下:

  • 在扩展关系中,基础用例提供了一个或者多个插入点,扩展用例为这些插入点提供了需要插入的行为。而在包含关系中,插入点只能有一个。
  • 在扩展关系中,基础用例的执行并不一定会涉及到扩展用例,扩展用例只有在满足一定条件下才会被执行。而在包含关系中,当基础用例执行完后,被包含用例是一定会被执行的。
  • 即使没有扩展用例,扩展关系中的基础用例本身也是完整的。而对于包含关系,基础用例在没有没有被包含用例的情况下就是不完整的存在。

在这里插入图片描述基础用例是“身份验证”,扩展用例是”修改密码“。在一般情况下,只需要执行”身份验证“用例即可。但是如果登录用户想要修改密码,这时就不能执行用例的常规动作。如果取修改”身份验证“用例,势必增加系统的复杂性,这时就可以在基础用例”身份验证“中增加插入点,这样用户向修改密码时,就执行扩展用例”修改密码“。

3. 泛化

用例的泛化是指一个父用例可以被特化成多个子用例,而父用例和子用例之间的关系就是泛化关系。
在用例的泛化关系中,子用例继承了父用例所有的结果、行为和关系,子用例是父用例的一种特殊形式。此外,子用例还可以添加、覆盖、改变继承的行为。
在UML中,用例的泛化关系是通过一个三角箭头从子用例指向父用例来表示的。
在这里插入图片描述

泛化关系的使用场景:
当系统中有两个或者多个用例存在行为、结构和目的方面存在共性时,就可以使用泛化关系。这时,可以用一个新的(通常也是抽象的)用例来描述这些共有部分,这个新的用例就是父用例。

在这里插入图片描述
银行有两种存款方式,一种时柜台存款,一种时ATM存款。在上图中,银行柜台存款和ATM存款都是存款的一种特殊方式,因此“存款”为父用例,“银行柜台存款”和“ATM存款”为子用例。

泛化关系和包含关系的区别:

  • 在用例的泛化关系中,所有的子用例都有相似的目的和结构,注意它们是整体上的相似。而用例的包含关系中,基础用例在目的上可以完全不同,但是它们都有一段相似的行为,它们的相似是部分的相似不是整体的相似。
  • 用例的泛化关系类似于面向对象中的继承,它把多个子用例中的共性抽象成一个父用例,子用例在继承父用例的基础上可以进行修改。但是子用例和子用例之间又是相互独立的,任何一个子用例的执行都不受其他子用例的影响。而用例的包含关系是把多个基础用例中的共性抽象为一个被包含用例,可以说被包含用例就是基础用例中的一部分,基础用例的执行必然引起被包含用例的执行。

用例图实例

  • 销售员用例图
    在这里插入图片描述

  • 仓库管理员用例图
    在这里插入图片描述

  • 采购员用例图
    在这里插入图片描述

  • 会计用例图
    在这里插入图片描述

  • 系统管理元用例图
    在这里插入图片描述

【软件工程与UML】第2章 用例图、用例文档、活动图 -- 系统的功能需求建模 目录01.用例图用例图的4组成(一)参与者(二)用例(三)关系表达关系的符号泛化关系(四)系统其他02.用例文档简化的用例文档注意事项03.活动图主要组件建模活动图步骤01.用例图 用例图的4组成 ①参与者(Actor)、用例(Use Case)、关系、系统 (一)参与者 参与者是系统外部的一个实体,它以某种方式参与用例的执行过程 参与者可以是人,也可以是事物,也可以是时间、气压、温度等环境因... 阅读详情

相关推荐

用例图详解

用例图主要用来描述客户的需求,包含参与者,用例,边界,关系。 用例之间用关联来连接以求把系统的整个结构和功能反映给非技术人员(通常是软件的用户)。用例是从系统外部可见的行为,从原则上来讲,用例之间都是独立、并列的,它们之间并不存在着包含从属关系。但是为了体现一些用例之间的业务关系,提高可维护性和一致性,用例之间可以抽象出包含(include)、扩展(extend)和泛(generalization)几种关系。 1 包含 基用例可以依赖包含用例执行的结果,但是双方都不能访问对方的属性。has a .

wangbuji的博客 1万+

到底什么是用例图!!!!

用例图到底是个什么图? 用例图由哪些元素构成? 用例图中的用例之间有什么关系? 如何创建一个用例图? 用例图到底是个什么图? 一个图,由参与者(系统用户)、用例(系统功能)、以及他们之间的关系构成的,用于描述系统功能的动态试图。 如果要在用例图上显示一个参与者,可以绘制一个人形符号。 如果要在用例图上显示某个用例,我们需要画一个椭圆,然后将用例的名称放在椭圆的中心或者椭圆下面的中心位置。 参与者和用例之间的关系使用带箭头或者不带箭头的线段来描述,箭头表示的是:这一关系中哪一方是对话的主动发起者,箭头.

小鹏AI 3万+

一文搞懂用例图:软件世界的“导航地图”

  用例图作为软件开发中不可或缺的工具,为我们搭建了一座从用户需求到系统实现的桥梁 。它通过清晰地展示参与者、用例以及它们之间的关系,让我们能够全面、深入地理解系统的功能需求 。从确定系统的边界,到获取精准的需求,再到指导测试和其他开发工作流,用例图贯穿于软件开发的各个阶段,发挥着不可替代的作用 。同时,理解用例之间的包含、扩展和泛化关系,能够帮助我们更细致地梳理系统功能的层次结构和变化逻辑,使系统设计更加合理、高效 。

大雨淅淅的博客 3146

用例图介绍

 用例图 用例图(Use Case Diagram)是由软件需求分析到最终实现的第一步,它描述人们如何使用一个系统。用例视图显示谁是相关的用户、用户希望系统提供什么样的服务,以及用户需要为系统提供的服务,以便使系统的用户更容易理解这些元素的用途,也便于软件开发人员最终实现这些元素。用例图在各种开发活动中被广泛的应用,但是它最常用来描述系统及子系统。当用例视图在外部用户出现以前出现时

GAME-LAB(游戏开发,微信公众号:fury-programer) 1万+

UML用例图实例详解与实战

在UML用例图中,参与者(Actor)是指与系统进行交互的实体,它可以是人、外部系统、硬件设备或其他软件系统。参与者的本质在于它与系统之间的交互行为,这些行为通常表现为对系统功能的请求或响应。参与者并不直接描述系统内部的结构或功能,而是关注于系统与外部世界的接口。通过识别参与者,我们可以更好地理解系统的服务对象及其交互方式。例如,在一个银行系统中,客户、银行柜员、ATM机、外部支付系统等都可以作为参与者。参与者在用例图中以小人图标。

weixin_42601134的博客 3334

Fritzing0.9.10下载安装和简单使用

Fritzing 作为一款电子设计自动化软件,其画图用于导入到论文和文档,清晰好看,能解决用相机拍实物照片杜邦线很乱的痛点。

李同学Lino的博客 3万+

【UML建模】用例图(Use Case Diagram)

用例图(Use Case Diagram)是UML建模中最重要并且最常用的一种图形,它有着足够良好的抽象,用几组简单的图形就能够描述出应用程序的功能需求,以及应用程序与用户或者与其他应用程序之间的交互关系。因此,用例图常常会在跨部门、跨岗位的合作中出现,作为演示和说明文档的基石,简单的说就是在一个项目中,产品、研发、测试、运维等岗位角色都能看懂并了解业务大致是如何展开的。

积木成林,聚沙成塔 1万+

iPhone用户必看:不装App也能搞定GitHub 2FA验证的3种方法(附恢复码管理技巧)

本文为iPhone用户提供了无需安装第三方App即可完成GitHub双重身份验证(2FA)的三种原生方案:利用相机扫码与iCloud钥匙串自动填充、使用iCloud钥匙串内置的TOTP验证码生成器,以及借助Safari浏览器扩展。文章详细解析了每种方法的操作步骤、适用场景,并重点强调了恢复码的安全管理与多层备份策略,帮助开发者在提升账户安全的同时,享受苹果生态的无缝便捷体验。

weixin_29324401的博客 656

UML 用例图

UML 用例图 参考 【UML】— 用例图 用例图 初学UML——用例图 需求中如何画用例图 为什么使用用例图 从业务事件、发起事件以及系统如何响应这些事件来建模系统功能的过程。 用例建模起源于面向对象建模。 概念 图形化地描述了谁将使用该系统以及用户希望与系统交互的方式。 业务事件的文本描述以及用户如何与系统交互以完成任务。 参与者 参与者是与系统...

一只小羊 6820

【20230415】Ubuntu22.04双屏显示触屏设置,解决触摸点和响应位置不一致的问题

双屏显示时,如果存在一个触摸屏,有可能会出现触摸点和响应位置不一致的问题。我的显示器配置如下:一个34寸,3440*1440;一个22英寸触摸屏,1920*1080。

Creationyang的博客 3216

基于Simulink的BCH码编解码仿真建模示例

BCH码是一类循环码,能够纠正一定数量的随机错误。灵活性:可以根据需要选择不同的码长和纠错能力。高效性:适用于短码长和中等码长的场景,广泛用于卫星通信、存储系统等。实现简单:编码和解码过程可以通过硬件或软件高效实现。在本示例中,我们将使用MATLAB/Simulink中的和模块来完成BCH码的编解码操作,并通过仿真验证其误码率(BER)性能。通过本指南,我们介绍了如何基于Simulink搭建一个BCH码的编解码模型,并进行了仿真以验证其性能。背景介绍:理解BCH码的基本原理及其在通信系统中的应用。

xiaoheshang_123的博客 191

UML——用例图(Use case diagrams)

目录 什么是用例图? 用例图帮我们做什么? 用例图的基本元素有哪些? 什么是用例图? 定义:用来描述用户的需求,从用户的角度来描述系统的功能,并给出各功能的执行者,强调谁在使用系统,系统为执行者完成哪些功能。是系统的蓝图 用例图帮我们做什么? 回答两个问题:是谁用软件、软件的功能有哪些 是9种图的关键,也是第一个需要画的图。比方说现在要建一座大厦,设计师先根据客户的要求设计出大厦,设计完成之后工程师才知道要建个什么样的东西出来。设计师的设计在UML...

一起加油吧~ 5848

【数据分享】12.5米分辨率DEM地形数据(分省)

该数据来源于NASA地球科学数据网站(https://nasadaacs.eos.nasa.gov/),是ALOS卫星获取的高精度地形数据。该数据由于精度高,包括全省范围的数据和省内每个城市范围的数据!

JData_Engineer的博客 2172

uml(unified modeling language)用例图、类图、序列图详解

uml(unified modeling language)全称为统一建模语言,在软件开发领域经常被用到,uml是对

贝伦酱 3466

即插即用系列(代码实践) | CVPR 2025 FDConv:频域动态卷积,打破密集预测任务的参数效率瓶颈

本文提取自 CVPR 2025 的最新底层算子革新论文《Frequency Dynamic Convolution for Dense Image Prediction》。近年来,动态卷积(Dynamic Convolution)通过融合多个并行卷积核极大地提升了模型性能,但研究表明:这些并行卷积核在频域上的响应高度相似,导致了极其严重的参数浪费,且缺乏对不同频率特征的自适应能力。本文复现了该网络的核心架构——FDConv(频率动态卷积)。该方案创造性地在傅里叶域(Fourier Domain)中学习固定参

分享顶会顶刊论文即插即用模块 113

深入浅出:使用Python爬取链家二手房数据

在数据驱动的时代,房地产数据作为社会经济的重要指标,一直是数据分析师、投资者和研究人员关注的焦点。链家作为国内领先的房产中介平台,其二手房数据具有较高的真实性和时效性。然而,官方API的访问限制和数据获取的门槛,让很多初学者望而却步。本文将带你从零开始,使用Python编写一个符合robots.txt规范的链家二手房爬虫,获取标题、户型、价格等信息。文章不仅会提供完整代码,还会深入讲解反爬策略、请求头伪装、数据解析、异常处理等实战技术。目录前言:为什么要写这篇博客?一、爬虫前的准备:法律与道德。

2201_76125261的博客 91

详解UML(统一建模语言)中的类图、用例图、活动图、状态图、顺序图

nifiedodelinganguage)UML是非专利的第三代建模和规约语言 是用于说明 可视化 构建和编写一个正在开发的 面向对象的 软件密集系统的制品的开放方法UML展现了一系列最佳工程实践 这些最佳实践在对大规模 复杂系统进行建模方面 特别是在软件架构层次已经被验证有效。

很多时候犯错都是在不知情的情况下发生的 1万+

华为OD机试真题2025双机位C卷 Python&JS 实现【卡牌游戏】

小明正在尝试一种新的牌游戏。游戏规则只如下:首先,小明拿到一张写有数字m的牌。 然后,他会拿到另外n张牌,上面分别写有不同的数字,牌排成一排。小明的目标是从这排牌中找到一串连续的牌,这些牌上数字的总和可以被 m整除。你的任务是判断小明是否可以完成这个目标。

MISAYAONE的博客 404

UML用例图详解

1. 概述   用例图(Use Case Diagram)描述“用户、需求、系统功能单元”之间的关系,是参与者所能观察和使用到的系统功能模型图。   用例图用于需求分析阶段   用例图包含6个基本元素:参与者(Actor)、用例(Use Case)、泛化关系(Generalization)、扩展关系(Extend)、包含关系(Include)和关联关系(Association)。 2、用例...

于大博 3091

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

[软件工程] UML 用例图详解

参考博客:参考教材:软件工程(第四版)高等教育出版社统一建模语言(Unified Modeling Language,UML) 可分类成:·功能模型:从用户的角度展示系统的功能,包括用例图。·对象模型:采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类别图、对象图。·动态模型:展现系统的内部行为。包括序列图,活动图,状态图。

qq_51533157的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

UML建模图文详解教程02——用例图

用例图(use case diagram)是表示一个系统中用例与参与者之间关系的图。它描述了系统中相关的用户和系统对不同用户提供的功能和服务。用例图是 UML 中对系统的动态方面建模的五种图之一(其他四种是活动图、状态机图、顺序图和通信图),它是对系统、子系统和类的行为进行建模的核心。

谷哥的小弟 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

UML——用例图详解

定义:根据用户提出的需求描述系统的行为及各种功能之间的关系。 个人理解:用例图是从用户角度描述系统功能,通过用例图可以知道一个系统能够做什么,它要实现什么功能。用例图用于开发人员与用户之间的交流,以便开发人员很好的理解用户需求。 用例图的基本组成元素: 【组成】:用例图=参与者+用例+关系 参与者:参与者是用例的启动者,参与者可能是人或其他外界系统。 用例:一系列可完成系统功能的

胡根得 天行健,君子以自强不息。 6941
上一篇: Oracle--PL/SQL游标(光标)详解
下一篇: Oracle--PL/SQL例外详解
吴声子夜歌
博客等级 码龄9年 2688粉丝 2271原创
评论 11
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值