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

embedded/2025/2/10 18:05:52/

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

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

一、实验目的:

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.ppmy.cn/embedded/140618.html

相关文章

【C++11】可变参数模板/新的类功能/lambda/包装器--C++

文章目录 一、可变参数模板1、基本语法及原理2、包扩展3、empalce系列接口 二、新的类功能1、默认的移动构造和移动赋值2、成员变量声明时给缺省值3、defult和delete4、final与override 三、STL中一些变化四、lambda1、lambda表达式语法2、捕捉列表3、lambda的应用4、lambda的原…

【Android+多线程】IntentService 知识总结:应用场景 / 使用步骤 / 源码分析

定义 IntentService 是 Android中的一个封装类&#xff0c;继承自四大组件之一的Service 功能 处理异步请求 & 实现多线程 应用场景 线程任务 需 按顺序、在后台执行 最常见的场景&#xff1a;离线下载不符合多个数据同时请求的场景&#xff1a;所有的任务都在同一个T…

目标检测实施与部署(YOLOv8+树莓派)

目标检测实施与部署&#xff08;YOLOv8树莓派&#xff09; 1. 准备工作 1.1 硬件准备 训练环境&#xff1a;一台具有足够计算资源的PC&#xff08;例如带有GPU的机器&#xff09;部署环境&#xff1a;树莓派&#xff08;推荐树莓派4B或更高版本&#xff09;树莓派摄像头模块…

亚信安全发布《2024年第三季度网络安全威胁报告》

《亚信安全2024年第三季度网络安全威胁报告》的发布旨在从一个全面的视角解析当前的网络安全威胁环境。此报告通过详尽梳理和总结2024年第三季度的网络攻击威胁&#xff0c;目的是提供一个准确和直观的终端威胁感知。帮助用户更好地识别网络安全风险&#xff0c;并采取有效的防…

Java面试之多线程并发篇

前言 本来想着给自己放松一下&#xff0c;刷刷博客&#xff0c;突然被几道面试题难倒&#xff01;说一说自己对于 synchronized 关键字的了解&#xff1f;说说自己是怎么使用 synchronized 关键字&#xff1f;什么是线程安全&#xff1f;Vector是一个线程安全类吗&#xff1f;…

连续变量的 交叉熵 如何计算 python tensorflow

连续变量的交叉熵通常在机器学习中的回归问题中使用&#xff0c;但它也可以用于分类问题&#xff0c;当概率分布是连续的时。连续变量的交叉熵计算公式如下&#xff1a; 设 \( p(x) \) 是真实概率密度函数&#xff0c;\( q(x) \) 是预测概率密度函数&#xff0c;交叉熵 \( H(p…

对于某些原型或UI软件的个人看法(2024/11)

由于我这几天&#xff0c;一边敲代码&#xff0c;一边进行页面布局设计与编码&#xff0c;发现可能就一个卡片&#xff0c;我都得调很久样式&#xff0c;觉得这样改很累也没效率&#xff0c;页面也不是很美观。所以我想到了ui设计&#xff0c;我可以先进行ui设计&#xff0c;然…

“探索Java List的无限可能:从基础到高级应用“

今天将带领大家进入Java—list的学习&#xff0c;跟随我的脚步进入list之旅. 我的个人主页 1. 什么是List 2. List常见接口介绍 3. List的使用 一&#xff1a;什么是List ? 在集合框架中&#xff0c;List是一个接口&#xff0c;继承自Collection。 Collection也是一个接口…