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 的首字母缩写。这个项目的目标是帮助用户采集、存储、搜索和可视化大量的日志和事件数据,尤其是在分布式系统中。下面是每个组件的概述&…

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

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

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…

Java操作Redis-Jedis

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

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…

<mutex>注释 12:重新思考与猜测、补充锁的睡眠与唤醒机制,结合 linux0.11 操作系统代码的辅助(下)

(60)继续分析,为什么 timed_mutex 可以拥有准时的等待时间: 逐步测试: 以及: 以及: 以及: 上面的例子里之所以这么编写。无论 timed_mutex 里的定时等待函数,还是 条件…

【MySQL】InnoDB引擎中的Compact行格式

目录 1、背景2、数据示例3、Compact解释【1】组成【2】头部信息【3】隐藏列【4】数据列 4、总结 1、背景 mysql中数据存储是存储引擎干的事,InnoDB存储引擎以页为单位存储数据,每个页的大小为16KB,平时我们操作数据库都是以行为单位进行增删…

Kylin麒麟操作系统 | 网络链路聚合配置(team和bond)

目录 一、理论储备1. 链路聚合 二、任务实施1. team模式2. bond模式 一、理论储备 1. 链路聚合 链路聚合是指将多个物理端口捆绑在一起,形成一个逻辑端口,以实现出/入流量在各成员端口中的负载分担。链路聚合在增加链路带宽、实现链路传输弹性和冗余等…

Linux中用户和用户管理详解

文章目录 Linux中用户和用户管理详解一、引言二、用户和用户组的基本概念1、用户账户文件2、用户组管理 三、用户管理操作1、添加用户2、设置用户密码3、删除用户 四、用户组操作1、创建用户组2、将用户添加到用户组 五、总结 Linux中用户和用户管理详解 一、引言 在Linux系统…

多进程并发跑程序:pytest-xdist记录

多进程并发跑程序:pytest-xdist记录 pytest -s E:\testXdist\test_dandu.py pytest -s testXdist\test_dandu.py pytest -s :是按用例顺序依次跑用例 pytest -vs -n auto E:\testXdist\test_dandu.py pytest -vs -n auto,auto表示以全部进程…

笔记--(Shell脚本04)、循环语句与函数

循环语句 1、for语句的结构 for 变量名 in 取值列表 do 命令序列 done for 收件人 in 邮件地址列表 do 发送邮件 done for i in {1..10} doecho $i done[rootlocalhost shell]# ./ce7.sh 1 2 ...... 9 101 #!/bin/bash2 3 for i in seq 1 104 do5 echo $i6 done[rootlocal…

用.Net Core框架创建一个Web API接口服务器

我们选择一个Web Api类型的项目创建一个解决方案为解决方案取一个名称我们这里选择的是。Net 8.0框架 注意,需要勾选的项。 我们找到appsetting.json配置文件 appsettings.json配置文件内容如下 {"Logging": {"LogLevel": {"Default&quo…

go引用包生成不了vendor的问题

比如我要引入github.com/jinzhu/gorm这个包. 1. 首先获取包 go get github.com/jinzhu/gorm 这时go.mod文件中也有这个包依赖信息了. 2. 然后构建vendor go mod vendor 结果发现vendor目录下没有生成对应的包, 而且modules.txt也注释掉这个包了. 原因是没有其进行引用, go…

36. Three.js案例-创建带光照和阴影的球体与平面

36. Three.js案例-创建带光照和阴影的球体与平面 实现效果 知识点 Three.js基础 WebGLRenderer WebGLRenderer 是Three.js中最常用的渲染器,用于将场景渲染到网页上。 构造器 new THREE.WebGLRenderer(parameters)参数类型描述parametersobject可选参数&#…

el-table表格嵌套子表格:展开所有内容;对当前展开行内容修改,当前行默认展开;

原文1 原文2 原文3 一、如果全部展开 default-expand-all"true" 二、设置有数据的行打开下拉 1、父table需要绑定两个属性expand-row-key和row-key <el-table:data"tableData":expand-row-keys"expends" //expends是数组&#xff0c;设置…

零基础微信小程序开发——小程序的宿主环境(保姆级教程+超详细)

&#x1f3a5; 作者简介&#xff1a; CSDN\阿里云\腾讯云\华为云开发社区优质创作者&#xff0c;专注分享大数据、Python、数据库、人工智能等领域的优质内容 &#x1f338;个人主页&#xff1a; 长风清留杨的博客 &#x1f343;形式准则&#xff1a; 无论成就大小&#xff0c;…