UML 建模实验

文章目录

  • 实验一 用例图
    • 一、安装并熟悉软件EnterpriseArchitect16
    • 二、用例图建模
  • 实验二 类图、包图、对象图
    • 类图
      • 第一题
      • 第二题
    • 包图
    • 对象图
      • 第一题
      • 第二题
  • 实验三 顺序图、通信图
    • 顺序图
      • 银行系统
      • 学生指纹考勤系统
      • 饮料自动销售系统
        • “买到饮料”
        • “饮料已售完”
        • “无法找零”
        • 完整版
    • 通信图
  • 实验四 状态机图、活动图
    • 状态机图
    • 活动图


实验一 用例图

一、安装并熟悉软件EnterpriseArchitect16

安装软件可参考本文:《Enterprise Architect 16 下载、安装与无限30天操作》。

二、用例图建模

1.某个学生成绩管理系统的部分参与者和用例总结如下。

教务管理人员:

  1. 登录系统。
  2. 教师、学生名单管理
  3. 学期教学计划管理
  4. 成绩管理
  5. 课程分配,每次课程分配时都必须打印任课通知书

学生:

  1. 登录系统
  2. 选课。

教师:

  1. 登录系统
  2. 成绩管理,并且可以选择是否生成成绩单

请根据以上信息画出该系统的用例图。

在这里插入图片描述

2.某银行储蓄系统需求说明如下:

  1. 开户。客户可填写开立账户申请表,然后交由工作人员验证并输入系统。系统会建立账户记录,并会提示客户设置密码(若客户没做设置,则会有一个默认密码) 。如果开户成功,系统会打印一本存折给客户。
  2. 密码设置。在开户时客户即可设置密码。此后,客户在经过身份验证后,还可修改密码。
  3. 存款。客户可填写存款单,然后交由工作人员验证并输入系统。系统将建立存款记录,并在存折上打印该笔存款记录。
  4. 取款,客户可按存款记录深笔取款,由客户填写取款单,然后交由工作人员验证并输入系统。系统首先会验证客户身份,根据客户的账户,密码,对客户身份进行验证,如果客户身份验证通过,则系统将根据存款记录累计利息,然后注销该笔存款,并在存折上打印该笔存款的注销与利息累计。

请根据以上信息绘制出系统的用例图.

在这里插入图片描述

实验二 类图、包图、对象图

类图

第一题

图书管理系统功能性需求说明如下:
1.图书管理系统能够为一定数量的借阅者提供服务。每个借阅者能够拥有唯一标识其存在的编号。图书馆向每一个借阅者发放图书证,其中包含每一个借阅者的编号和个人信息。提供的服务包括:提供查询图书信息、查询个人信息服务和预定图书服务等。

2.当借阅者需要借说图书、归还书籍时需要通过图书管理员进行,即借阅者不直接与系统交互,而是通过图书管理员充当借阅者的代理和系统交互。

3.系统管理员主要负责系统的管理维护工作,包括对图书、书目、借阅者的添加、删除和修改。并且能够查询借阅者、图书和图书管理员的信息。

4.可以通过图书的名称或图书的ISBN/ISSN号对图书进行查找。
确定该系统中的类,找出类之间的关系并画出类图。
在这里插入图片描述

第二题

根据下面的用例图设计相关类图。
在这里插入图片描述

在这里插入图片描述

包图

在某系统中存在三个逻辑部分,分别是Business包、DataAccess包和Common包,其中Business包需要导入DataAccess包和Common包,DataAccess包需要导入Common包。在类图中试着创建这些包,并绘制其关系。
在这里插入图片描述

对象图

第一题

对于Vehicle (车) 类和Wheel (轮子) 类,存在一个 对多的关联关系。试创建一个Vehicle类的一轮车对象,与一个轮子对象存在链,有一个前轮和两个后轮。用对象图表示一轮车对象与轮了对象之间的关系。
在这里插入图片描述

第二题

在某出版系统中,存在出版社、图书、作者三个实体类。试对一图书对象创建对象图并在图中表示出其与出版社对象及作者对象之间的关系。
在这里插入图片描述

实验三 顺序图、通信图

顺序图

银行系统

某银行系统的取款用例执行顺序如下:工作人员输人取款单,输人后,银行系统请求银行数据库匹配用户,进行身份验证,验证通过后,数据库注销相应存款,返回注销完成信息,银行系统在存折上打印取款记录。
请根据以上信息绘制顺序图。
在这里插入图片描述

学生指纹考勤系统

在某一学生指纹考勤系统中,有一个用例名为“上课登记”。此用例允许学生在上课前使用系统识别自己的指纹信息进而识别自己的身份,同时系统可以将登录信息存储在数据库中。
“上课登记”用例的主要事件流如下:
● 学生从系统菜单中选择“上课登记”;
● 系统显示指纹识别界面;
● 学生将手指放置于界面上;
● 系统捕获并识别学生的指纹,向学生返回识别的身份信息;
● 学生选择“确认”按钮;
● 系统生成一个关于该登记学生及当前日期、时间的新记录,并将该记录保存到数据库中。
请根据以上描述绘制“上课登记”用例的顺序图。

在这里插入图片描述

饮料自动销售系统

在饮料自动销售系统中,顾客选择想要的饮料。系统提示需要投入的金额,顾客从机器的前端钱币口投入钱币,钱币到达钱币记录仪,记录仪更新自己的选择。正常时记录仪通知分配器分发饮料到机器前端,但可能饮料已售完,也可能用完了找给顾客的零钱而无法销售饮料。先写出“买到饮料”的场景、“饮料已售完”的场景以及“机器没有合适的零钱”的场景,然后根据场景,用UML分别表示出“买到饮料”“饮料已售完”以及“无法找零”的顺序图。

“买到饮料”

在这里插入图片描述

“饮料已售完”

在这里插入图片描述

“无法找零”

在这里插入图片描述

完整版

在这里插入图片描述

通信图

(1)某银行系统存款处理过程如下:
① 系统将存款单上的存款金额分别记录在存折和账目文件中。
②将现金存人现金库。
③ 最后将打印后的存折还给储户。
请分析此交互过程所涉及的系统对象,并结合存款处理流程绘制通信图。
在这里插入图片描述

(2)对于某在线购物系统,主要有以下三个交互过程。
① 登录:用户申请登录系统,系统验证用户身份的有效性。
② 购物:用户浏览系统的搜索页面,搜索到目标商品,并将之添加到购物车。
③ 结算:用户结算购物车内的所有商品,更新库存并创建订单。
绘制通信图来表示这三个交互过程。
在这里插入图片描述

(3)在饮料自动销售系统中,顾客选择想要的饮料。系统提示需要投入的金额,顾客从机器的前端钱币口投入钱币,钱币到达钱币记录仪,记录仪更新自己的选择。记录仪通知分配器分发饮料到机器前端。根据场景,用UML分别表示出“买到饮料”这一操作的通信图。

在这里插入图片描述

实验四 状态机图、活动图

状态机图

(1)医院拟引入一款患者监护系统。基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况,以形成患者日志。当某个病人的生理信号超出医生规定的安全范围时,向值班护士发出警告信息。此外,护士在需要时还可以要求系统打印出某个指定病人的病情报告。
请根据以上描述,绘制患者监护系统的状态机图。
在这里插入图片描述

(2)当手机开机时,它处于空闲状态,当用户使用电话呼叫某人时,手机进入拨号状态。如果呼叫成功,即电话接通,手机就处于通话状态;如果呼叫不成功,例如对方线路有问题或关机,则拒绝接听。这时手机停止呼叫,重新进入空闲状态,手机在空闲状态下被呼叫,手机进入响铃状态(ringing);如果用户接听电话(pick),手机处于通话状态;如果用户未做出任何反应,可能他没有听见铃声,手机一直处于响铃状态;如果用户拒绝来电,手机回到空
闲状态。请按以上描述绘制出使用手机的状态机图。
在这里插入图片描述

(3)简单的数字手表表面上有一个显示屏和两个设置按钮A和B,有两种操作模式:
显示时间和设定时间。在显示时间模式下,手表会显示小时数和分钟数,小时数和分钟数由闪烁的冒号分隔。设定时间模式有两种子模式:设定小时和设定分钟。按钮A选择模式,每次按下此按钮时,模式会连续前进:设定小时、设定分钟等。在子模式内,每次只要按下按钮B,就会拨快小时或分钟。绘制一个数字手表的状态机图。
在这里插入图片描述

活动图

(1)某学生选课系统的查询课程用例如下:学生首先进入选课系统,然后输入要查询的课程名,系统验证输入的课程名是否存在,若存在,则跳转到对应的显示课程信息的页面;若不存在,则给出提示信息,返回选课页面。
请根据以上描述绘制活动图。
在这里插入图片描述

(2)在机票预订系统中,使用系统的用户必须先注册一个自己的账号,其过程为输人注册信息、验证信息完整、提交信息、系统进行验证(是否重名,等等),如果验证均通过,则注册成功,否则失败。
请根据以上描述,对用户注册用例画出活动图。
在这里插入图片描述

(3)在某在线购物系统中,用户首先搜索商品,进入商品详情页,可以将商品加入购物车。用户可以多次重复这一步骤直至购物结束。购物结束后进入购物车页面,用户付款后,生成购物订单。对于订单中的每个商品,购物系统应当通知对应的商家进行发货。
请根据以上描述绘制用户购物的活动图。
在这里插入图片描述

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

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

相关文章

Linux环境下 搭建ELk项目 -单机版练习

前言 ELK 项目是一个由三个开源工具组成的日志处理和分析解决方案,ELK 是 Elasticsearch、Logstash 和 Kibana 的首字母缩写。这个项目的目标是帮助用户采集、存储、搜索和可视化大量的日志和事件数据,尤其是在分布式系统中。下面是每个组件的概述&…

探索 Vue.js 组件开发:从基础到进阶的完整指南

引言 在现代前端开发中,Vue.js 凭借其易用性和强大的功能,成为了开发者钟爱的框架之一。其核心理念——组件化开发,不仅让代码更加模块化、可维护,还大大提高了开发效率。本文将从基础入手,详细探讨 Vue.js 组件开发的…

智能工厂的设计软件 三种处理单元(NPU/GPU/CPU)及其在深度学习框架中的作用 之3(百度文库答问 之1)

Q&A(百度文库) Q1、今天聊聊“智能工厂的设计软件”中的三种处理单元(NPU/GPU/CPU)。一般来说提起这三者就不得不说“深度学习”。那我们就从这里开始。 请先给出一个程序例子来说明NPU 如何协作CPU和GPU来完成深度学习任务 …

jdk 离线安装脚本

jdk 离线安装脚本 说明脚本使用完整脚本脚本内容说明1、是否卸载原有jdk,检查安装包是否正确2、先卸载、再安装并检验安装成果 说明 经常装服务器环境,根据以前的安装经验写了个安装脚本。本人不是专业运维,也是边百度边写的,发现…

HTTP 常见的请求头有哪些? 作用?常见的使用场景都有哪些?

在 HTTP 协议中,**请求头(Request Headers)**是客户端向服务器发送请求时附带的元数据,主要用于传递请求的相关信息,比如客户端信息、请求的格式要求、认证信息等。理解这些请求头的作用和使用场景对于开发现代 Web 应用至关重要。以下是一些常见的 HTTP 请求头及其作用和…

day14-16系统服务管理和ntp和防火墙

一、自有服务概述 服务是一些特定的进程,自有服务就是系统开机后就自动运行的一些进程,一旦客户发出请求,这些进程就自动为他们提供服务,windows系统中,把这些自动运行的进程,称为"服务" window…

2024年底-Sre面试回顾

前言 背景: 2024.11月底 公司不大行了, 裁员收缩, 12月初开始面试, 2周大概面试了十几家公司, 3个2面要去线下, 有1个还不错的offer, 想结束战斗但还没到时候 个人情况: base上海 5年经验(2年实施3年运维半年开发) 面试岗位: Sre、云原生运维、驻场运维、高级运维、实施交付 …

pytest入门十:配置文件

pytest.ini:pytest的主配置文件,可以改变pytest的默认行为conftest.py:测试用例的一些fixture配置 pytest.ini marks mark 打标的执行 pytest.mark.add add需要些marks配置否则报warning [pytest] markersadd:测试打标 测试用例中添加了 p…

【Rust自学】3.6. 控制流:循环

3.6.0. 写在正文之前 欢迎来到Rust自学的第三章,一共有6个小节,分别是: 变量与可变性数据类型:标量类型数据类型:复合类型函数和注释控制流:if else控制流:循环(本文) 通过第二章…

【C#】方法参数的修饰符ref 与 out

在 C# 中,ref 和 out 是方法参数的修饰符,用于将参数 按引用传递,而不是按值传递。这允许方法修改调用者传递的变量的值。尽管它们的行为类似,但有重要的区别和适用场景。 1. ref 的含义与使用 含义 引用传递: 参数通…

js进阶语法详解

文章目录 js进阶语法详解一、引言二、闭包与作用域1、闭包1.1、示例代码 2、作用域2.1、示例代码 三、this关键字与函数调用1、this的指向1.1、示例代码 2、apply和call方法2.1、示例代码 四、异步编程1、Promise1.1、示例代码 五、JS的面向对象封装1、封装的概念1.1、构造函数…

Qt WORD/PDF(一)使用 QtPdfium库实现 PDF 预览

文章目录 一、简介二、下载 QtPdfium三、加载 QtPdfium 动态库四、Demo 使用 关于QT Widget 其它文章请点击这里: QT Widget 国际站点 GitHub: https://github.com/chenchuhan 国内站点 Gitee : https://gitee.com/chuck_chee 姊妹篇: Qt WORD/PDF&#x…

.Net WebAPI(一)

文章目录 项目地址一、WebAPI基础1. 项目初始化1.1 创建简单的API1.1.1 get请求1.1.2 post请求1.1.3 put请求1.1.4 Delete请求 1.2 webapi的流程 2.Controllers2.1 创建一个shirts的Controller 3. Routing3.1 使用和创建MapControllers3.2 使用Routing的模板语言 4. Mould Bind…

备战美赛!2025美赛数学建模C题模拟预测!用于大家练手模拟!

完整的思路代码模型见文末 2025 美赛数学建模 C 题 模拟题:城市交通拥堵指数的预测与管理策略 背景 随着全球城市化进程的加快,交通拥堵问题成为城市发展的重要挑战之一。交通拥堵不仅影响居民出行效率,还增加了能源消耗和碳排放。近年来&…

Java操作Redis-Jedis

介绍 前面我们讲解了Redis的常用命令,这些命令是我们操作Redis的基础,那么我们在 java程序中应该如何操作Redis呢?这就需要使用Redis的Java客户端,就如同我们使 用JDBC操作MySQL数据库一样。 Redis 的 Java 客户端很多&#xff0…

英语-日常笔记-2

You can refer to the previous code logic.你可以参考以前的代码逻辑 只是刚开始做 just started doing it/just began to do it 由你自己决定 it’s up to you /it depends on you 这一版需求不急 this demand version is not urgent there is no rush for this requireme…

Vue3 + Element-Plus + vue-draggable-plus 实现图片拖拽排序和图片上传到阿里云 OSS 父组件实现真正上传(最新保姆级)

Vue3 Element-Plus vue-draggable-plus 实现图片拖拽排序和图片上传到阿里云 OSS(最新保姆级)父组件实现真正上传 1、效果展示2、UploadImage.vue 组件封装3、相关请求封装4、SwiperConfig.vue 调用组件5、后端接口 1、效果展示 如果没有安装插件&…

将 Ubuntu 22.04 LTS 升级到 24.04 LTS

Ubuntu 24.04 LTS 将支持 Ubuntu 桌面、Ubuntu 服务器和 Ubuntu Core 5 年,直到 2029 年 4 月。 本文将介绍如何将当前 Ubuntu 22.04 系统升级到最新 Ubuntu 24.04 LTS版本。 备份个人数据 以防万一,把系统中的重要数据自己备份一下~ 安装配置SSH访问…

宝塔SSL证书申请失败,报错:申请SSL证书错误 module ‘OpenSSL.crypto‘ has no attribute ‘sign‘(已解决)

刚安装宝塔申请SSL就报错:申请SSL证书错误 module OpenSSL.crypto has no attribute sign 面板、插件版本:9.2.0 系统版本:Alibaba Cloud Linux 3.2104 LTS 问题:申请SSL证书错误 module OpenSSL.crypto has no attribute sign…

clickhouse优化记录

一、注重使用分区键来加快查询 在大数据量的情况下,如果查询语句中,可以使用分区键来进行查询,可以极大缩小数据的查询范围,加快查询速度。 二、使用order by的列,适用最左前缀匹配原则 比如表的结构是 order by(id…