实验四 面向对象分析与设计——UML类图与时序图

news2024/10/2 12:22:24

一、实验目的:

掌握面向对象分析中静态结构模型与动态行为模型的基本思想。学会识别系统中的类、类的属性和操作以及类之间的关系,掌握UML类图的绘制方法。了解时序图的作用和组成元素,掌握UML时序图的绘制方法。

二、实验仪器及实验环境:

计算机,Windows 7,MS Office Visio

三、实验原理:

    面向对象分析方法中的静态结构模型与动态行为模型。

四、实验内容及结果:

1、根据实验三中某图书管理系统的问题域描述以及所创建的用例模型,从静态结构模型的角度来分析识别系统中可能存在的实体类、类的属性,以及类之间的关系,并绘制类图。

(1)在图书管理系统中,列举出主要的实体类,明确各个类的作用(职责),并列举出类中的一些主要属性:

实体类名称

属性

Reader读者

r_id:借阅账号

r_name:读者姓名

r_type_id:(通过id来判断读者属于哪个类别)

读者类别编号

r_quantity:读者借阅的数量

r_tel:读者联系方式

Book图书

b_id:图书编号

b_name:图书的名称

bt_id:图书的类别

b_publisher:图书的出版社

b_author:图书的作者

b_isbn:图书的ISBN号

b_price:图书单价

b_status:图书的借阅状态(在馆或借出)

ReaderType读者类别

rt_id:读者类别编号

rt_name:读者类别名称

rt_maxquantity:该类读者允许借阅的最大数量

rt_maxdays:该类读者允许的最多借阅天数

rt_fineperday:该类读者图书超期罚款每天缴纳金额

BookType图书类别

bt_id:图书类别编号

bt_name:图书类别名称

Record借阅记录

record_id:借阅记录编号

r_id:借阅账号

b_id:图书编号

outDate:图书借出日期

(2)识别以上实体类之间的关系,绘制类图:

 

2、绘制时序图:

储户使用银行ATM系统进行取款操作:从储户插入银行卡开始,按照提示输入密码,然后选择“取款”,输入取款数额,最后提出现金,退卡。ATM取款看起来是很简单的事情,但是整个过程中各个对象之间要涉及到一系列的消息通信。这里以储户使用ATM系统“取款”为例,以下给出了“取款”的场景描述:

  • 1储户将银行卡插入ATM系统的读卡机insertCard();
  • 2读卡机将信息传给客户管理acceptCard();
  • 3客户管理提出查询密码checkPass();
  • 4显示屏显示给储户需要输入密码inputPassRequest();
  • 5储户输入设备输入密码inputPass();
  • 6输入设备将输入的密码传递给客户管理transPass();
  • 7客户管理请求事务管理确认密码的合法性requestPassLegal();
  • 8事务管理确认密码的合法性(消息返回)返给客户管理PassLegal();
  • 9客户管理通过显示屏询问服务类别queryKind();
  • 10显示屏要求储户输入服务类别请求showServiceRequest();
  • 11储户输入(输入设备)取款请求inputTakeRequest();
  • 12输入设备客户管理发出取款请求takeRequest();
  • 13客户管理提出(显示屏)取款金额queryMoney();
  • 14显示屏储户发出取款数额请求showMoneyRequest();
  • 15储户输入(输入设备)取款数额inputMoney();
  • 16输入设备将储户输入的数额传递给客户管理transMoney();
  • 17客户管理确认取款数额返回给显示屏queryOK();
  • 18显示屏呈现给储户确认信息showOKRequest();
  • 19储户输入确认信息给输入设备inputOK();
  • 20输入设备将确认信息传递给客户管理OKInformation();
  • 21客户管理请求事务管理确认数额的合法性requestMoneyLegal();
  • 22事务管理确认数额的合法性返回给客户管理moneyLegal();
  • 23事务管理点钞机发出出钞请求requestTake();
  • 24点钞机出钞票outMoney();(点钞机自己向自己发出消息请求,消息调用)
  • 25储户取出钞票takeMoney();(点钞机储户发出)
  • 退卡outCard();
  • 26储户向输入设备:输入一个退卡请求inputoutcardrequest()
  • 27输入设备发送给客户管理outcardrequest()
  • 28客户管理向读卡机outcardrequest()
  • 29读卡机出卡(读卡自己向自己发出消息请求,消息调用)outcard()
  • 30读卡机向储户(读卡机提醒储户取卡)takecard()

在以上的“取款”场景中涉及到以下对象:“储户”、“读卡机”、“显示屏”、“输入设备”、“客户管理”、“点钞机”、“事务管理”。它们之间通过消息传递,使功能正常运行,绘制其时序图:

 

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

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

相关文章

ATA-2000系列高压放大器在压电陶瓷中的典型应用

ATA-2000系列高压放大器在压电陶瓷中的典型应用 压电陶瓷介绍: 压电陶瓷是一种能够将机械能和电能互相转换的陶瓷材料。压电陶瓷除具有压电性外,还具有介电性、弹性等,已被广泛应用于医学成像、声传感器、声换能器、超声马达等。压电陶瓷利用其材料在机…

改进YOLOv7 | 头部解耦 | 将YOLOX解耦头添加到YOLOv7 | 涨点杀器

改进YOLOv7 | 头部解耦 | 将YOLOX解耦头添加到YOLOv7 论文地址:https://arxiv.org/abs/2107.08430 文章目录 改进YOLOv7 | 头部解耦 | 将YOLOX解耦头添加到YOLOv71. 解耦头原理2. 解耦头对收敛速度的影响3. 解耦头对精度的影响4. 代码改进方式第一步第二步第三步第四步第五步参…

字节跳动测试岗四面总结....

字节一面 1、 简单做一下自我介绍 2、 简要介绍一下项目/你负责的模块/选一个模块说一下你设计的用例 3 、get请求和post请求的区别 4、 如何判断前后端bug/3xx是什么意思 5、 说一下XXX项目中你做的接口测试/做了多少次 6、 http和https的区别 7、 考了几个ADB命令/查看…

NebulaGraph和HugeGraph调研

1、社区资料丰富程度 各平台搜索词条数汇总 图数据库百度搜索必应搜索谷歌搜索CSDN知乎掘金简书语雀githubgiteestackoverflowNebulaGraph261000072600090600128810768131324188202HugeGraph45720001156500530009630170215132811 经过对比,NebulaGraph 在谷歌搜索…

大数据期末复习资料2023 Beta版

大数据单元1在线测试:https://ks.wjx.top/vm/tv3XfFg.aspx# 大数据单元2在线测试:https://ks.wjx.top/vm/QfXBgWP.aspx# 大数据单元3在线测试-1:https://ks.wjx.top/vm/PeLX5WR.aspx# 大数据单元3在线测试-2:https://ks.wjx.top/v…

重磅来袭,ChatGPT官方的掌上神器目前仅支持IOS

今天凌晨,OpenAI 推出了 ChatGPT 的 iOS app,在这个开放的世界里,智能化的 AI 功能早已经突破了人类的想象力。而 ChatGPT 确实不会让我们失望,它的真「iPhone 时刻」来了!从现在起,我们可以在 iPhone 上使…

3面美团测试岗,HR现场直接发20k的offer,我是横着走出来的...

前情提要 这是一个发生在我身上的真实事情: 我工作不到2年,周末在朋友圈发了个喜报,准备入职美团。之后,我的朋友就带着祝福跟我聊了许久,聊天的内容就是具体了解一下我面试的过程,心路历程和未来的打算…

解决方案|电源适配器自动测试系统ATECLOUD-Power

随着电子产品的不断普及,电源适配器的应用越来越广泛。然而,在生产过程中,适配器电源的质量是至关重要的。为了确保电子产品的质量,适配器电源需要经过严格的测试和验证。传统的适配器电源测试方法需要大量的人力和时间&#xff0…

如何让数据安全管理工作化繁为简?uDSP 十问十答

数据安全管理工作与国家数据安全、企业资产保护以及个人信息保护工作息息相关。复杂、多元、流通的数据也给数据安全带来了更多的威胁和挑战,如数据资产管理、分类分级问题,数据安全集中管控问题,数据共享与流通问题等。原点安全一体化数据安…

科技云报道:垂直大模型竞争,能突破数据“卡点”吗?

科技云报道原创。 AI大模型火遍全球,中国产业也激发了对人工智能应用的新热情。 随着各大厂商参与竞逐,市场正在分化为通用与垂直两大路径,两者在参数级别、应用场景、商业模式等方面差异已逐步显现。 企业涌入垂直大模型赛道 通用AI大模型…

ADS - lesson 1. Patch antenna

Patch antenna 1. 开启 layout command line editor2. layout command line editor应用3. 画馈线4. 插入端口5. EM 冲冲冲6. 结果 1. 开启 layout command line editor ADS主界面 - Tools - App Manager… - 勾选 “layout command line editor” 然后重启软件 2. layout co…

使用增强版 singleflight 合并事件推送,效果炸裂!

hello,大家好啊,我是小楼。 最近在工作中对 Go 的 singleflight 包做了下增强,解决了一个性能问题,这里记录下,希望对你也有所帮助。 singleflight 是什么 singleflight 直接翻译为”单(次)飞…

(4)STM32的SPI协议及LED点亮

目录 【1】SPI协议 SPI协议 2.SPI时序 【2】LCD液晶显示屏 显示屏 【3】点亮LCD显示屏 颜色填充 ​编辑 图片显示及英文显示 汉字显示 【1】SPI协议 SPI协议 SPI接口是摩托罗拉Motorola 首先提出的全双工三线/四线同步串行外围接口,采用主从模式(Master…

产业安全专家谈|如何为直播电商企业构建全面的风控防护?

微赞是一家专注微信生态的企业级直播营销服务提供商,其核心产品“微赞直播”集引流获客、交易变现、数据分析为综合一体,能够帮助客户开展在线内容营销。为提供客户更好的直播服务,微赞与腾讯安全展开合作,凭借微赞在私域营销领域…

MYSQL 一行数据拆分成多行数据

-- WH 拆分成多行 数据 20230519 SELECT * FROM ( SELECT SKU,Primary_Warehouse, SUBSTRING_INDEX(SUBSTRING_INDEX(WH, ,, n.digit1), ,, -1) as WH FROM TMP_WH_SKU INNER JOIN ( SELECT 0 digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELEC…

机器学习之KNN、Python实现

文章目录 一、前言二、KNN(1)简介(2)思想: "近朱者赤近墨者黑"(3)算法实现流程(4)k值得选定1. k值得作用2. 交叉验证选取 k值 三、KNN基于sklearn实现(1.&…

苹果XR头显简史:现实困境与未来预期

近几个月来,有关苹果MR头显的消息层出不穷,机构分析师大多认为6月份的WWDC23将会亮相。作为全新品类,苹果AR/VR备受期待的同时也有一些市场顾虑,例如因AR/VR产品成熟度问题,现阶段推出MR头显也饱受争议,甚至…

单例模式与多线程

文章目录 一、 简介二、详细介绍1. 立即加载/饿汉模式2. 延迟加载/懒汉模式3. 使用静态内置类实现单例模式4. 序列化和反序列化的单例模式5. 使用static代码块实现单例模式6. 使用enum枚举数据类型实现单例模式 一、 简介 在标准的23个设计模式中,单例模式在应用中…

传染病学模型 | SIR 、SEIR传染病学模型

文章目录 SIR传染病学模型SEIR传染病学模型参考资料SIR传染病学模型 SIR模型是一种流行病学模型,用于描述传染病在人群中的传播过程。SIR模型将人群分为三个类别:易感者(Susceptible)、感染者(Infectious)和康复者(Recovered)。三个类别之间的转移可以用以下三个微分方…

二、IOC容器(1)

一、IOC操作Bean管理 1.什么是Bean管理? Spring创建对象Spring注入属性Bean管理是2个操作 2.Bean管理操作有两种方式 基于xml配置文件方式实现基于注解方式实现 二、IOC操作Bean管理(基于xml方式) 1.基于xml方式创建对象 使用bean标签&…