APP下载

基于Python的在线实验室管理系统的设计

2022-08-29葛苓童陈超

电脑知识与技术 2022年20期
关键词:系统管理员失物招领用例

葛苓童,陈超

(西交利物浦大学,江苏苏州215123)

1 引言

目前,高等院校的线上线下教育融合的趋势愈发凸显。高校计算机机房实验室的使用频次也在逐年上升[1]。在这种背景下,实验室管理的移动化、智能化、便捷化是必然的发展趋势[2]。Python从脚本解释型语言发展而来,能避免传统信息化网站UI繁杂、网站服务器不稳定而导致用户体验感差等问题。基于Python语言可以快速开发在线实验室管理系统,极大地缩短了开发时间,提升实验室管理效率[3]。

2 系统分析与设计

系统的使用角色分为四大类,有学生、教师、实验室管理员、系统管理员。实验室管理员的主要的职责是进行失物招领管理、报修管理和通知管理。实验室可以通过Web端查看报修情况,实时地对实验室机房损坏的设施进行管理,以便学生的使用;实验室管理员可以系统平台发布一些失物招领的信息、查询实验室地图状态,并通过查询各个实验室的状态来对实验室进行管理,状态分为正在使用中、关闭、即将开放、即将关闭四种状态。系统管理员的主要职责是进行用户管理、通知管理、实验室信息管理、失物招领管理、报修管理[4]。

2.1 实验室信息管理模块

实验室信息管理模块是整体系统的基础,主要功能如下:首先,系统管理员可以对实验室信息、通知信息、报修信息、失物招领信息进行批量导入、单条的增删改查;其次,学生、教师、实验室管理员等用户可以对实验室信息、地图状态信息进行查询,对报修信息和失物招领信息进行发布,其用例模型如图1所示。其具体实现逻辑如下:

图1 实验室信息模块用例模型图

首先将上传的Excel文件保存到服务器的file文件夹下,然后利用node-xlsx 包来解析Excel 表格,将解析后的实验室数据保存在obj 对象的data 数组中,之后将其传输给controller 层。controller 层接收到前端JS 传输的带有实验室信息数据的数组后,通过for循环,将每一条实验室信息数据保存在arr数组中,controller层向service层传输,再传输到dao层,在dao层中,通过SQL语句,将实验室信息数据逐条插入到数据库中去。算法设计如下:

第一步,根据目录索引,遍历file文件下的csv文件,获得最新的csv,将其视为当前版本的文件信息。第二步,将delimiter作为内部约定的列之间的分割符,对Json字符串进行分割。第三步,创建cursor对象,操作数据库连接的conn接口。第四步,开启数据库事务。第五步,遍历csv文件中的每一行,按照对应的数据库字段,进行for each 循环迭代,将csv 中的内容逐一插入到数据库中,并进行保存。第六步,关闭事务。第七步,关闭数据库。最后一步,刷新当前页面,将最新的内容呈现在Web页面上。

2.2 通知模块

通知模块的主要功能需求包括系统管理员对于通知信息的导入、删除等操作,以及学生、教师、实验室管理员等用户对于通知信息的查询的操作。通知信息包括失物招领信息、实验室上机地点变更信息、节假日信息的通知,其用例模型如图2所示。其实现逻辑如下:通知主要涉及上课地点变更、放假等信息,学生、教师、实验室管理员可以通过Web 查询各个通知、发布失物招领信息通知;系统管理员可以在Web端对各个通知进行发布、删除、修改、查询的操作。

图2 通知业务功能的用例模型图

当系统管理员对通知信息进行管理操作的时候,前端js将相关的数据发送给后端,后端controller 接收之后,通过service层调用dao层的相对应的方法,完成对数据库的增加、删除、修改、查询的修改并且将修改后的数据展示在前端界面的通知列表中;当学生查看通知时,只能查看到最近30 条的通知信息,点击通知列表可以查看到详情页,使用前端page分页技术实现每30条信息分一页。

通知模块中,最为核心的一个设计是使用了分页技术。分页的处理通常有两种逻辑,一种是前端分页技术,其核心思想是从数据库中将全部信息取出,然后在页面中,根据数量要求分页显示,这样做的好处是页面显示切换比较快,避免了频繁读取数据库造成的开销,但缺点是一次全部取出数据库的全部内容,应用服务器的内存空间可能不足。本系统采用了另一种逻辑,SQL 查询并不是全部读取数据,而是采用order by 关键字,让全部的通知信息按时间顺序排序,每次选取顶部的30条。这样,数据查询量是有限的,从而避免了全部查询带来的服务器存储开销。

2.3 失物招领模块

失物招领模块的主要功能需求包括学生、教师、实验室管理员对于失物招领信息的发布和查询,以及系统管理员对失物招领查询信息的发布、查询、删除、修改的操作,其用例模型如图3所示。其逻辑是为了方便对学生上机时丢失物品的管理,用户可以通过Web 发布、查询失物信息,系统管理员可以通过Web端进行失物信息的查询、增加、删除、修改的操作。学生通过平台进行失物招领信息的发布,前端将相关数据传送到后端,后端经过逻辑处理,将该条失物招领信息插入到数据库中。数据一旦更新就会触发更新前台页面的失物招领列表页面。

图3 失物招领信息功能的用例模型图

2.4 报修模块

失物招领模块的主要功能需求包括学生、教师、实验室管理员对于失物招领信息的发布和查询,以及系统管理员对失物招领查询信息的发布、查询、删除、修改的操作。其用例模型如图4所示。系统管理员查看到报修信息后,通知相关的管理人员进行设施的维修,并且可以对报修信息的查询、修改、增加、删除的操作。用户在页面发起报修操作请求,将请求发送到Python 模块,Python 进行逻辑处理,完成对数据库的相应的操作,并且将操作的结果响应给前端页面,前端页面展示修改过后的报修列表。

图4 失物招领信息业务功能的用例模型图

3 结束语

基于Python 的实验室管理系统是有针对性地解决传统机房实验室管理不便的需求,采用在线Web 访问的形式,极大地提高了实验室的管理效率。本系统采用内容差异性原则的设计方案[5],针对不同的用户设计不同的功能应用:学生、教师、实验室管理员更加关注实验室信息的查询、通知信息查询、报修和失物招领的发布的操作;系统管理员更加关注的是实验室信息、通知信息、报修信息、失物招领信息、用户信息的各种管理操作,进而提升了整体的实验室机房管理效率。

猜你喜欢

系统管理员失物招领用例
失物招领处
UML用例间包含关系与泛化关系的比较与分析
UML用例模型中依赖关系的比较与分析
联锁软件详细设计的测试需求分析和用例编写
從出土文獻用例看王氏父子校讀古書的得失
浅议会计电算化工作中的系统管理员