可视化建模与UML《状态图实验报告》

news2025/1/14 18:13:22

其实我并不是一个实验报告博主。

大家收拾收拾准备期末复习了嗷,差不多了,不想太赶可以开始准备了。

一、实验目的:

1、熟悉状态图的基本功能和使用方法。

2、掌握使用建模工具软件绘制状态图的方法

二、实验环境: 

window7 | 10 | 11 +  EA15

三、实验内容:

1.根据以下的描述,绘制“复印机”的状态图。

未接到工作命令时,复印机处理闲置状态,接到复印命令后,转入复印状态,完成复印后又回到闲置状态,等待命令。若复印时发现没纸,则进入缺纸状态,发出警告等待装纸,装纸完成后又进入闲置状态;若复印时发现卡纸,则进入卡纸(故障)状态,发出警告等待排除故障,故障排除后又进入闲置状态。

2.绘制选课系统中课程(Course)对象的状态图。

   经过需求分析,Course课程对象有以下状态:创建(Created),添加到数据库中(In Database),课程(在数据库中)被删除(Deleted),课程被修改(Modified),课程被开设(纳入学期计划)(In Schedule),不允许选修(选修人数满)(Locked)。

四、实验步骤:

题一:

<1>状态有如下4个:空闲/复印/缺纸/故障

<2>状态之间的动作对应如下:

  • 空闲----接到复印命令---->复印
  • 复印------复印完成------>空闲
  • 复印------发出警告------>缺纸
  • 缺纸------装纸完成------>空闲
  • 复印------发现卡纸------>故障
  • 故障------排除故障------>空闲

<3>设置initial和final

<4>检查是否有遗漏

题二:

<1>状态有如下4个:创建(created)/保存在数据库中(In Database)/删除(Delete)/修改(Modified)/纳入学期计划(In Schedule)/锁住(Locked)

<2>状态之间的动作对应如下:

  • Created----接到复印命令---->In Database
  • In Database------在数据库中删除------>Delete
  • In Database------课程被修改------>Modified
  • In Database------开设该课程------>In Schedule
  • In Database------不允许选修------>Locked

<3>设置initial和final

<4>检查是否有遗漏

五、实验结果:

题一:

题二: 

六、实验心得:

1.在绘制状态图之前,深入理解系统的需求和对象的行为是至关重要的。这有助于识别所有相关的状态和事件。

2.状态图基本构件事物:状态<statue>/转移(动作)/开始<Start>/结束<Final>

3.状态图用来描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转移。

4.守卫条件是转换发生前必须满足的条件。

5.尽量保持状态图的简洁,避免不必要的复杂性。

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

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

相关文章

单片机学习笔记 11. 外部中断

更多单片机学习笔记&#xff1a;单片机学习笔记 1. 点亮一个LED灯单片机学习笔记 2. LED灯闪烁单片机学习笔记 3. LED灯流水灯单片机学习笔记 4. 蜂鸣器滴~滴~滴~单片机学习笔记 5. 数码管静态显示单片机学习笔记 6. 数码管动态显示单片机学习笔记 7. 独立键盘单片机学习笔记 8…

Ubuntu下的Graphviz的基础使用方法

一、Graphviz介绍 graphviz是贝尔实验室开发的一个开源的工具包&#xff0c;它使用一个特定的DSL(领域特定语言):dot作为脚本语言&#xff0c;然后使用布局引擎来解析此脚本&#xff0c;并完成自动布局 1、什么是Graphviz 官网地址&#xff0c;https://www.graphviz.org/ Gr…

IDEA全局设置-解决maven加载过慢的问题

一、IDEA全局设置 注意&#xff1a;如果不是全局设置&#xff0c;仅仅针对某个项目有效&#xff1b;例在利用网上教程解决maven加载过慢的问题时&#xff0c;按步骤设置却得不到解决&#xff0c;原因就是没有在全局设置。 1.如何进行全局设置 a.在项目页面&#xff0c;点击f…

#渗透测试#红蓝攻防#HW#经验分享#溯源反制

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅 目录 一、溯源反制 1、溯源反制的重要性 2、溯源…

Level DB --- SkipList

class SkipList class SkipList 是Level DB中的重要数据结构&#xff0c;存储在memtable中的数据通过SkipList来存储和检索数据&#xff0c;它有优秀的读写性能&#xff0c;且和红黑树相比&#xff0c;更适合多线程的操作。 SkipList SkipList还是一个比较简单的数据结构&a…

YOLOv11融合PIDNet中的PagFM模块及相关改进思路

YOLOv11v10v8使用教程&#xff1a; YOLOv11入门到入土使用教程 YOLOv11改进汇总贴&#xff1a;YOLOv11及自研模型更新汇总 《PIDNet: A Real-time Semantic Segmentation Network Inspired by PID Controllers》 一、 模块介绍 论文链接&#xff1a;https://arxiv.org/pdf/2…

跨平台应用开发框架(4)-----Qt(样式篇)

目录 1.QSS 1.基本语法 2.QSS设置方式 1.指定控件样式设置 2.全局样式设置 1.样式的层叠特性 2.样式的优先级 3.从文件加载样式表 4.使用Qt Designer编辑样式 3.选择器 1.类型选择器 2.id选择器 3.并集选择器 4.子控件选择器 5.伪类选择器 4.样式属性 1.盒模型 …

uniapp定义new plus.nativeObj.View实现APP端全局弹窗

为什么要用new plus.nativeObj.View在APP端实现弹窗&#xff1f;因为uni.showModal在APP端太难看了。 AppPopupView弹窗函数参数定义 参数一:弹窗信息(所有属性可不填&#xff0c;会有默认值) 1.title:"", //标题 2.content:"", //内容 3.confirmBoxCo…

使用phpStudy小皮面板模拟后端服务器,搭建H5网站运行生产环境

一.下载安装小皮 小皮面板官网下载网址&#xff1a;小皮面板(phpstudy) - 让天下没有难配的服务器环境&#xff01; 安装说明&#xff08;特别注意&#xff09; 1. 安装路径不能包含“中文”或者“空格”&#xff0c;否则会报错&#xff08;例如错误提示&#xff1a;Cant cha…

Qwen2.5-7B大模型微调记录

Qwen2.5-7B大模型微调记录 研究需要&#xff0c;需要搞一个大模型出来&#xff0c;没有太多的时间自己训练&#xff0c;准备用现成的开源大模型&#xff0c;然后结合研究方向进行微调 前前后后折腾大半个月&#xff0c;总算做完了第一个微调的大模型&#xff0c;模型基于阿里…

VUE_使用el.animate实现自定义指令抖动效果

// 在 Vue 2 中注册自定义指令 Vue.directive(shake,{// 当被绑定的元素插入到 DOM 中时inserted(el, binding){let value binding.valueconsole.log(el, binding)// 设置 transform-origin 样式el.style.transformOrigin center bottom;const keyframes [{ transform: rota…

多级反馈队列调度算法

参考一 多级反馈队列调度算法 背景/需求分析 在科学技术迅速发展的当代以及经济发展的需求,服务器和任务的数量都在高速增长,同时资源调度的方式以及数量也在成倍增长&#xff0c;目前存在的多种调度算法中&#xff0c;有的调度算法有利于长作业&#xff0c;有的有利于短作业…

ShuffleNet:一种为移动设备设计的极致高效的卷积神经网络

摘要 https://arxiv.org/pdf/1707.01083 我们介绍了一种名为ShuffleNet的计算效率极高的卷积神经网络&#xff08;CNN&#xff09;架构&#xff0c;该架构专为计算能力非常有限的移动设备&#xff08;例如10-150 MFLOPs&#xff09;而设计。新架构利用两种新操作&#xff1a;逐…

C++ 类和对象(类型转换、static成员)

目录 一、前言 二、正文 1.隐式类型转换 1.1隐式类型转换的使用 2.static成员 2.1 static 成员的使用 2.1.1static修辞成员变量 2.1.2 static修辞成员函数 三、结语 一、前言 大家好&#xff0c;我们又见面了。昨天我们已经分享了初始化列表&#xff1a;https://blog.c…

# DBeaver 连接hive数仓

前提 前提是基于hadoop的hive服务已经启动&#xff0c;其中hive的服务包括metastore元数据服务和hiveserver2服务已经启动。hiveserver2服务在默认端口10000启动&#xff0c;且通过telnet xx.xx.xx.xx 10000 能通。 满足以上要求后&#xff0c;再可以看以下连接文档&#xff…

C++趣味编程玩转物联网:用树莓派Pico控制四位数码管

数码管是一种常用的数字显示器件&#xff0c;广泛应用于电子时钟、记分牌和智能设备显示界面。在本项目中&#xff0c;我们将通过树莓派Pico板控制一个四位数码管模块&#xff0c;展示从 0000 到 9999 的数字动态显示。这不仅是一次硬件和软件结合的实践&#xff0c;还可以帮助…

乌班图单机(不访问外网)部署docker和服务的方法

面向对象:Ubuntu不能访问外网的机子,部署mysql、redis、jdk8、minio 过程: 1、安装docker(照着图去这里找对应的下载下来https://download.docker.com/linux/static/stable/),将7个docker官网下载的文件下载下来后,传上去服务器随便一个文件夹或者常用的opt或者/usr/lo…

2024年11月27日Github流行趋势

项目名称&#xff1a;screenshot-to-code 项目维护者&#xff1a;abi clean99 sweep-ai kachbit vagusX项目介绍&#xff1a;通过上传截图将其转换为整洁的代码&#xff08;支持HTML/Tailwind/React/Vue&#xff09;。项目star数&#xff1a;62,429项目fork数&#xff1a;7,614…

K8s调度器扩展(scheduler)

1.K8S调度器 筛选插件扩展 为了熟悉 K8S调度器扩展步骤&#xff0c;目前只修改 筛选 插件 准备环境&#xff08;到GitHub直接下载压缩包&#xff0c;然后解压&#xff0c;解压要在Linux系统下完成&#xff09; 2. 编写调度器插件代码 在 Kubernetes 源代码目录下编写调度插件…

Qt桌面应用开发 第七天(绘图事件 绘图设备)

目录 1.绘图事件paintEvent 2.高级绘图 3.图片绘制 4.绘图设备 4.1QPixmap 4.2QBitmap 4.3QImage 4.4QPicture 1.绘图事件paintEvent paintEvent——绘图事件 需求&#xff1a;利用QPainter绘制点、线、圆、矩形、文字&#xff1b;设置画笔改为红色&#xff0c;宽度为…