MachineGuard——项目系统设计与数据库设计
| 这个作业属于哪个课程 | 2023软工W班 |
|---|---|
| 这个作业要求在哪里 | 团队作业三——概要设计与数据库设计 |
| 团队名称 | Machine Guard |
| 这个作业的目标 | 材料链接、系统设计、数据库设计、类图、安全、改进、团队绩效、开发计划 |
| 其他参考文献 | 无 |
目录
- 1 链接
- 2 系统设计
- 2.1 功能层次图
- 2.2 功能模块
- 2.2.1 监控
- 2.2.2 统计
- 2.2.3 日志
- 2.2.4 账户
- 2.2.5 通知
- 2.3 系统结构
- 3 数据库设计
- 3.1 ER图
- 3.2 数据表结构
- 3.3 数据字典
- 4 设计类图
- 5 系统安全和权限设计
- 5.1 系统权限
- 5.2 系统安全性
- 5.3 系统可靠性
- 6 改进分析
- 6.1 QA
- 6.2 改进
- 6.2.1 类图改进
- 6.2.2 用户系统改进
- 7 团队绩效
- 7.1 工作流程
- 7.2 组员分工及贡献度
- 8 开发计划安排
- 8.1 时间规划
- 8.2 分工规划
1 链接
2 系统设计
2.1 功能层次图

2.2 功能模块
2.2.1 监控
- 机房全貌: 提供整个机房布局和各机房当前状态的可视化展示,以实时协助管理员把握机房的运行状况。
- 楼层综述: 提供某一楼层中各机房的温度、湿度和当前状态等详尽信息,以深入了解该楼层的运行情况。
- 机房仿真: 提供多项数据比如机房温湿度、警报状态、监控画面和抓拍记录,以及仪器运行状况等详细信息,为管理员提供全方位的实时机房监管支持。
- 仪器控制: 实现对各类设备的控制以及根据预测的仪器温度自动输出日志等辅助功能,有效改善机房管理效率和效果。
2.2.2 统计
- 图表数据选择: 提供下拉菜单以供管理员选择某日的机房统计数据图表展示及搜索栏以支持全面的机房数据分析。
- 侧边栏分类: 提供便于管理员轻松比较和查看不同数据之间的关系和趋势的分类筛选菜单,包括警报数据图表、温度数据图表及设备状态变化图表等。
2.2.3 日志
- 通过侧边栏上的按钮,用户可以设置查询和分类的条件,以便高效地查找所需信息,根据日志信息快速定位分析问题。
- 支持多种查询条件,如设备号、房间号和警报类型等,用户既可以使用单一条件进行查询,也可以进行组合查询。查询结果中包含详细的日志信息,包括时间、类型和信息源等。
2.2.4 账户
- 登录安全: 通过手机号验证方式实现可靠的用户信息安全保障。
- 个人信息管理: 允许用户查看和编辑个人信息,包括登录密码、名称、头像等相关数据。
- 页面定制化: 允许用户根据个人需求和喜好自定义系统风格、语言、通知等,实现个性化的机房管理界面。
2.2.5 通知
- 当前通知: 点击通知按钮可以在通知页面中查看当前通知,可以通过级别下拉框, 过滤出相应级别的通知
- 历史通知: 在当前通知页面中, 通过搜索, 可以查看历史消息通知
2.3 系统结构
- 前端:Vue,Three.js,ElementPlus
- 端间通讯:Axios
- 逻辑层控制:Spring
- 持久层:MyBatisPlus
- 数据库:MySQL
- 中间件:RocketMQ
- 网关:SpringCloud
- 传感器网关:HV RTSP / HomeAssistant Application Interface

3 数据库设计
3.1 ER图

3.2 数据表结构
| 表名 | 列名 | 描述 |
|---|---|---|
| group | id | group的唯一标识符 |
| group | name | 机房组名字 |
| group | description | 描述 |
| floor | id | floor的唯一标识符 |
| floor | name | 楼层名称 |
| floor | description | 描述 |
| room | id | room的唯一标识符 |
| room | floor_id | 机房对应的楼层id |
| room | name | 机房名称 |
| room | description | 描述 |
| room_statistics | id | room_statistics的唯一标识符 |
| room_statistics | time | 统计时间 |
| room_statistics | room_id | 机房ID |
| room_statistics | temperature | 温度 |
| room_statistics | humidity | 湿度 |
| room_list | id | room_list的唯一标识符 |
| room_list | group_id | 机房组ID |
| room_list | room_id | 机房ID |
| log | id | log的唯一标识符 |
| log | sensor_id | 监测器ID |
| log | type | 日志类型 |
| log | time | 日志时间 |
| log | message | 日志内容 |
| log | level | 紧急等级 |
| sensor | id | sensor的唯一标识符 |
| sensor | name | 监测器名称 |
| sensor | state | 监测器状态 |
| sensor | type | 监测器种类 |
| sensor | description | 描述 |
| sensor_list | id | device_list的唯一标识符 |
| sensor_list | room_id | 机房ID |
| sensor_list | sensor_id | 监测器ID |
| device | id | device的唯一标识符 |
| device | name | 设备名称 |
| device | state | 设备状态 |
| device | description | 描述 |
| device_list | id | device_list的唯一标识符 |
| device_list | room_id | 机房ID |
| device_list | device_id | 设备ID |
| device_statistics | id | device_statistics的唯一标识符 |
| device_statistics | time | 统计时间 |
| device_statistics | device_id | 设备ID |
| device_statistics | cpu_useage | CPU占用率 |
| device_statistics | temperature | 温度 |
| device_statistics | read_rate | 硬件读速率 |
| device_statistics | write_rate | 硬件写速率 |
| device_statistics | state | 设备状态 |
| device_statistics | upload_rate | 上传速率 |
| device_statistics | download_rate | 下载速率 |
3.3 数据字典
Table1 group
| 字段 | id | name | description |
|---|---|---|---|
| 描述 | group的唯一标识符 | 机房组名字 | 描述 |
| 数据类型(长度) | INT | VARCHAR(50) | VARCHAR |
| 约束 | pk | not null |
Table2 floor
| 字段 | id | name | description |
|---|---|---|---|
| 描述 | floor的唯一标识符 | 楼层名称 | 描述 |
| 数据类型(长度) | INT | VARCHAR(50) | VARCHAR |
| 约束 | pk | not null |
Table3 room
| 字段 | id | floor_id | name | description |
|---|---|---|---|---|
| 描述 | room的唯一标识符 | 机房对应的楼层id | 机房名称 | 描述 |
| 数据类型(长度) | INT | INT | VARCHAR(50) | VARCHAR |
| 约束 | pk | references floor(id) | Not null |
Table4 room_statistics
| 字段 | id | time | room_id | temperature | humidity |
|---|---|---|---|---|---|
| 描述 | room_statistics的唯一标识符 | 统计时间 | 机房ID | 温度 | 湿度 |
| 数据类型(长度) | INT | DATETIME | INT | DECIMAL | DECIMALA |
| 约束 | pk | not null | references room(id) | not null | not null |
Table5 room_list
| 字段 | id | group_id | room_id |
|---|---|---|---|
| 描述 | room_list的唯一标识符 | 机房组id | 机房id |
| 数据类型(长度) | INT | INT | INT |
| 约束 | pk | references group(id) | references room(id) |
Table6 log
| 字段 | id | sensor_id | type | time | message | level |
|---|---|---|---|---|---|---|
| 描述 | log的唯一标识符 | 监测器id | 日志类型 | 日志时间 | 日志内容 | 紧急等级 |
| 数据类型(长度) | INT | INT | VARCHAR(20) | DATETIME | VARCHAR | VARCHAR(20) |
| 约束 | pk | references sensor(id) | not null | not null | not null | not null |
Table7 sensor
| 字段 | id | name | state | type | description |
|---|---|---|---|---|---|
| 描述 | sensor的唯一标识符 | 监测器名称 | 监测器状态 | 监测器类型 | 描述 |
| 数据类型(长度) | INT | VARCHAR | VARCHAR | VARCHAR | VARCHAR |
| 约束 | pk | not null | not null | not null |
Table8 sensor_list
| 字段 | id | room_id | sensor_id |
|---|---|---|---|
| 描述 | sensor_list的唯一标识符 | 机房id | 监测器id |
| 数据类型(长度) | INT | INT | INT |
| 约束 | pk | references room(id) | references sensor(id) |
Table9 device
| 字段 | id | name | state | description |
|---|---|---|---|---|
| 描述 | device的唯一标识符 | 设备名称 | 设备状态 | 描述 |
| 数据类型(长度) | INT | VARCHAR | VARCHAR | VARCHAR |
| 约束 | pk | not null | not null |
Table10 device_list
| 字段 | id | room_id | device_id |
|---|---|---|---|
| 描述 | Device_list的唯一标识符 | 机房id | 设备id |
| 数据类型(长度) | INT | INT | INT |
| 约束 | pk | references room(id) | references device(id) |
Table11 device_statistics
| 字段 | id | time | device_id | cpu_usage | tempereture | read_rate | write_rate | state | upload_rate | download_rate |
|---|---|---|---|---|---|---|---|---|---|---|
| 描述 | device_list的唯一标识符 | 统计时间 | 设备ID | CPU占用率 | 温度 | 硬件读速率 | 硬件写速率 | 设备状态 | 上传速率 | 下载速率 |
| 数据类型(长度) | INT | DATETIME | INT | DECIMAL | DECIMAL | DECIMAL | DECIMAL | VARCHAR | DECIMAL | DECIMAL |
| 约束 | pk | not null | references device(id) | not null | not null | not null | not null | not null | not null | not null |
4 设计类图

5 系统安全和权限设计
5.1 系统权限
基于RBAC模型,满足了RBAC0(基本模型)的定义
- 权限:浏览页面、日志查看、监控查看、通知查看、统计查看、设备管理、管理员权限(管理资源权限、管理用户角色)
- 角色:角色与权限是多对多的关系, 一个角色拥有多种权限, 而一种权限也能被多种角色拥有。
- 游客:仅可以浏览页面
- 普通用户:浏览页面、日志查看、监控查看、通知查看、统计查看、设备管理
- 管理员:拥有系统的所有权限
- 用户:角色与用户之间是多对多的关系,一个用户对应多种角色,而一种角色包含了多个用户。
5.2 系统安全性
- 访问权限控制:系统对访问用户进行身份验证和鉴别,普通用户仅能查看界面信息,管理员则拥有更高的权限。在此基础上,基于OAuth2协议实现并确保前端对于后端数据的请求以及请求的安全性。
- 用户信息:系统采用MD5方式对用户信息进行加密,使用预先设计的算法,处理用户传过来的如密码等信息,并将处理后的结果进行哈希算法处理,得到一个新的结果后保存到数据库中,进一步保证用户信息的存储安全。
- 系统日志:系统会对日志模块的各种指标数据进行保密并定期备份到一个安全的文件中。
- 数据传输:系统通过使用SSL/TLS加密协议,保证数据在传输过程中被加密。
5.3 系统可靠性
- 高并发可用性:系统使用可视化图表展示各种指标数据,并且具有简单直观、友好的用户界面,用户操作门槛低。同时使用Spring Cloud,将系统的功能划分为许多个小型服务,利用其容错机制确保系统在出现故障或者部分功能不可用的情况下可以正常运行,确保了系统的可维护性,可扩展性和灵活性。
- 系统性能:系统能够长时间稳定运行,并利用相应算法准确的预测温度变化。系统提供实时监测功能,能够快速处理指标数据,及时检测并通知异常状况。
- 可测试性:系统的日志模块中记录着详细的运行信息,测试人员可以利用这些信息来进行充分测试。
- 兼容性:系统会根据不同的设配类型来调整页面的布局,能够在手机端和电脑端下稳定运行,具有很好的跨平台兼容性。
6 改进分析
6.1 QA
楼层在类图中如何体现?
楼层在类图中体现为机房的一个属性,在实际的逻辑中我们是用这个属性来筛选,楼层本身并没有任何信息和意义。但是为了更好地抽象出模型,我们在改进的类图中特别增加了Floor类。
温度检测器与机房环境记录有关吗?
温度检测器和机房环境记录间接相关。机房环境记录等于是一个定期生成的报告,在报告的时候会调用温度检测器。
用户还有再分角色吗?
用户会分数据权限,比如用户A可以访问机房1但不能访问机房2。功能上只有管理员和用户。
这些硬件怎么解决
使用现有的硬件,在HomeAssaiant这个平台进行转发,将数据并入我们的系统。
6.2 改进
6.2.1 类图改进
在深入分析业务需求后,我们对系统类图进行了修改,以更加准确地反映系统所需功能。我们决定删除设备温度记录类、机房环境记录类和告警信息类,以精简系统结构。此外,我们对现有的统计信息类进行了泛化,分别泛化为设备统计信息类和机房统计信息类,以便更好地记录硬件设备和机房信息。
为了更好地表示设备与机房、机房与机房组、监测器与机房之间的关系,我们引入了设备列表类、机房列表类和监测器列表类。同时,我们还通过日志类,在监测器与硬件设备这两个静态类之间建立了动态联系,以更好地表示两者之间关系。
6.2.2 用户系统改进
优化了用户权限系统。原先我们采用用户-管理员模式,而用户部分使用一张特殊的用户授权表来存储用户能否访问对应机房或者设备的权限。经过考虑,我们转而使用RDBC权限设计模式来进行用户系统的搭建,引用用户组概念,实现了更加宽泛和灵活的权限分配控制。
7 团队绩效
7.1 工作流程
- 核对博客要点,制定本周团队工作大纲,包括需要提交的材料,制定组员分工。
- 根据国标拟定《系统设计说明书》和《数据库设计说明书》的大纲。
- 通过《需求规格说明书》填充优化现有内容,修改优化类图。
- 通过类图设计ER图,关系代数模型,设计CURD的接口。
- 完成说明书的其他部分。
- 按说明书设计PPT,复审PPT。
- 撰写本次的博客,完成工作。
7.2 组员分工及贡献度
| 学号 | 工作内容 | 贡献度 |
|---|---|---|
| 222000321 | 博客全部,ppt复审,系统说明书和数据库说明书的整合 | 13% |
| 222000234 | PPT设计 | 12% |
| 222000231 | PPT设计,数据库文档4 | 10% |
| 222000320 | 评审表 | 5% |
| 222000322 | 系统说明书2.5,3.2(合作);数据库说明书3.2 | 20% |
| 222000317 | 系统说明书3.2(合作),数据库说明书3.1 | 15% |
| 222000318 | 系统说明书4.2,4.3,6.1 | 10% |
| 222000310 | 系统说明书2.3,3.1,4.1 | 15% |
8 开发计划安排
8.1 时间规划
| 时段 | 内容 | 里程碑 |
|---|---|---|
| 第一周 | 需求分析 | 产出《需求说明书》以及第一版原型 |
| 第二周 | 系统定型,数据库设计 | 搭建出一个按照实体类设计的数据库,建立系统各组成的框架 |
| 第三周 | 静态界面设计和接口设计 | 实现前端静态界面的粗糙版本,提供一套粗糙的WebAPI文档 |
| 第四周 | 数据对接实现 | 前后端能够进行通讯,完成各实体功能的CURD操作 |
| 第五周 | 数据对接完善 | 产出细致的WebAPI文档,前后端通讯能够覆盖大多数功能操作 |
| 第六周 | 可靠性、安全性完善 | 实现前端界面交互的细致版本,后端能够通过压测和入侵测试 |
| 第七周 | 用户交互完善 | 产出完整的产品,通过黑盒测试 |
| 第八周 | 交付准备和交付 | 产出产品文档等交付附属材料 |
8.2 分工规划
| 学号 | 职责 | 内容 |
|---|---|---|
| 222000321 | PM、前端 | 统筹项目,跟踪进度,项目质量控制、前端3D和2D建模部分的实现 |
| 222000234 | 产品、UI | 原型设计,产品包装,文档美术设计 |
| 222000231 | UI、后端 | 产品包装,文档设计,后端辅助 |
| 222000320 | 测试 | 黑盒测试,测试报告产出 |
| 222000322 | 后端 | 主要后端搭建,接口设计,分布式设计 |
| 222000317 | 后端 | ORM设计,数据库DBA |
| 222000318 | 后端 | 后端接口实现,逻辑实现 |
| 222000310 | 前端 | 前端界面实现和除建模外的逻辑实现 |
相关推荐
LLC谐振变换器恒压恒流双竞争闭环控制simulink仿真(附说明文档)
内容概要:本资源是一套面向电力电子与智能控制领域的综合性科研仿真资料合集,核心聚焦于LLC谐振变换器的恒压恒流双竞争闭环控制策略设计与Simulink建模仿真实现,涵盖半桥LLC、双向全桥LLC等拓扑结构的调频闭环仿真,并提供详尽的说明文档与PPT辅助材料。资源体系不仅深入呈现LLC变换器的动态响应与控制逻辑,还扩展至双有源桥(DAB)变换器的软开关协同优化、最小应力控制、EPS调制策略及新扩展移相角优化等前沿技术,同时集成三相PWM整流器在电网不平衡条件下的功率平衡控制、VOC+SVPWM双闭环控制等典型应用场景。此外,资源包涵盖状态估计(如EKF、UKF、PF)、微电网经济调度、卡尔曼滤波融合、神经网络控制、PID优化、储能系统管理等多个交叉方向,特别强调对顶级EI期刊研究成果的高精度复现,旨在帮助科研人员快速掌握先进控制算法的核心思想与仿真实现方法。; 适合人群:电气工程、自动化、电力电子、新能源科学与工程等相关专业的硕士博士研究生、高校科研人员,以及从事新能源变换器、智能电网、电动汽车、微电网系统研发的工程技术人员。; 使用场景及目标:① 深入理解LLC与DAB变换器的闭环控制机理,掌握恒压恒流切换、软开关实现与损耗优化方法;② 利用Simulink平台构建复杂电力电子系统模型,开展动态性能分析与控制器参数整定;③ 复现高水平期刊论文中的先进控制策略,提升科研创新能力与论文发表竞争力;④ 支持毕业设计、科研课题、项目申报及工程原型开发中的仿真验证环节。; 阅读建议:建议结合提供的完整资源目录循序渐进学习,优先研读标注“顶级EI复现”的案例以获取权威方法参考,配合MATLAB/Simulink动手搭建模型,重点关注控制框图设计、调制逻辑实现与仿真结果对比,深入理解算法背后的物理意义与数学推导过程。
YOLO26算法水面与液体识别+训练好的模型+393张数据集+pyqt可视化界面.zip
附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[未获取()] 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 52 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.8528** mAP50-95 | 0.3441 Precision | 0.7729 Recall | 0.8354 train/box_loss | 1.5367 train/cls_loss | 1.0228 val/box_loss | 1.6809 val/cls_loss | 1.1758 【训练过程分析】 我这次训练了52个周期,模型在训练初期确实收敛速度很快,前20个周期mAP50从0.74逐步提升至0.82,这说明模型开始适应数据集,学习到一些关键特征。但到第30个周期后,提升速度逐渐放缓,到了40个周期时,mAP50达到0.85,这个阶段的曲线走势有些像磨砂玻璃,平滑且不规则,后期更是趋于平缓,表明模型可能已经达到最优解,再继续训练可能会有少量提升但代价较大。整体而言,从loss曲线来看,训练集的box_loss和cls_loss在52个周期内分别从1.80和1.25降到1.54和1.02,下降曲线较为稳定,但到了后期,这两项指标下降幅度逐渐减缓,尤其cls_loss下降至1.10左右后趋于稳定,这可能是模型对训练数据已有了较强的泛化能力,但也提示我们分类的稳定性可能还欠些火候。 至于验证集的表现,box_lo... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。
概率神经网络的分类预测-基于PNN的变压器故障诊断(Matlab代码实现)
内容概要:本文系统阐述了基于概率神经网络(PNN)的变压器故障诊断方法,结合Matlab代码实现分类预测。通过提取变压器运行过程中的关键特征参数,构建PNN模型以实现对正常状态与典型故障状态(如绕组短路、铁芯故障等)的高效分类识别。文章深入剖析了PNN的网络结构、概率密度估计原理、训练机制及分类决策过程,并通过仿真实验验证了该方法在故障诊断任务中具备较高的准确率与鲁棒性,展现了其在电力系统状态监测与智能运维中的良好应用前景。; 适合人群:具备一定机器学习理论基础和Matlab编程能力的电气工程、自动化、智能电网等相关领域的研究生、科研人员以及从事电力设备状态监测与故障诊断工作的工程技术人员。; 使用场景及目标:①实现变压器早期故障的智能化诊断与预警,提升电力系统运行安全性;②为基于神经网络的工业设备故障分类任务提供可复现的算法实现范例与技术验证平台; 阅读建议:建议读者结合文中提供的Matlab代码,动手复现实验流程,深入理解PNN在实际分类问题中的参数配置、训练策略、性能评估方法,并鼓励将该方法迁移至其他电力设备或机电系统的故障诊断场景中进行拓展研究与优化改进。
AI大模型医学影像诊断智能识别应用方案.pptx
AI大模型医学影像诊断智能识别应用方案.pptx
CSDN首页 发布文章 CSDN同步助手 多无人机面向城市空中交通的多无人机路径规划研究(Matlab代码实现) 37 100 摘要:会在推荐、列表等场景外露,帮助读者快速了解内容,支持
内容概要:本文围绕面向城市空中交通的多无人机路径规划问题展开研究,系统阐述了该领域的核心挑战与关键技术。文章首先定义了多无人机路径规划的问题,明确了包括飞行安全、避障、协同效率在内的多项约束条件与性能指标。随后,重点介绍了三大类路径规划方法:基于改进RRT算法和图论的全局路径规划方法,用于构建初始可行路径;基于动态风险场的模型预测控制和动态窗口法(DWA)的动态避障方法,以应对环境中的突发障碍;以及多无人机协同规划策略和分布式协同控制算法构成的局部协同调整方法,确保多机间的飞行安全与任务协同。研究通过搭建Matlab仿真实验平台,设计了多种复杂城市飞行场景,对所提方法进行了全面的仿真验证与结果对比分析,展示了各方法在不同场景下的有效性与优劣。; 适合人群:具备一定自动化、计算机或航空航天领域基础知识,从事无人机、智能交通、路径规划等相关方向研究的研发人员和研究生。; 使用场景及目标:①为城市空中交通管理系统(UATM)的设计与开发提供理论基础和技术参考;②应用于物流配送、城市巡检、应急救援等多无人机协同任务的路径规划算法设计与仿真验证;③作为相关领域科研工作的技术参考资料,推动多智能体协同决策与控制技术的发展。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,通过复现仿真结果加深对各类算法原理与实现细节的理解。在学习过程中,应重点关注全局规划与局部避障的结合机制,以及多机协同策略中的冲突消解逻辑。



