【UML建模】用例图

1   参与者

参与者的概念:
指系统以外的、需要使用系统或与系统交互的外部实体
可以分为:人、外部设备、外部系统
参与者的图形符号:
3.1  在一个银行业务系统中,可能会有以下参与者
客户 :在银行业务系统中办理了账户的居民。他们通过银行业务系统进行金融交易
柜台营业人员 :负责银行业务系统具体操作事务的办事人员。他们为客户办理存款、取款等金融交易
Mail 系统 :负责银行业务系统向个人发送电子邮件的软件系统

知识点----参与者之间的关系

参与者之间的关系:

1.1泛化关系

泛化关系 :一般参与者与特殊参与者之间的关系

 

在一个大学图书管理系统中,可能的需求如下:

        读者在大学图书管理系统中办理了借书证。读者分学生和教师。读者借还书籍要通过图书管理员之手来完成。系统管理员负责大学图书管理系统的借书证维护和图书数据维护等操作。读者可以自己在终端机上直接进行借还书,也可以通过图书管理员来完成。

 

参与者之间的泛化关系的作用
在一个网上购物系统中,一定会遇到用户权限问题。普通用户只能浏览网站上陈列的商品,而注册会员除了普通用户具有的操作之外,还有权限进行在线购物

 

参与者之间的泛化关系的作用
共同点 :普通用户操作的所有功能,注册会员也能操作
不同点 :注册会员还能操作普通用户不能操作的功能
结论 :普通用户作为一般参与者,注册会员作为特殊参与者

 

参与者之间的泛化关系的作用
有效地减少了参与者与用例之间的关联关系的个数,简化了用例模型

 

 

1.2关联关系

关联关系:起通信的作用,即描述了:一个参与者完成系统的一项功能

 

2   用例

2.1   用例的概念

是对一个参与者使用系统的一项功能时所进行的交互过程的一个文字描述序列
是参与者可以感受到的系统服务或功能单元
注意:功能及功能涉及的交互过程,两者都重要
用例的图形符号
§ 在一个大学图书管理系统中,可能的需求如下:

        读者在大学图书管理系统中可以查找图书。读者分学生和教师。读者借还书籍要通过图书管理员之手来完成。为了方便工作,图书管理员也可以查找图书。系统管理员负责大学图书管理系统的借书证维护和图书数据维护等操作。

用例图:

2.2   用例之间的关系

用例的特征
  • 站在系统外部,看到的系统功能
  • 用户提出的一些可见的功能需求
  • 总是被参与者启动
  • 必须是一个完整的描述
  • 可以进行独立的功能检测
  • 是对系统行为的动态描述
  • 用例的设置代表了软件系统的功能划分
  • 用例的实例是系统的一次具体执行过程
  • 动态执行过程可以用UML的交互作用来说明
提问:试分析下述系统中,有哪些用例
3.6超市购买商品系统的部分需求陈述如下:
顾客带着所要购买的商品到达超市的一个销售点终端(终端设在门口附近),销售点终端负责接收数据、显示数据和打印购物单。
营业员通过销售点终端录入每项商品的通用产品代码,如果出现多个同类商品,营业员还要录入该商品的数量。系统确定商品的价格,并将商品代码、数量信息加入到正在运行的系统;系统显示当前商品的描述信息和价格。

 

找出上例中的参与者与用例

找参与者,主要找系统外的客观实体:
顾客,营业员,销售点终端。
找用例,主要找参与者看到的功能:
接收数据(接收顾客购买的商品的信息),
显示数据(显示顾客购买的商品的信息),
打印购物单(打印顾客购买的商品的信息),
商品信息维护(确定每件商品的代码及单价)
用例之间的关系:泛化关系包含关系扩展关系 
泛化关系 特殊用例 继承、覆盖、增加 一般用例 的行为
3.7  在一个在线股票经纪人系统中,下图给出了交易行为中部分交易类型之间的关系

泛化关系特殊用例继承、覆盖、增加一般用例的行为

3.8  在一个学校信息管理系统中,下图给出了查找人行为中部分特殊身份查找之间的关系

包含关系 基本用例 的行为必然执行 包含用例 的行为
3.9  在一个网上购物系统中,当注册会员在线购物时,网上购物系统需要对顾客的信用进行检查,检查输入的信用卡号是否有效
扩展关系 基本用例 的行为条件执行 扩展用例 的行为
3.10  在一个图书借阅系统中,当读者还书时,如果借书时间超期,则需要交纳一定的滞纳金,作为罚款

 

共同点:包含用例和扩展用例都补充了基本用例的行为

不同点:包含用例必然被执行,扩展用例条件被执行
性质:因为基本用例的行为被包含用例或扩展用例的行为延伸了,所以基本用例的行为依赖于包含用例或扩展用例的行为。所以,包含关系和扩展关系都是依赖关系的特例

在一个网上购物系统中,当注册会员浏览商品时,他可能临时决定在线购物。当他决定在线购买商品后,就必须下订单。此外,他也可以直接在线购物。

 

在一个停车场信息系统中,可能的需求如下:

1、汽车到达入口处,驾驶员停下车,在取卡机上按下取卡按钮,获得停车卡。

2、取出停车卡后,系统启动栏杆抬起。汽车通过后,栏杆放下。

3、驾驶员在缴费机上缴费后,获得出场卡。

4、汽车到达出口处,驾驶员停下车,插入出场卡。若出场卡有效,则栏杆抬起;否则不抬起,并发出警报。

 

2.3   用例之间的包含关系和扩展关系的区别

在扩展关系中,基本用例是可以独立存在的用例。

在包含关系中,基本用例一定会执行包含用例部分。

如果需要重复处理两个或多个用例时,可以考虑使用包含关系,实现一个基本用例对另一个用例的引用。

当处理正常行为的变形而且只是偶尔描述时,可以考虑只用泛化关系。

当处理正常行为的变形而且希望采用更多的控制方式时,可以在基本用例中设置扩展点,使用扩展关系。

  

在一个网上购物系统中,当注册会员浏览网站时,他可能临时决定购买商品。当他决定购买商品后,就必须将商品放进购物车,然后下订单。 

如果网上购物系统的需求是这样的:注册会员既可以在线购物,又可以浏览商品后决定在线购物。则 

相同点:它们都是基本用例行为的一部分。换句话说,最初的基本用例中的部分行为被提取出来,单独形成了一个用例。

不同点:在基本用例的每一次执行时,包含用例都一定会被执行,而扩展用例只是偶尔被执行。

关系是模型元素之间具体的语义联系。关系可以分为关联、泛化、依赖、实现等几种。

泛化关系表示的是两个类元之间的关系。

依赖关系表示的是两个元素或元素集之间的一种关系。

3   用例描述

用例描述
是一个关于参与者与系统如何交互的规范说明
没有描述 的用例就像是一本书的 目录 ,人们只知道该目录标题,但并不知道该目录的具体内容是什么
不同的问题域 ,相同名字的用例可能完成不同的操作过程

银行“取款”用例的用例描述

基本流程
1 、要求用户重新输入密码进行验证
2 、密码正确后,用户输入取款金额
3 、判断该储户的账户余额是否足额
4 、若足额,则输出等额的人民币现金。修改账户余额
5 、若不足额,则本次取款操作失败

 

4   用例建模

用例模型主要应用在需求分析时使用。

用例建模的基本步骤:

(1)找出系统外部的参与者和外部系统,确定系统的边界和范围。

(2)确定每一个参与者所期望的系统行为,即参与者对系统的基本业务需求。

(3)把这些系统行为作为基本用例。

(4)区分用例的优先次序。

(5)细化每个用例。使用泛化、包含、扩展等关系处理系统行为的公共或变更部分。

(6)编写每个用例的用例描述。

(7)绘制用例图。

(8)编写项目词汇表。

确定系统的边界:

系统边界是指系统与系统之间的界限
系统边界定义了由谁或什么(即参与者)来使用系统,系统能够为参与者提供什么特定服务
确定系统边界就是要定义好什么是系统的组成部分(边界内)和什么是系统的外部(边界外)
在用例图中,系统边界用实线方框图形符号表示
用例绘制在方框里面(即边界里面)
参与者绘制在方框外面(即边界外面)

 

5   用例建模中常见的问题分析

用例的设计原则

1、需求和用例的关系

2、需求应该有层次地组织起来

3、不要从用例直接推论出设计

用例模型的复杂度

1、用例包

2、用例的粒度

3、用例图

用例模型的检查

1、功能需求的完备性

2、模型是否易于理解

3、是否存在不一致性

4、避免二义性语义

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

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

相关文章

React【Day2】

React表单控制 受控绑定 概念:使用React组件的状态(useState)控制表单的状态 双向绑定 MVVM 报错记录: 错误代码: import { useState } from "react";const App () > {const [value, setValue] useS…

TLV61048非同步升压BOOST转换器输入电压2.6-5.5V输出电流4A输出电压最高15V

推荐原因: 输入电压较低,输出电流可达3.5A SOT23-6封装 批量价格约0.70元 TLV61048引脚 TLV61048引脚功能 7 详细说明 7.1 概述 TLV61048是一款非同步升压转换器,支持高达 15 V 的输出电压和输入范围从 2.61 V 到 5.5 V。该TLV61048集成了…

LlamaIndex 加 Ollama 实现 Agent

AI Agent 是 AIGC 落地实现的场景之一,与 RAG 不同,RAG 是对数据的扩充,是模型可以学习到新数据或者本地私有数据。AI Agent 是自己推理,自己做,例如你对 AI Agent 说我要知道今天上海的天气怎么样,由于 AI…

serverLess

第一步 安装依赖 npm install serverless-devs/s g 第二步 配置秘钥: 第三步 执行终端 执行命令 s config add 选择 alibaba cloud (alibaba) 把对应的ID secret填写,第三个别名可以随便写: serverLess 查看是…

Kettle的安装及简单使用

Kettle的安装及简单使用 文章目录 Kettle的安装及简单使用一、kettle概述二、kettle安装部署和使用Windows下安装( 1 )概述 案例 1 :MySQL to MySQL主界面:**在kettle中新建转换--->输入--->表输入-->表输入双击**建立连…

js进行数据移除性能比较(splice,map)

当使用 splice() 方法处理大量数据时,确实会遇到性能问题,因为它涉及到移动数组中的元素,导致操作的时间复杂度为 O(n)。对于大量数据,频繁的插入和删除可能会导致性能下降。 1、设置数组数据为10000,使用splice移除数…

软件项目经理需要具备这 11 个能力

当前软件开发技术更新换代越来越快,各种项目实施管理思想也日新月异,作为一个软件项目经理,需要具备这 11 种能力: 1. 项目管理能力 了解项目管理的基本原则和方法,包括制定项目计划、资源分配、风险管理、问题解决和…

Python练习03

题目 解题思路 Demo58 通过字符串切片来进行反转操作 def _reverse():"""这是一个反转整数的函数"""num input("请输入想要反转的整数")print(num[::-1]) 运行结果 Demo61 首先制作一个判断边长的函数,通过三角形两边…

4.23学习总结

一.NIO(一) (一).简介: NIO 是 Java SE 1.4 引入的一组新的 I/O 相关的 API,它提供了非阻塞式 I/O、选择器、通道、缓冲区等新的概念和机制。相比与传统的 I/O 多出的 N 不是单纯的 New,更多的是代表了 Non-blocking 非阻塞,NIO具有更高的并…

【Linux高性能服务器编程】两种高性能并发模式剖析——半同步/半异步模式

hello !大家好呀! 欢迎大家来到我的Linux高性能服务器编程系列之两种高性能并发模式介绍,在这篇文章中,你将会学习到高效的创建自己的高性能服务器,并且我会给出源码进行剖析,以及手绘UML图来帮助大家来理解…

《HCIP-openEuler实验指导手册》1.4 Apache MPM工作模式调整

MPM介绍 二、配置步骤 查看MPM当前工作模式 方法一: httpd -M | grep mpm方法二: 浏览器访问:http://IP:端口/server-status 方法三: cat /etc/httpd/conf.modules.d/00-mpm.conf查看 LoadModule mpm_event_module modules/mo…

Iterator 迭代器

意图 提供一个方法顺序访问一个聚合对象中的各个元素,且不需要暴漏该对象的内部表示。 结构 Iterator(迭代器)定义访问和遍历元素的接口。ConcreteIterator(具体迭代器)实现迭代器接口;对该聚合遍历是跟踪…

DSSM 模型技术介绍

转自:git 本文属于新闻推荐实战-召回阶段-DSSM召回模型。区别于策略召回,基于向量召回也是目前工业界常用的一种召回方法。这里我们将介绍一个比较经典的召回模型DSSM,希望读者可以快速掌握模型原理以及细节,同时可以了解具体的实…

Nacos原理简单介绍

注册中心原理 官网:Nacos 注册中心的设计原理 | Nacos nacos注册中心采用了 :pull (客户端的轮询)和push (服务端主动push)策略 客户端启动时会将当前服务的信息包含ip、端口号、服务名、集群名等信息封装…

电脑问题快速判断

电脑开机没有任何反应 检查电源 检查电源是否有问题或损坏,可以短接方法检测 板电源卡口对自己接第四或第五根线,若风扇匀速转动,电源无问题,若不转动或转一下停一下,电源有问题 检查内部连线 确保主板上的线插的…

2024新算法角蜥优化算法(HLOA)和经典灰狼优化器(GWO)进行无人机三维路径规划设计实验

简介: 2024新算法角蜥优化算法(HLOA)和经典灰狼优化器(GWO)进行无人机三维路径规划设计实验。 无人机三维路径规划的重要意义在于确保飞行安全、优化飞行路线以节省时间和能源消耗,并使无人机能够适应复杂…

手把手教你搭建鲜花团购小程序

随着互联网的快速发展,线上小程序商城已经成为了一种流行的电商模式。对于花店来说,开发线上小程序商城不仅可以扩大销售渠道,提高销售效率,还可以增加客户粘性,提升品牌形象。下面就以花店为例,教你怎么开…

OceanBase V4.2特性解析:用 Show Trace 快速定位数据库性能瓶颈

在数据库日常运维中,当遇到慢SQL问题时,若无法迅速查明原因,将极大地影响用户的使用感受,甚至可能引发业务或服务的中断。相较于单机数据库,分布式数据库系统因其涉及多个节点和多组件的协同工作,集群规模可…

DSP开发实战教程--EPWM模块的影子寄存器详细讲解原理和代码实例

EPWM模块影子寄存器的原理 在TI(Texas Instruments)的DSP28335中,EPWM(Enhanced Pulse Width Modulator)模块提供了高精度、高灵活性的PWM信号生成功能。为了能在不影响当前PWM波形输出的情况下预装载新的PWM参数(如周期、占空比等),EPWM模块引入了影子寄存器的概念。 …

STM32 ADC转换器

一、ADC简介 ADC(Analog-Digital Converter,模拟-数字转换器),可以将引脚上连续变化的模拟量转换为内存中存储的数字量,建立模拟电路到数字电路的桥梁 模拟量:时间和幅值均连续的信号,例如&…