【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.mfbz.cn/a/568320.html

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

相关文章

详细分析MySQL中的distinct函数(附Demo)

目录 前言1. 基本知识2. 基础Demo3. 进阶Demo 前言 该函数主要用于去重,对于细节知识,此文详细补充说明 1. 基本知识 DISTINCT 是一种用于查询结果中去除重复行的关键字 在查询数据库时,可能会得到重复的结果行,但有时只需要这…

奇妙的探索——偶然发现的bug

今天想在腾讯招聘官网找几个前端的岗位投一下,最近自己也在找工作,结果简历还没有投出去,就发现了腾旭招聘官网的3个前端bug。 1.有时候鼠标hover还没有滑倒下拉选框的菜单上,就消失了,消失的太快了,根本点…

揭秘App广告变现,如何轻松赚取额外收入?

揭秘App广告变现,如何轻松赚取额外收入? 在移动互联网高速发展的今天,APP广告变现已经成为了众多开发者和公司的主要盈利方式。但是,如何让一个APP实现高效的广告变现呢?这是一门大学问,需要我们用心去揣摩…

聚观早报 | TCL召开电视新品发布会;OceanBase 4.3发布

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 4月22日消息 TCL召开电视新品发布会 OceanBase 4.3发布 科大讯飞推出耳背式助听器 F1联想中国大奖赛开赛 蔚来展…

个人博客建设必备:精选域名和主机的终极攻略

本文目录 🌏引言🌏域名的选择🌕域名的重要性品牌识别营销和宣传可访问性和易记性信任和权威感搜索引擎优化(SEO)未来的灵活性和扩展性保护品牌 🌕如何选择域名🌕工具与资源分享国内的主流域名注…

C++ 性能分析的实战指南(gperftools工具)[建议收藏]

文章目录 使用gperftools进行 C 性能分析的实战指南一、编译安装 gperftools1. 下载源代码:2. 编译和安装: 二、编写测试程序三、使用 gperftools 代码示例四、查看分析结果五、一份实际代码实例及实操1.代码实例2.操作命令3.结果分析根据上述数据&#…

我有一种不完美的完美主义,必须要有缺点,没有缺点就是不完美的

《程客有话说》是我们最新推出的一个访谈栏目,邀请了一些国内外有趣的程序员来分享他们的经验、观点与成长故事,我们尝试建立一个程序员交流与学习的平台,也欢迎大家推荐朋友或自己来参加我们的节目,一起加油。 本期我们邀请的程…

App Inventor 2 如何预览PDF文档?

预览PDF文档的方式 你可以使用Activity启动器查看已存储在你的设备上的 pdf 文档,也可以使用Web客户端通过网址URL打开 pdf 文档。 App Inventor 2 可以使用 .pdf 扩展名从程序包资产中查看 pdf 文件,不再需要外部 pdf 查看器! 代码如下&a…

二进制,八进制,十六进制 开头的标识符号

1、引言 每个进制开头的标识符号容易忘,写篇小小博客,拯救一下俺的小脑袋瓜子。 2、进制开头标识符号

Ts类型体操详讲 之 extends infer (下)

目录 1、函数 (1)提取参数类型 (2)提取返回值类型 2、构造器 (1)提取构造器返回值 (2)提取构造器参数类型 3、索引类型 本章我们继续上节的内容继续,展示我们对ex…

干货教程【AI篇】| 文字生成视频工具图文详细使用教程及整合包下载

需要这个工具整合包的小伙伴可以关注一下文章底部公众号,回复关键词【wzsp】即可获取,双击即可使用无需本地部署。 使用教程 首先我们从链接下载到这个zip压缩文件: 然后我们解压之后进入文件夹,出现下面的界面: 我…

自然语言处理: 第二十八章大模型基底之llama3

项目地址: meta-llama/llama3: The official Meta Llama 3 GitHub site 前言 LLaMa系列一直是人们关注的焦点,Meta在4月18日发布了其最新大型语言模型 LLaMA 3。该模型将被集成到其虚拟助手Meta AI中。Meta自称8B和70B的LLaMA 3是当今 8B 和 70B 参数规模的最佳模…

OceanBase 开发者大会 - 见闻与洞察

文章目录 前言主论坛见闻技术专场见闻产品技术专场技术生态专场 同行论道启发互动展区写在最后 前言 4 月 20 日,我有幸受邀参加了第二届 OceanBase 开发者大会。 50 余位业界知名数据库大咖和数据库爱好者,与来自全国近 600 名开发者相聚。共同探讨一体…

【ks爬虫软件】把快手评论API接口封装成GUI采集工具

用Python开发爬虫采集软件,可自动抓取快手评论数据,且包含二级评论。 快手的评论接口URL: # 请求地址 url https://www.kuaishou.com/graphql开发者模式分析过程: 进而封装成GUI界面软件,如下: 软件效…

排序算法:顺序查找

简介 顺序查找(也称为线性查找)是一种简单直观的搜索算法。按照顺序逐个比较列表或数组中的元素,直到找到目标元素或搜索完整个列表。 应用场景 数据集比较小,无需使用复杂的算法。数据集没有排序,不能使用二分查找…

重磅发布 | 《网络安全专用产品指南》(第一版)

2017年6月1日,《中华人民共和国网络安全法》正式实施,明确规定“网络关键设备和网络安全专用产品应当按照相关国家标准的强制性要求,由具备资格的机构安全认证合格或者安全检测符合要求后,方可销售或者提供。国家网信部门会同国务…

小程序AI智能名片S2B2C商城系统:解锁内容深耕新境界,助力品牌企业高效定制内容策略

在数字化时代,内容营销已成为品牌企业获取市场份额、增强用户黏性的关键武器。然而,面对海量的互联网信息和复杂多样的社交媒体平台,如何有效地深耕内容,成为众多品牌企业面临的难题。 传统的内容分类与识别方式,往往依…

【SpringCloud】Consul-服务注册中心及配置中心快速入门

【SpringCloud】Consul-服务注册中心及配置中心快速入门 文章目录 【SpringCloud】Consul-服务注册中心及配置中心快速入门1. 下载安装及启动2. 服务注册2.1 引入依赖2.2 yml配置2.3 启动类配置2.4 测试 3. 服务配置3.1 引入依赖3.2 yml配置3.3 创建配置文件3.4 动态刷新配置3.…

(超级详细)JAVA之Stream流分析-------持续更新喔!!!

学习目标: 掌握 Java Stream流的相关api 掌握 Java Stream流的基本实现 掌握 java Stream流的使用场景 代码已经整理上传到了gitee中,有需要的小伙伴可以取查看一下源码点个小心心喔 大家也可以帮我提交一点案例喔!!!&…

水平越权,垂直越权

水平越权和垂直越权 水平越权 首先自己创建一个账号 然后在自己的修改密码,抓包,修改用户名等 但一般都会固定,它会固定当前用户名 垂直越权 不用登录就可以删除 当我们复制管理员的删除地址,然后访问它 它会跳出登录地址&#…
最新文章