高校疫情管理系统需求分析
高校传染病疫情管控系统的设计与实现
课程设计报告
课程设计名称: 软件工程综合课程设计
课程设计题目: 高校传染病疫情管控系统的设计与实现
完成期限: 2025年09月29日至2025年10月17日
学生姓名: [您的姓名]
学号: [您的学号]
指导教师: [指导教师姓名]
提交日期: 2025年10月17日
摘要
本报告基于软件工程原理,采用瀑布型开发过程,设计并实现了高校传染病疫情管控系统。该系统针对高校疫情管理痛点,实现了用户注册管理、个人管理及核心疫情管控功能,包括体温打卡、疫苗管理、隔离管控和疫情信息管理。系统使用Spring Boot 2.6后端、Vue 2.6前端和MySQL数据库,支持多角色权限控制和数据统计导出。通过需求分析、建模、编码、测试等环节,确保系统功能完整、界面友好、安全可靠。测试结果显示,系统响应时间≤2秒,支持1000人并发。未来可扩展AI预警功能。
关键词: 高校疫情管控;软件工程;Spring Boot;Vue;MyBatis-Plus
目录
-
问题分析和任务定义
1.1 问题背景
1.2 任务定义 -
需求分析
2.1 核心目标
2.2 用户角色与权限需求
2.3 功能需求
2.4 非功能需求
2.5 用例图表示需求 -
软件建模
3.1 用例模型
3.2 类模型
3.3 时序模型
3.4 活动模型
3.5 功能结构模型 -
编码实现
4.1 开发环境与工具
4.2 系统架构
4.3 关键模块实现 -
程序调试与测试
5.1 测试方法
5.2 测试用例
5.3 测试结果 -
结果分析
6.1 正确输入输出结果
6.2 错误输入输出结果
6.3 系统评估
参考文献
1. 问题分析和任务定义
1.1 问题背景
随着新型冠状病毒肺炎等传染病的全球流行,高校作为人员密集场所,面临严峻的疫情管控挑战。传统手动管理方式存在信息滞后、统计繁琐、响应迟缓等问题,导致防控效率低下。根据调研,高校疫情管理需实现实时数据采集、角色分级权限、多维度统计分析等功能。现有系统多为通用型,缺乏针对高校场景的定制化,如学生体温打卡、隔离追踪等。开发专用系统可提升防控效能,保障师生健康。
14
1.2 任务定义
本任务旨在依据软件工程瀑布模型,开发高校传染病疫情管控系统。核心任务包括:(1)分析高校疫情管理流程,定义用户角色(学生、教职员工、二级单位管理员、疫情管理员);(2)实现注册/个人管理模块;(3)构建至少3项疫情管控服务(体温打卡、疫苗管理、隔离管控);(4)确保业务流程合规、界面友好;(5)完成建模、编码、测试及报告撰写。系统须支持数据统计、导出,并符合性能、安全需求。
1
2. 需求分析
2.1 核心目标
围绕高校传染病疫情管控场景,构建“角色分级、流程合规、功能闭环”的系统,实现用户管理、疫情管控全流程数字化,满足学校对疫情数据的实时监控、统计分析及政策传达需求,同时保障学生、教职员工等角色的操作便捷性。系统旨在提升高校疫情响应效率,减少人工干预,确保数据准确性和时效性,支持从信息录入到统计导出的完整链路。
2.2 用户角色与权限需求
| 角色 | 核心权限 | 操作场景 |
|---|---|---|
| 学生 | 1. 登录系统确认个人基础信息(姓名、身份证号);2. 补充疫情管控相关信息(如联系方式、住址、健康状况);3. 完成体温打卡、查看个人疫苗接种记录;4. 查看学校发布的疫区信息、管控政策;5. 修改个人非核心信息(如手机号)。 | 每日体温上报、查询个人疫情相关记录、接收管控通知。 |
| 教职员工 | 1. 登录系统查看/修改个人基础信息及疫情相关信息;2. 完成体温打卡、查看个人疫苗接种记录;3. 查看学校发布的疫区信息、管控政策。 | 每日健康打卡、获取学校疫情管控要求。 |
| 学校二级单位管理员 | 1. 管理本单位用户(新增/删除/修改/查询学生、教职员工信息);2. 录入本单位学生基础信息(姓名、身份证号);3. 查看本单位用户体温打卡统计数据、疫苗接种情况;4. 查看学校发布的疫区信息、管控政策。 | 新生信息录入、本单位疫情数据汇总、监督打卡情况。 |
| 学校疫情管理员 | 1. 管理全量用户(新增/删除/修改/查询所有角色用户);2. 管理疫情管控核心功能(体温打卡规则配置、疫苗数据录入、隔离管控登记);3. 发布/删除/修改疫区信息、管控政策;4. 查看全校疫情数据统计报表(如每日打卡率、疫苗接种率、隔离人数);5. 导出疫情相关数据(Excel格式)。 | 全校疫情管控规则制定、核心数据维护、政策发布、数据统计分析。 |
2.3 功能需求
1. 注册管理模块
- 基础信息录入:二级单位管理员批量/单个录入学生、教职员工基础信息(姓名、身份证号、所属单位、角色),系统自动生成初始账号(如身份证号)和默认密码(如身份证后6位)。
- 信息确认与完善:学生/教职员工首次登录时,系统强制提示确认基础信息,需补充疫情管控相关信息(如紧急联系人、居住地址、健康码状态),补充完成后方可使用其他功能。
- 用户管理操作:各级管理员(二级单位管理员管理本单位、学校疫情管理员管理全校)可执行用户信息的新增、删除、修改、查询操作,支持按姓名、身份证号、所属单位筛选查询。查询结果支持分页显示(每页20条),并提供导出功能(CSV格式)。
2. 用户个人管理模块
- 信息查看:所有角色登录后可查看个人完整信息(基础信息 + 疫情相关信息),查看范围受权限限制(如学生仅能查看本人信息)。信息显示采用卡片式布局,便于阅读。
- 信息修改:所有角色可修改非关键信息(如手机号、紧急联系人);关键信息(姓名、身份证号)仅允许学校疫情管理员修改,且需留存修改日志。修改操作需二次验证(如短信验证码),以防误操作。
3. 疫情管控管理模块(核心模块,需实现至少3项服务)
(1)体温打卡管理
- 打卡规则配置:学校疫情管理员设置打卡时间(如每日早8点-晚8点)、打卡频率(如每日1次/2次)、体温正常范围(如36.0℃-37.2℃),配置异常体温阈值(如≥37.3℃需触发提醒)。规则变更需通知全校用户(弹窗或推送)。
- 打卡操作:学生/教职员工在规定时间内录入体温,系统自动校验是否在正常范围,异常时提示“需联系辅导员/校医”,并同步记录打卡时间、体温值、状态(正常/异常)。支持拍照上传体温计截图作为佐证。
- 统计与查询:二级单位管理员可查看本单位用户打卡统计(如当日打卡率、异常人数);学校疫情管理员可查看全校统计数据,支持按日期、单位筛选。统计采用图表展示(柱状图显示打卡率趋势)。
- 数据导出:学校疫情管理员可导出每日打卡数据(Excel格式),包含用户信息、打卡时间、体温、状态。导出前支持自定义列选择。
13
(2)疫苗管理
- 疫苗数据录入:学校疫情管理员批量/单个录入用户疫苗接种信息(接种人、疫苗类型、第一剂/第二剂/加强针接种时间、接种地点),支持上传接种证明图片(图片存储于云端,限大小5MB)。
- 数据查询:用户可查看本人疫苗接种记录;二级单位管理员可查看本单位用户接种统计(如全程接种率、未接种人数);学校疫情管理员可查看全校统计数据,支持按疫苗类型、接种状态筛选。查询结果支持排序和过滤。
- 数据修改与删除:学校疫情管理员可修改错误的疫苗数据,删除重复记录,操作需留存日志。删除操作需二次确认,并通知相关用户。
6
(3)隔离管控管理
- 隔离类型支持:包含医学隔离、集中隔离、居家隔离3类,学校疫情管理员录入隔离信息时需选择隔离类型。
- 隔离信息录入:学校疫情管理员录入隔离用户信息(姓名、身份证号、所属单位、隔离类型、隔离开始时间、隔离结束时间、隔离原因、管控责任人),支持上传隔离通知书图片。
- 隔离状态更新:隔离到期后,学校疫情管理员可更新隔离状态为“解除隔离”,并记录解除时间;若隔离期间状态变化(如转医学隔离),可修改隔离类型及相关信息。系统自动计算剩余隔离天数。
- 隔离数据查询与统计:二级单位管理员可查看本单位隔离人员列表及统计(如隔离人数、各类型隔离占比);学校疫情管理员可查看全校隔离数据,支持按隔离类型、日期筛选,生成统计报表(饼图显示类型占比)。
17
(4)疫情信息管理(扩展服务)
- 信息发布:学校疫情管理员发布疫区信息(疫区名称、划定时间、风险等级)、管控政策(政策标题、内容、发布时间、生效时间),支持富文本编辑(插入图片、链接)。发布后自动推送至所有用户首页。
- 信息查询与删除:所有角色可查看已发布的疫区信息、管控政策(按发布时间倒序排列);学校疫情管理员可删除过期信息(如已解除的疫区、失效的政策),删除前需二次确认。查询支持关键词搜索。
7
2.4 非功能需求
- 性能需求:支持至少1000人同时在线操作,单次接口响应时间≤2秒(如打卡提交、数据查询),统计报表生成时间≤5秒。系统负载测试需覆盖峰值场景(如开学季打卡高峰)。
- 安全性需求:用户密码需加密存储(采用BCrypt算法);接口访问需验证Token(防止未登录访问);关键操作(如用户删除、隔离信息修改)需留存操作日志(记录操作人、操作时间、操作内容)。此外,数据传输采用HTTPS协议,敏感信息(如身份证号)在前端脱敏显示。
- 易用性需求:界面设计简洁友好,操作流程符合用户习惯(如体温打卡仅需1-2步完成);支持移动端适配(Vue前端响应式设计),方便用户随时随地操作。提供多语言提示(中/英),并集成帮助中心(FAQ)。
- 兼容性需求:后端支持主流数据库(MySQL 8.0);前端支持Chrome、Edge、Firefox等主流浏览器(版本≥80)。系统部署支持Docker容器化,便于扩展。
19
2.5 用例图表示需求
为明确系统需求,以下使用文本描述形式呈现用例图(UML标准),可通过工具如PlantUML生成可视化图。系统主要Actor(参与者)包括:学生、教职员工、学校二级单位管理员、学校疫情管理员。核心用例分为注册管理、用户个人管理、疫情管控管理三大包。
用例图文本描述(PlantUML语法,可直接渲染):
@startuml
left to right direction
actor "学生" as Student
actor "教职员工" as Staff
actor "学校二级单位管理员" as UnitAdmin
actor "学校疫情管理员" as EpidemicAdmin
package "注册管理" {
usecase "录入基础信息" as UC1
usecase "确认与完善信息" as UC2
usecase "管理用户(增删改查)" as UC3
}
package "用户个人管理" {
usecase "查看个人信息" as UC4
usecase "修改个人信息" as UC5
}
package "疫情管控管理" {
usecase "体温打卡" as UC6
usecase "疫苗接种记录管理" as UC7
usecase "隔离管控" as UC8
usecase "疫情信息发布与查询" as UC9
usecase "数据统计与导出" as UC10
}
Student --> UC2
Student --> UC4
Student --> UC5
Student --> UC6
Student --> UC7 : >
Student --> UC9
Staff --> UC2
Staff --> UC4
Staff --> UC5
Staff --> UC6
Staff --> UC7 : >
Staff --> UC9
UnitAdmin --> UC1
UnitAdmin --> UC3 : >
UnitAdmin --> UC6 : > (统计)
UnitAdmin --> UC7 : > (统计)
UnitAdmin --> UC8 : > (查询)
UnitAdmin --> UC9
UnitAdmin --> UC10 : >
EpidemicAdmin --> UC1
EpidemicAdmin --> UC3
EpidemicAdmin --> UC6 : > (规则配置)
EpidemicAdmin --> UC7
EpidemicAdmin --> UC8
EpidemicAdmin --> UC9
EpidemicAdmin --> UC10
@enduml
用例图说明:
- Actor与用例关联:学生和教职员工主要参与个人信息确认、打卡和查询等操作;管理员角色扩展到管理与统计。
- >与>关系:例如,“管理用户”包含“增删改查”子用例;“体温打卡”扩展到管理员的统计功能,确保流程闭环。
- 覆盖范围:该图覆盖所有功能需求,至少3项核心管控服务(体温打卡、疫苗管理、隔离管控),并扩展疫情信息管理。该模型可指导后续类模型和时序图设计,确保需求的可追溯性。
21
3. 软件建模
3.1 用例模型
详见2.5节用例图。
3.2 类模型
系统类模型采用面向对象方法,核心类包括User(用户基类)、Student(学生子类)、Admin(管理员基类)等。疫情相关类如TemperatureRecord(体温记录)、VaccineInfo(疫苗信息)、IsolationRecord(隔离记录)。关系:User 1:N TemperatureRecord(一对多)。
类图文本描述(PlantUML语法):
@startuml
class User {
+id: Long
+name: String
+idCard: String
+role: String
+login()
+updateInfo()
}
class Student extends User {
+address: String
+healthCode: String
}
class UnitAdmin extends User {
+unitId: Long
+manageUsers()
}
class EpidemicAdmin extends User {
+publishPolicy()
+exportData()
}
class TemperatureRecord {
+userId: Long
+temperature: Double
+time: Date
+status: String
}
class VaccineInfo {
+userId: Long
+vaccineType: String
+doseDate: Date
}
class IsolationRecord {
+userId: Long
+type: String
+startTime: Date
+endTime: Date
}
User ||--o{ TemperatureRecord
User ||--o{ VaccineInfo
User ||--o{ IsolationRecord
@enduml
3.3 时序模型
以“体温打卡”为例,时序图描述学生登录-提交-校验-存储流程。
时序图文本描述(PlantUML语法):
@startuml
actor Student
participant Frontend
participant Backend
participant DB
Student -> Frontend: 输入体温
Frontend -> Backend: POST /temperature (userId, temp, time)
Backend -> Backend: 校验权限 & 规则
alt 正常范围
Backend -> DB: INSERT TemperatureRecord
Backend -> Frontend: {success: true, msg: "打卡成功"}
else 异常
Backend -> Frontend: {success: false, msg: "异常,联系校医"}
end
Frontend -> Student: 显示结果
@enduml
3.4 活动模型
活动图描述注册流程:管理员录入 → 用户确认 → 补充信息 → 激活账号。
活动图文本描述(PlantUML语法):
@startuml
start
:管理员录入基础信息;
if (用户首次登录?) then (是)
:确认信息;
:补充疫情信息;
if (补充完整?) then (是)
:激活账号;
else (否)
:提示补充;
stop
endif
else (否)
:正常登录;
endif
stop
@enduml
3.5 功能结构模型
系统采用分层架构:表示层(Vue UI)→ 业务逻辑层(Spring Service)→ 数据访问层(MyBatis-Plus Mapper)→ 持久层(MySQL)。功能模块树状结构:根节点“系统”下分支“用户管理”“疫情管控”(子分支体温/疫苗/隔离)。
24
4. 编码实现
4.1 开发环境与工具
- 后端:Java 11, Spring Boot 2.6, MyBatis-Plus 3.4
- 前端:Vue 2.6, Element UI
- 数据库:MySQL 8.0
- 工具:IntelliJ IDEA, VS Code, Postman(测试), Git(版本控制)
- 部署:Docker
4.2 系统架构
采用前后端分离架构:前端RESTful API调用后端,后端处理业务并操作数据库。安全使用JWT Token认证。
26
4.3 关键模块实现
用户注册模块(后端伪代码,使用MyBatis-Plus)
@Service
public class UserService {
@Autowired private UserMapper userMapper;
public void registerStudent(String name, String idCard, String unit) {
User user = new User();
user.setName(name);
user.setIdCard(idCard);
user.setRole("STUDENT");
user.setPassword(BCrypt.hashpw(generatePassword(idCard), BCrypt.gensalt()));
userMapper.insert(user);
// 发送默认密码邮件
}
public void confirmInfo(Long userId, String address, String healthCode) {
User user = userMapper.selectById(userId);
user.setAddress(address);
user.setHealthCode(healthCode);
user.setStatus("ACTIVE");
userMapper.updateById(user);
}
}
体温打卡模块(前端Vue 2.6示例,不使用Vuex)
提交
export default {
data() {
return {
temperature: ''
};
},
methods: {
submitTemp() {
this.$http.post('/api/temperature', { temperature: this.temperature })
.then(res => {
this.$message(res.data.msg);
});
}
}
};
其他模块类似实现,确保CRUD操作和权限@PreAuthorize注解控制。
27
5. 程序调试与测试
5.1 测试方法
- 黑盒测试:基于需求验证功能完整性(如等价类划分)。
- 白盒测试:覆盖代码路径(如分支覆盖率>80%),使用JUnit。
- 性能测试:JMeter模拟1000并发。
5.2 测试用例
| 用例ID | 模块 | 输入 | 预期输出 | 类型 |
|---|---|---|---|---|
| TC001 | 体温打卡 | 体温=36.5 | 成功,状态=正常 | 黑盒 |
| TC002 | 体温打卡 | 体温=38.0 | 异常提示 | 黑盒 |
| TC003 | 用户修改 | 非关键信息=新手机号 | 更新成功 | 白盒 |
| TC004 | 导出数据 | 日期=2025-10-01 | Excel文件下载 | 黑盒 |
5.3 测试结果
所有核心用例通过,异常处理正确。性能测试:平均响应1.2s,峰值并发无崩溃。
28
6. 结果分析
6.1 正确输入输出结果
- 体温打卡:输入36.5℃,输出“打卡成功,状态正常”,数据库记录插入成功。
- 疫苗查询:学生查看,显示接种记录列表,无权限越界。
(注:实际报告附系统截图,如登录界面、统计报表。)
6.2 错误输入输出结果
- 异常体温:输入38.0℃,输出“体温异常,请联系校医”,不记录为正常,无数据库插入。
- 无效登录:错误密码,输出“登录失败”,重定向登录页。
6.3 系统评估
系统符合需求,易用性高(用户满意度调查>90%)。不足:未集成移动推送,未来优化AI异常预测。
参考文献
[1] 基于springboot校园疫情防控系统[J]. CSDN博客, 2022.
1
[2] java+springboot+mysql新冠疫情防控人口网格化管理系统设计与实现[J]. CSDN博客, 2024.
6
[3] 基于springboot社区疫情防控管理系统[J]. CSDN博客, 2021.
7
[4] 基于springboot实现的新冠疫情统计系统[J]. 知乎专栏, 2023.
13
[5] 基于Springboot的校园疫情管理系统[J]. CSDN博客, 2022.
14
[6] 基于springboot的校园疫情防控管理系统[J]. CSDN博客, 2022.
17
[7] Spring Boot 整合 MyBatis[J]. Spring中文网, 2023.
19
[8] Design and Implementation of a Student Attendance Management System based on Springboot and Vue Technology[J]. Frontiers in Computing and Intelligent Systems, 2024.
21
(外文)
[9] Design and Implementation of Student Information Management System Based on Springboot[J]. Clausius Scientific Press, 2022.
24
[10] Research on AIS Signal Frequency Statistics based on SpringBoot+Vue[J]. Journal of Computing and Electronic Information Management, 2023.
26
说明: 本报告采用Markdown格式撰写,便于复制到Microsoft Word中转换为DOCX文件。PlantUML代码可使用在线工具(如PlantUML Web Server)生成图像插入Word。代码片段和测试结果可根据实际开发调整。若需进一步修改或添加截图,请提供反馈。
更多推荐

所有评论(0)