摘 要
随着企业规模的不断扩大,传统的考勤管理方式已无法满足企业日益增长的管理需求。传统的考勤方式容易出现数据遗漏、统计错误等问题,不仅增加企业管理成本,也降低管理工作效率。同时信息技术的快速发展,使得企业对信息安全的要求越来越高,尤其是涉及到员工个人信息时,如何确保数据的安全性和用户隐私保护成为了亟待解决的问题。因此,设计和实现一套更加便捷、安全和高效的单位考勤管理系统显得尤为必要。
本论文运用面向对象的分析与设计方法,结合UML统一建模语言进行需求分析和系统设计,确保系统具备良好的可维护性、扩展性和复用性。该系统采用Java语言的Spring Boot构建开发后端服务,并使用MySQL数据库进行数据存储和管理;同时借助B/S架构模式,使得系统不仅易于部署,而且方便用户随时随地访问。在安全方面,集成了Shiro框架以实现多层次细粒度的权限控制,构建基于角色的权限管理机制,为不同角色分配不同的访问权限,保障系统的安全性与用户信息的安全。最终,通过多次测试和迭代,优化系统性能与用户体验。
单位考勤管理系统的设计与实现,借助信息化手段为企业提供一个操作高效、数据安全且用户友好的考勤管理解决方案,实现考勤管理工作的规范化、系统化和数字化,提高信息处理的速度和准确性,同时增强企业管理的效率和透明度。本系统不仅提高了考勤管理的效率,有效减少了人工管理的错误与成本,也为未来进一步的功能扩展与系统升级奠定了坚实基础,同时为其他企业考勤管理系统的设计和开发提供参考借鉴,推动企业管理的数字化和信息化转型。
关键词:单位考勤管理系统;Spring Boot框架;Java语言;Shiro框架
Abstract
With the continuous expansion of enterprise scale, traditional attendance management methods can no longer meet the growing management needs of enterprises. The traditional attendance method is prone to problems such as data omission and statistical errors, which not only increase the management cost of enterprises, but also reduce the efficiency of management work. With the rapid development of information technology, enterprises have increasingly high requirements for information security, especially when it comes to employee personal information. How to ensure data security and user privacy protection has become an urgent problem to be solved. Therefore, it is particularly necessary to design and implement a more convenient, secure, and efficient unit attendance management system.
This paper applies object-oriented analysis and design methods, combined with UML unified modeling language for requirement analysis and system design, to ensure that the system has good maintainability, scalability, and reusability. The system uses Java language Spring Boot to build and develop backend services, and uses MySQL database for data storage and management; By utilizing the B/S architecture model, the system is not only easy to deploy, but also convenient for users to access anytime and anywhere. In terms of security, the Shiro framework is integrated to achieve multi-level and fine-grained permission control, and a role-based permission management mechanism is constructed to assign different access permissions to different roles, ensuring the security of the system and user information. Ultimately, through multiple tests and iterations, the system performance and user experience were optimized.
The design and implementation of a unit attendance management system provides enterprises with an efficient, secure, and user-friendly attendance management solution through information technology, achieving standardization, systematization, and digitization of attendance management work, improving the speed and accuracy of information processing, and enhancing the efficiency and transparency of enterprise management. This system not only improves the efficiency of attendance management, effectively reduces errors and costs in manual management, but also lays a solid foundation for further functional expansion and system upgrades in the future. At the same time, it provides reference and inspiration for the design and development of attendance management systems in other enterprises, promoting the digital and information transformation of enterprise management.
Keywords:Unit Attendance Management System; Spring Boot framework; Java language; Shiro framework
1设计目标
1.1研究背景
随着全球经济的发展和企业运营模式的变化,企业对人员管理的重视程度日益提高。在这一过程中,考勤管理作为企业人力资源管理的重要组成部分,直接关系到员工的工作效率、企业的成本控制和整体运营水平。然而,传统考勤管理方式如纸质签到、手动记录等,已难以适应现代企业快速发展的需求。传统的考勤方式多依赖纸质记录或简单的电子表格,容易出现数据遗漏、信息传递滞后以及数据隐私泄露等问题,影响到企业的日常员工管理和决策工作。信息技术的迅猛进步,为考勤管理系统的智能化、自动化提供了新的解决思路。越来越多的企业开始寻求通过数字化手段来提升考勤管理的效率和准确性,以实现更为高效的考勤管理。在这一背景下,利用Spring Boot、Shiro等现代开发技术,可以构建出功能更为完善、使用体验更优的考勤管理系统,既能满足企业当前的管理需求,又具备灵活的扩展性,以应对未来可能出现的管理挑战。
1.2研究意义
本研究采用Java的Spring Boot框架结合Shiro技术实现一套高效、便捷且安全的单位考勤管理系统,以更好地解决传统考勤管理中的各类问题,为企业提供高效、便捷、安全的考勤管理方案。该系统的研发,借助信息化手段实现系统化的考勤管理,减少了人工操作的繁琐,降低了出错率,提高了考勤数据的准确性和实时性,有效提升管理效率。系统利用Shiro框架进行严格的权限管理,实现多层次权限控制,提高数据安全性,有效保护企业及员工的隐私和数据安全,确保信息的可靠性。实现数据驱动决策,通过系统的实时数据统计分析功能,能够为企业提供有效的决策依据,帮助管理层进行合理的资源配置和人员安排。通过部署和实施考勤管理系统,能够推动企业的整体信息化进程,推动企业管理的数据化转型,提高企业管理的现代化水平。本研究不仅为企业考勤管理提供了一种创新方法,也为相关领域和类似管理系统的后续研究与应用提供了参考借鉴。
1.3国内外研究现状
1.3.1国外研究现状
国外方面,关于考勤管理系统的研究与实践相对成熟,各大企业已经成功应用了信息化的考勤管理方式,如TSheets和Kronos等软件提供了全面的考勤管理解决方案,不仅支持传统的打卡考勤,还能集成项目管理、员工考勤分析等功能。其中Kronos公司推出的考勤系统还支持移动考勤,员工可通过手机打卡,并提供实时的考勤分析和报告功能,以帮助企业优化人员安排。除了基本的考勤功能外,国外研究更多地关注于系统的智能化和人性化设计,例如通过大数据分析预测员工的工作模式,或是结合AI技术实现智能排班等功能。例如,IBM开发的Watson Analytics运用了人工智能和大数据技术,以实现更智能的人力资源管理,能够实时分析员工的出勤情况和工作效率,为认识员工工作习惯和优化管理提供支持。同时,国外的研究特别强调数据安全和个人信息保护,严格遵循如GDPR等法律法规,确保用户数据的安全性。
1.3.2国内研究现状
近年来,国内也在积极研发和应用考勤管理系统,通过信息化手段来提升考勤管理效率,并积极探索如何利用利用如RFID、指纹识别和面部识别等生物识别技术来提升签到效率和准确性。各大高校和大型企业也纷纷开发专属的考勤管理系统,以满足特定需求。基于Web或移动平台的系统也逐渐普及,增强了系统的可访问性和灵活性。以钉钉和企业微信为代表的应用软件,不仅提供了考勤打卡功能,还融合了视频会议、在线办公等多种功能,为企业提供了综合的管理解决方案。同时,钉钉的考勤管理功能能够支持地理位置打卡,确保员工实际在岗情况的准确记录。然而,在安全技术和用户隐私保护方面,国内的研究仍有待加强,虽然国内部分研究涉及到了数据加密和权限控制,但对于防止数据泄露、保障用户隐私的具体措施仍不够全面和深入,特别是在遵守严格的法律法规以确保用户数据安全方面存在不足。
虽然国内外在考勤管理系统的开发和应用上已取得了一定的进展,但针对中小企业的可定制化、易操作性较强且安全性高的考勤管理系统仍有进一步发展的潜力。本研究可以填补这一空白,以满足市场对高效安全考勤管理的需求。
1.4主要研究内容
本研究主要聚焦于设计与实现一个基于SpringBoot框架的单位考勤管理系统,通过信息化手段优化企业内部的考勤管理流程,提高工作效率,并确保数据的安全性和用户隐私保护。在设计单位考勤管理系统的过程中,运用面向对象的分析与设计方法,通过调研分析用户需求,以明确系统功能模块,设计出符合用户需求的系统架构和界面。针对员工用户和管理员两大对象,系统实现了包括登录、后台首页、系统用户管理、部门信息管理、职位信息管理、公告通知管理、签到制度管理、假期信息管理、信息通知管理、规章制度管理、考勤信息管理、出差考勤管理、调休信息管理、请假信息管理、加班信息管理、班次制度管理、问卷调查管理、权限管理等功能,能够有效支持整个企业考勤管理业务,提升管理效率和用户体验。本单位考勤管理系统选择SpringBoot作为基础开发框架,简化了新Spring应用的初始搭建过程及后续开发工作。采用Shiro框架实现细粒度的权限控制,确保系统的安全性。使用Java语言编写业务逻辑利用Java语言编写业务逻辑,使用MySQL数据库存储数据,提供稳定高效的数据支持。整个系统采用了B/S架构模式,便于部署和维护。该设计方案能够充分利用SpringBoot框架的灵活性和可扩展性,快速构建一个易于维护和升级,适应不同规模的企业需求的系统。在安全方面,集成了Shiro框架来实现基于角色的访问控制(RBAC),实施严格的访问控制策略,确保只有授权人员才能访问特定的信息。此外,采用数据加密技术保障数据传输的安全性,防止敏感信息泄露。同时,通过严格的会话管理和访问控制策略,进一步加强系统的安全性。为了提升用户体验,系统界面设计简洁直观,易于操作。同时,针对移动办公的需求,优化了系统的响应式设计,使得用户可以通过各种设备便捷地访问系统。系统的开发完成后,进行了全面的测试,以确保系统的稳定性和可靠性,并通过收集用户的反馈意见,不断优化系统性能和功能。本研究的成功实现不仅解决了传统考勤方式中存在的效率低下、数据不准确等问题,还通过引入先进的信息技术和安全措施,为企业提供了一个高效、安全、易用的考勤管理解决方案。
2 相关技术介绍
2.1SpringBoot框架
Spring Boot是一个用于构建微服务的Java框架,简化了Spring应用程序的开发和部署过程[1]。Spring Boot通过自动配置和约定优于配置的理念,简化了Spring应用程序的开发过程,使开发者可以更快地构建和部署应用程序;拥有丰富的生态系统,如Spring Cloud、Spring Security等,可以满足各种企业级应用的需求[2]。在单位考勤管理系统中,Spring Boot可以帮助开发团队快速搭建后端服务,并实现各种功能模块的集成和管理。
2.2Java语言
Java是一种跨平台的编程语言,广泛用于开发各种类型的应用程序,包括Web应用、移动应用和大型软件系统。在单位考勤管理系统中,Java通常用于后端开发,提供强大的处理能力和稳定性[3]。同时Java是一种面向对象的编程语言,支持封装、继承和多态等特性,使代码更易于维护和重用[4]。还拥有丰富的标准库和第三方框架,如Spring、Hibernate等,可以大大提高开发效率。
2.3MySQL数据库
MySQL是一种流行的开源关系型数据库管理系统,用于存储和管理数据[5]。在单位考勤管理系统中,MySQL可以用于数据存储、数据查询和数据管理等方面,用户可以免费使用和修改源代码,为平台提供可靠和高性能的数据库支持[6]。MySQL支持多种存储引擎,如InnoDB和MyISAM,可以根据不同的应用场景选择合适的存储引擎,以提高性能;提供了多种数据安全机制,如用户权限管理、数据加密和备份恢复等,确保数据的安全性。
2.4B/S模式
B/S模式(Browser/Server模式)是一种网络应用架构,其中浏览器(Browser)作为客户端与服务器(Server)进行通信。这种模式使用户可以通过普通的Web浏览器访问应用程序,而无需安装额外的客户端软件[7]。用户通过浏览器发送请求,服务器接收并处理这些请求,然后将结果返回给浏览器显示给用户。在单位考勤管理系统中,Spring Boot结合B/S模式的优势包括跨平台的兼容性,用户可以在不同操作系统和设备上访问应用程序[8]。此外,维护和部署也更为简便,并且能够实现较高的安全性,因为服务器端控制了应用程序和数据的访问权限。
2.5Shiro框架
Apache Shiro是一个灵活且强大的Java安全框架,提供了认证、授权、加密和会话管理等功能[9]。它设计简洁、易于使用,支持多种身份验证方式(如用户名/密码和社交登录)并且可以通过扩展实现自定义功能。同时Shiro允许开发者进行基于角色和权限的细粒度控制,适用于Web应用和非Web应用。Shiro的会话管理功能使得在各种应用中合理管理用户会话成为可能,极大地增强了应用的安全性。本单位考勤管理系统通过Shiro框架实现权限管理,以保障系统的安全性和数据隐私。
3 系统需求分析
3.1可行性分析
3.1.1技术可行性
从技术角度来看,Spring Boot作为一种轻量级、快速构建的Java框架,能够提高开发效率,降低系统的复杂程度,易于维护和升级。结合MySQL作为关系型数据库,能够支持平台数据的存储与管理,保障系统的稳定性和高效性。同时,集成了Shiro框架来实现基于角色的访问控制(RBAC),以保证不同用户只能访问其权限范围内的资源,确保系统的安全性。因此,本系统具有技术可行性。
3.1.2经济可行性
从经济角度来看,基于Spring Boot搭建单位考勤管理系统的投入成本相对较低,因为Spring Boot本身是一个免费、开源的框架,可以节省开发成本。同时,使用MySQL作为数据库也具有成本效益高的优势。因此,本系统具有经济可行性。
3.1.3操作可行性
从操作角度来看,Spring Boot的简洁性和高度集成的特点使得系统的部署和运行相对简单,容易维护和管理的同时,能够提供一个界面直观友好和操作简单高效的系统,能满足用户的各项要求,方便用户快速上手使用。因此,本系统具有操作可行性。
3.2系统功能需求
本单位考勤管理系统设计分为两个主要用户角色:员工用户和管理员。以下是对每个角色的功能需求的详细描述。
系统员工用户具体功能说明如下所示。
- 登录:提供员工用户(员工账户由管理员添加)登录功能,确保只有授权的员工用户可以访问系统后台,保障系统安全。
- 后台首页:展示员工用户的个人信息和相关操作入口,方便员工用户快速进行管理和监控。
- 部门信息管理:实现部门信息的查阅功能,支持员工用户搜索和浏览部门信息。
- 职位信息管理:提供职位信息的查阅功能,允许员工用户查询和查看职位信息详细内容。
- 公告通知管理:实现部门信息的查阅功能,支持员工用户搜索和浏览公告通知信息,可下载相关附件。
- 签到制度管理:实现签到制度的查阅功能,支持员工用户搜索和浏览签到制度信息。
- 假期信息管理:提供假期信息的查阅功能,允许员工用户搜索和浏览假期信息。
- 信息通知管理:实现信息通知的查阅功能,支持员工用户搜索和浏览信息通知。
- 规章制度管理:提供规章制度的查阅功能,允许员工用户搜索和浏览规章制度,支持下载制度文件。
- 考勤信息管理:实现考勤信息的查阅功能,支持员工用户搜索和浏览考勤信息。
- 出差考勤管理:提供出差考勤的查阅功能,允许员工用户搜索和浏览出差考勤信息。
- 调休信息管理:实现调休信息的查阅功能,支持员工用户搜索和浏览调休信息。
- 请假信息管理:提供请假信息的管理功能,允许员工添加新的请假信息,搜索和浏览自己的请假信息,可确认请假信息审核情况。
- 加班信息管理:实现加班信息的查阅功能,支持添加、编辑、查询和删除加班信息。
- 班次制度管理:提供班次制度的查阅功能,支持员工用户搜索和浏览班次制度。
- 资源管理:实现问卷调查资源的管理功能,支持员工用户搜索问卷调查,进行答题操作,查看评语。
管理员具体功能说明如下所示。
- 登录:提供管理员用户登录功能,确保只有授权的管理员可以访问系统后台,保障系统安全。
- 后台首页:展示管理员的个人信息和相关操作入口,提供数据分析统计图(包括考勤信息、出差考勤、加班信息等统计图),方便管理员快速进行管理和监控。
- 系统用户管理:允许管理员管理系统的用户(管理员、员工用户),包括添加新用户、编辑用户信息、重置密码等操作,以确保系统的权限管理和安全性。
- 部门信息管理:实现部门信息的管理功能,支持添加和更新部门信息,删除无效部门信息,提供搜索操作。
- 职位信息管理:提供职位信息的管理功能,允许新增、编辑、查询和删除职位信息。
- 公告通知管理:实现公告通知管理功能,允许管理员发布、更新、删除公告通知信息,支持上传相关附件,确保用户及时了解重要信息。
- 签到制度管理:实现签到制度的管理功能,支持发布和更新签到制度信息,删除无效签到制度,提供搜索操作。
- 假期信息管理:提供假期信息的管理功能,允许添加、编辑、查询和删除假期信息。
- 信息通知管理:实现信息通知的管理功能,可发布和编辑新的信息通知,支持搜索和删除信息通知。
- 规章制度管理:提供规章制度的管理功能,支持发布和更新规章制度信息,删除无效规章制度,提供搜索操作。
- 考勤信息管理:实现考勤信息的管理功能,支持添加新的考勤信息,搜索和浏览考勤信息,可删除无效或过期考勤信息,提供导出操作。
- 出差考勤管理:提供出差考勤的管理功能,允许新增、编辑、查询和删除出差考勤信息。
- 调休信息管理:实现调休信息的管理功能,支持添加、编辑、查询和删除调休信息。
- 请假信息管理:提供请假信息的管理功能,允许添加新的请假信息,搜索和浏览请假信息,可删除无效或过期请假信息,负责审核员工的请假信息。
- 加班信息管理:实现加班信息的管理功能,支持添加、编辑、查询和删除加班信息。
- 班次制度管理:提供班次制度的管理功能,支持发布和更新班次制度信息,删除无效班次制度,提供搜索操作。
- 资源管理:实现问卷调查资源的管理功能,可发布创建新的问卷调查,支持搜索和删除问卷调查信息,提供题库、答题、点评等操作。
- 权限管理:提供权限管理功能,支持设置和修改系统用户的增改删查等权限内容。
系统整理功能用例图如下所示。

图3-1 单位考勤管理系统用例图
3.3用例规约
考勤信息管理用例允许管理员登录系统后可添加、修改、删除考勤信息,员工登录系统后可查看管理员发布的考勤信息内容,考勤信息管理用例的用例规约如下所示。
表3-1 考勤信息管理用例规约
| 用例名称 | 考勤信息管理 |
| 参与者 | 管理员、员工用户 |
| 前置条件 | 管理员、员工用户已登录系统并拥有相应权限 |
| 后置条件 | 考勤信息被成功添加、修改或删除,相关用户接收到考勤信息信息 |
| 基本流 | 1. 管理员或员工用户选择“考勤信息管理”功能。 2. 系统显示当前考勤信息列表。 3. 管理员选择“考勤信息添加”,输入相关信息并保存提交。 4. 系统确认保存考勤信息并更新数据库,并将新的考勤信息发送至员工用户。 5. 管理员可选择“修改”或“删除”考勤信息。 6. 系统确认后进行更新或移除操作。 |
| 备选流 | 3a. 当管理员新添加的考勤信息,信息不合要求时,系统显示错误信息并要求重新输入。 5a. 当管理员选择编辑已有请假信息时,修改信息不合要求时,系统显示错误信息并要求重新输入。 5b. 当管理员选择删除考勤信息时,未确认删除,系统不进行删除。 |
请假信息管理用例允许员工用户和管理员登录系统后可添加、修改、删除请假信息,同时管理员可以审核员工的请假信息,请假信息管理用例的用例规约如下所示。
表3-2 请假信息管理用例规约
| 用例名称 | 请假信息管理 |
| 参与者 | 管理员、员工用户 |
| 前置条件 | 管理员、员工用户已登录系统并拥有相应权限 |
| 后置条件 | 请假信息被成功添加、修改或删除,相关用户接收到请假信息并进行审核 |
| 基本流 | 1. 管理员或员工用户选择“请假信息管理”功能。 2. 系统显示当前请假信息列表。 3. 管理员或员工用户选择“请假信息添加”,输入相关信息并保存提交。 4. 系统确认保存请假信息并更新数据库,并将新的请假信息发送至管理员处。 5. 管理员或员工用户可选择“修改”或“删除”请假信息。 6. 系统确认后进行更新或移除操作。 7. 管理员可“审核”员工用户添加的请假信息,更新审核状态并保存提交。 8. 系统确认审核信息并更新数据库,并将审核情况发送给相应用户。 |
| 备选流 | 3a. 当管理员或员工用户新添加的请假信息,信息不合要求时,系统显示错误信息并要求重新输入。 5a. 当管理员或员工用户选择编辑已有请假信息时,修改信息不合要求时,系统显示错误信息并要求重新输入。 5b. 当管理员或员工用户选择删除请假信息时,未确认删除,系统不进行删除。 7a. 当管理员选择审核提交的请假信息时,审核信息不合要求时,系统显示错误信息并要求重新输入。 |
资源管理用例允许管理员登录系统后发布、修改和删除问卷调查,员工用户登录系统后可查看发布的调查问卷,并进行答题,问卷调查管理用例的用例规约如下所示。
表3-3 问卷调查管理用例规约
| 用例名称 | 问卷调查管理 |
| 参与者 | 管理员、员工用户 |
| 前置条件 | 管理员、员工用户已登录系统并拥有相应权限 |
| 后置条件 | 问卷调查被成功添加、修改或删除,相关用户接收到问卷调查并进行答题 |
| 基本流 | 1. 管理员或员工用户选择“问卷调查管理”功能。 2. 系统显示当前问卷调查列表。 3. 管理员选择“问卷调查添加”,输入相关信息并保存提交。 4. 系统确认保存问卷调查并更新数据库,并将新的问卷调查发送给相应用户。 5. 管理员可选择“修改”或“删除”问卷调查。 6. 系统确认后进行更新或移除操作。 7. 员工用户可选择问卷调查,进行答题并保存提交。 8. 系统确认保存答题信息并更新数据库,并将答题情况发送给管理员。 9. 管理员可查看员工用户答题情况,编辑评语并保存提交。 8. 系统确认保存评语信息并更新数据库,并将信息反馈给员工用户。 |
| 备选流 | 3a. 当管理员新添加的问卷调查,信息不合要求时,系统显示错误信息并要求重新输入。 5a. 当管理员选择编辑已有问卷调查时,修改信息不合要求时,系统显示错误信息并要求重新输入。 5b. 当管理员选择删除问卷调查时,未确认删除,系统不进行删除。 7a. 当员工用户选择答题时,答题信息不合要求时,系统显示错误信息并要求重新输入。 |
权限管理用例允许管理员登录系统后可设置、分配和更新用户组的权限信息,权限管理用例的用例规约如下所示。
表3-4 权限管理用例规约
| 用例名称 | 权限管理 |
| 参与者 | 管理员 |
| 前置条件 | 管理员已登录系统并拥有相应权限 |
| 后置条件 | 用户权限被成功分配、更新或删除,相关用户权限变更 |
| 基本流 | 1. 管理员选择“权限管理”功能。 2. 系统显示当前权限列表。 3. 管理员选择某一用户进行权限修改,并保存提交。 4. 系统确认保存权限并更新数据库。 |
| 备选流 | 3a. 若权限设置无效,系统提示错误并不保存 |
3.4非功能性需求分析
在设计和实现基于SpringBoot的单位考勤管理系统时,非功能性需求是确保系统在实际操作中有效、可靠和用户友好的重要组成部分。下面是一些关键的非功能性需求分析。
性能,系统应在大多数操作中实现响应时间不超过2秒。对于高并发操作,响应时间应控制在3秒以内。 系统应能支持至少100个用户同时在线进行记录和查询操作。
可用性:系统应至少保持99.5%的可用性,确保用户能够随时访问。系统界面设计应遵循用户体验的最佳实践,确保用户可以方便地完成日常管理任务。
安全性:系统必须采用加密技术保护用户数据,防止敏感信息泄露。不同角色应具有不同的权限,确保数据只能由授权用户访问和修改。
可靠性:系统应实现定期自动备份数据,确保数据在意外情况下不会丢失;同时应具备快速恢复能力,在发生故障时可以在短时间内恢复正常服务。
可维护性:系统代码应遵循编程规范,易于理解和维护,便于后期功能扩展和Bug修复;并提供完善的系统文档,包括系统架构文档、用户手册和API文档。
可扩展性:系统设计应支持未来功能扩展,采用模块化的设计,以便于后续技术的更新和替换。
兼容性:系统界面应兼容主流浏览器(如Chrome、Firefox、Safari等),并移动设备支持,应兼容移动设备,提供响应式设计,确保在手机和平板上良好的操作体验。
3.5考勤信息管理顺序图分析
3.5.1考勤信息管理
管理员登录后可在考勤信息管理功能界面,添加更新考勤信息,进入考勤信息添加界面,输入合规的考勤信息并添加,系统会显示新的考勤信息,并发送给相应用户。管理员添加考勤信息模块顺序图如下图所示。

图3-2 考勤信息添加顺序图
3.5.2请假信息管理
员工用户登录后可在请假信息管理功能界面,提交请假申请,进入请假信息添加界面,输入合规的请假信息并添加,系统会显示新的请假信息,并将请假申请发送至管理员处。用户添加请假信息模块顺序图如下图所示。

图3-3 请假信息添加顺序图
管理员登录后可在请假信息管理功能界面,对员工用户提交的请假信息进行审核,更新审核状态并编辑审核回复。管理员审核请假信息模块顺序图如下图所示。

图3-4 请假信息审核顺序图
3.5.3问卷调查管理
管理员登录后可在资源管理功能界面,添加更新问卷调查,进入问卷调查添加界面,输入合规的问卷调查并添加,系统会显示新的问卷调查,并发送给相应用户。管理员添加问卷调查模块顺序图如下图所示。

图3-5 问卷调查添加顺序图
员工用户登录后可在资源管理功能界面,选择问卷调查,进行答题并提交,系统会保存答题情况,更新数据库并发送给管理员。用户答题问卷调查模块顺序图如下图所示。

图3-6 问卷调查答题顺序图
3.5.4权限管理
管理员登录后可在权限管理功能界面,设置修改用户组权限,选择用户进入其权限修改界面,设置权限内容并保存,系统会更新改用户的系统权限。管理员设置权限模块顺序图如下图所示。

图3-7 权限设置顺序图
4 系统设计
4.1系统体系架构设计
系统架构设计是构建应用程序的骨架,定义了系统的组件、模块及其交互方式。本单位考勤管理系统的系统架构设计遵循分层架构原则,采用B/S架构,即浏览器/服务器架构,使得用户无需在本地安装客户端,通过Web浏览器直接访问系统,降低了用户的使用门槛,提高了系统的可维护性。具体主要分为表现层、业务逻辑层和数据访问层。表现层负责用户交互,通过JavaScript等技术实现动态页面;业务逻辑层采用Spring Boot处理业务逻辑、用户请求并进行数据处理;数据访问层通过MySQL实现数据的增删改查操作,保证数据的持久化及一致性。通过Shiro框架实现用户身份认证和授权,定义角色和权限,确保用户只能访问被授权的资源,以处理用户的登录、登出、会话管理等安全操作。通过上述分层架构设计,系统能够实现职责分离,各层之间通过清晰的接口进行交互,可以提高系统的可维护性、可扩展性和重用性,有助于在未来进行功能扩展或系统升级。
图4-1 系统架构图
4.2功能模块设计
功能模块设计是系统开发过程中的重要阶段,它旨在将系统划分为不同的模块,每个模块负责完成特定的功能或任务。单位考勤管理系统由多个功能模块组成,每个模块下又包含具体的功能操作。根据前文功能需求分析,可以得出功能模块图如下图所示。
图4-2 系统功能结构图
4.3数据库设计
4.3.1概念设计
E-R图有助于理清系统中的数据结构和关系,为后续的数据库表结构设计提供指导。在进行数据库设计之前,首先需要先绘制实体-关系(E-R)图。E-R图将帮助理清业务中的实体(Entity)及它们之间的关系(Relationship),从而为后续的数据库表设计提供基础。根据前文可以得出本单位考勤管理系统拥有多个实体,在此列举主要实体,各个实体之间联系总E-R图如下图所示。
图4-3 系统总体ER图
4.3.2逻辑设计
在E-R图确定后,接下来可以根据实体和关系的属性设计数据库表结构。在E-R图明确了实体和它们之间的关系后,接下来可以开始设计数据库表结构。每个实体对应一个数据库表,每个属性对应表中的字段。如下列表格所示,在此列举主要数据表。
员工用户实体的属性转为员工用户表的对应字段,包括员工用户ID、员工工号、员工姓名、部门名称、职位名称、员工性别、审核状态、用户ID、创建时间、更新时间等,员工用户表逻辑结构如下表所示。
表4-1 employee_users(员工用户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | employee_users_id | int | 是 | 是 | 员工用户ID | |
| 2 | employee_no | varchar | 64 | 否 | 否 | 员工工号 |
| 3 | employee_name | varchar | 64 | 否 | 否 | 员工姓名 |
| 4 | department_name | varchar | 64 | 否 | 否 | 部门名称 |
| 5 | job_title | varchar | 64 | 否 | 否 | 职位名称 |
| 6 | employee_gender | varchar | 64 | 否 | 否 | 员工性别 |
| 7 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 8 | user_id | int | 是 | 否 | 用户ID | |
| 9 | create_time | datetime | 是 | 否 | 创建时间 | |
| 10 | update_time | timestamp | 是 | 否 | 更新时间 |
考勤信息实体的属性转为考勤信息表的对应字段,包括考勤信息ID、员工用户、员工姓名、部门名称、考勤标题、考勤日期、考勤状态、考勤情况、补签申请限制次数、创建时间、更新时间等,考勤信息表逻辑结构如下表所示。
表4-2 attendance_information(考勤信息)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | attendance_information_id | int | 是 | 是 | 考勤信息ID | |
| 2 | employee_users | int | 否 | 否 | 员工用户 | |
| 3 | employee_name | varchar | 64 | 否 | 否 | 员工姓名 |
| 4 | department_name | varchar | 64 | 否 | 否 | 部门名称 |
| 5 | attendance_title | varchar | 64 | 否 | 否 | 考勤标题 |
| 6 | attendance_date | date | 否 | 否 | 考勤日期 | |
| 7 | attendance_status | varchar | 64 | 否 | 否 | 考勤状态 |
| 8 | attendance_situation | text | 65535 | 否 | 否 | 考勤情况 |
| 9 | supplementary_signature_information_limit_times | int | 是 | 否 | 补签申请限制次数 | |
| 10 | create_time | datetime | 是 | 否 | 创建时间 | |
| 11 | update_time | timestamp | 是 | 否 | 更新时间 |
请假信息实体的属性转为请假信息表的对应字段,包括请假信息ID、员工用户、员工姓名、部门名称、请假标题、请假类型、开始时间、结束时间、请假原因、审核状态、审核回复、创建时间、更新时间等,请假信息表逻辑结构如下表所示。
表4-3 leave_information(请假信息)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | leave_information_id | int | 是 | 是 | 请假信息ID | |
| 2 | employee_users | int | 否 | 否 | 员工用户 | |
| 3 | employee_name | varchar | 64 | 否 | 否 | 员工姓名 |
| 4 | department_name | varchar | 64 | 否 | 否 | 部门名称 |
| 5 | leave_title | varchar | 64 | 否 | 否 | 请假标题 |
| 6 | leave_type | varchar | 64 | 否 | 否 | 请假类型 |
| 7 | start_time | datetime | 否 | 否 | 开始时间 | |
| 8 | end_time | datetime | 否 | 否 | 结束时间 | |
| 9 | reason_for_leave | text | 65535 | 否 | 否 | 请假原因 |
| 10 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 11 | examine_reply | varchar | 255 | 否 | 否 | 审核回复 |
| 12 | create_time | datetime | 是 | 否 | 创建时间 | |
| 13 | update_time | timestamp | 是 | 否 | 更新时间 |
测评问卷实体的属性转为测评问卷表的对应字段,包括测评问卷ID、员工工号、员工姓名、部门名称、职位名称、员工性别、审核状态、用户ID、创建时间、更新时间等,测评问卷表逻辑结构如下表所示。
表4-4 evaluation(测评问卷)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | exam_id | mediumint | 是 | 是 | 问卷id | |
| 2 | name | varchar | 32 | 是 | 否 | 问卷名称 |
| 3 | duration | int | 否 | 否 | 答题时长 | |
| 4 | status | varchar | 10 | 否 | 否 | 状态:启用、禁用 |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 |
题目实体的属性转为题目表的对应字段,包括问卷id、问卷名称、答题时长、状态:启用、禁用、创建时间、更新时间等,题目表逻辑结构如下表所示。
表4-5 evaluation_question(题目)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | exam_question_id | mediumint | 是 | 是 | 题目ID | |
| 2 | type | varchar | 20 | 否 | 否 | 类型 |
| 3 | title | varchar | 255 | 否 | 否 | 题目 |
| 4 | question_item | varchar | 500 | 否 | 否 | 选项 |
| 5 | question_order | int | 否 | 否 | 排序 | |
| 6 | exam_id | mediumint | 是 | 是 | 所属问卷 | |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
用户答题实体的属性转为用户答题表的对应字段,包括用户答题ID、用户ID、考试ID、分数、答案、点评状态、提交人、创建时间、更新时间、评语等,用户答题表逻辑结构如下表所示。
表4-6 evaluation_user_answer(用户答题)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | user_answer_id | mediumint | 是 | 是 | 用户答题ID | |
| 2 | user_id | mediumint | 是 | 否 | 用户ID | |
| 3 | exam_id | mediumint | 是 | 是 | 考试ID | |
| 4 | score | double | 否 | 否 | 分数 | |
| 5 | answers | text | 65535 | 否 | 否 | 答案 |
| 6 | comment_state | tinyint | 否 | 否 | 点评状态 | |
| 7 | nickname | varchar | 255 | 否 | 否 | 提交人 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 10 | comment_desc | varchar | 255 | 否 | 否 | 评语 |
用户权限管理实体的属性转为用户权限管理表的对应字段,包括授权ID、用户组、模块名、表名、页面标题、路由路径、父级菜单、父级菜单排序、位置、跳转方式、是否可增加、是否可删除、是否可修改、是否可查看、添加字段、修改字段、查询字段、跨表导航名称、跨表导航、配置、创建时间、更新时间等,用户权限管理表逻辑结构如下表所示。
表4-7 auth(用户权限管理)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | auth_id | int | 是 | 是 | 授权ID | |
| 2 | user_group | varchar | 64 | 否 | 否 | 用户组 |
| 3 | mod_name | varchar | 64 | 否 | 否 | 模块名 |
| 4 | table_name | varchar | 64 | 否 | 否 | 表名 |
| 5 | page_title | varchar | 255 | 否 | 否 | 页面标题 |
| 6 | path | varchar | 255 | 否 | 否 | 路由路径 |
| 7 | parent | varchar | 64 | 否 | 否 | 父级菜单 |
| 8 | parent_sort | int | 是 | 否 | 父级菜单排序 | |
| 9 | position | varchar | 32 | 否 | 否 | 位置 |
| 10 | mode | varchar | 32 | 是 | 否 | 跳转方式 |
| 11 | add | tinyint | 是 | 否 | 是否可增加 | |
| 12 | del | tinyint | 是 | 否 | 是否可删除 | |
| 13 | set | tinyint | 是 | 否 | 是否可修改 | |
| 14 | get | tinyint | 是 | 否 | 是否可查看 | |
| 15 | field_add | text | 65535 | 否 | 否 | 添加字段 |
| 16 | field_set | text | 65535 | 否 | 否 | 修改字段 |
| 17 | field_get | text | 65535 | 否 | 否 | 查询字段 |
| 18 | table_nav_name | varchar | 500 | 否 | 否 | 跨表导航名称 |
| 19 | table_nav | varchar | 500 | 否 | 否 | 跨表导航 |
| 20 | option | text | 65535 | 否 | 否 | 配置 |
| 21 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 22 | update_time | timestamp | 是 | 否 | 更新时间 |
5 系统实现
5.1考勤信息管理模块
在基于SpringBoot的单位考勤管理系统中,考勤信息管理模块通过后端直接渲染页面的方式实现。管理员登录系统后,进入“考勤信息管理”页面,该页面展示当前考勤信息列表,并提供添加、修改和删除考勤信息的功能。当管理员进行这些操作时,表单数据通过POST请求(添加)、PUT请求(修改)或DELETE请求(删除)发送至`AttendanceController`。`AttendanceController`接收请求后,调用`AttendanceService`层处理业务逻辑,包括数据的有效性校验,并通过`AttendanceMapper`(MyBatis接口)与MySQL数据库交互执行相应的SQL语句来完成数据的插入、更新或删除操作。
考勤信息管理界面如下图所示。
图5-1 考勤信息管理界面
考勤信息添加界面如下图所示。
图5-2 考勤信息添加界面
管理员添加考勤信息核心代码如下。
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
对于员工用户查看考勤信息,`AttendanceController`从数据库查询数据并将其传递给Thymeleaf模板引擎,动态生成包含最新考勤信息的HTML页面返回给用户。整个过程中,Apache Shiro框架用于权限控制,确保只有授权用户才能访问和操作考勤信息。这样,系统不仅实现了对考勤信息的基本管理功能,还保证了数据的安全性和操作的准确性。请假信息查看界面如下图所示。
图5-3 考勤信息查看界面
员工用户查看考勤信息核心代码如下。
@RequestMapping("/get_list")
public Map<String, Object> getList(HttpServletRequest request) {
Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));
return success(map);
}
@RequestMapping("/get_obj")
public Map<String, Object> obj(HttpServletRequest request) {
List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));
if (resultList.size() > 0) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("obj",resultList.get(0));
return success(jsonObject);
} else {
return success(null);
}
}
5.2请假信息管理模块
管理员和员工用户登录系统后,进入“请假信息管理”页面,该页面展示当前请假信息列表,并提供添加、修改和删除请假信息的功能。当管理员进行这些操作时,表单数据通过POST请求(添加)、PUT请求(修改)或DELETE请求(删除)发送至`AttendanceController`。`AttendanceController`接收请求后,调用`AttendanceService`层处理业务逻辑,包括数据的有效性校验,并通过`AttendanceMapper`(MyBatis接口)与MySQL数据库交互执行相应的SQL语句来完成数据的插入、更新或删除操作。请假信息管理界面如下图所示。
图5-4 请假信息管理界面
员工登录系统后,进入“请假信息管理”页面,填写请假标题、类型、开始结束时间、原因等信息并通过POST请求提交至`LeaveRequestController`,该控制器调用`LeaveRequestService`进行数据校验并使用`LeaveRequestMapper`将请假申请插入MySQL数据库。请假信息添加界面如下图所示。
图5-5 请假信息添加界面
员工用户添加请假信息核心代码如下。
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
管理员可在同一页面审核请假申请,通过PUT请求发送审核结果(批准或拒绝)至`LeaveRequestController`,进而更新数据库中的请假状态和审核意见。对于请假记录的修改或删除操作,系统同样通过相应的Controller和服务层逻辑与数据库交互完成。查看请假信息时,`LeaveRequestController`从数据库查询请假记录,并通过Thymeleaf动态生成包含最新请假信息的HTML页面返回给用户。整个过程中,Apache Shiro框架用于权限控制,确保只有授权用户才能访问和操作请假信息,从而保证了系统的安全性和数据的准确性。请假信息审核界面如下图所示。
图5-6 请假信息审核界面
管理员审核请假信息核心代码如下。
@RequestMapping("/get_list")
public Map<String, Object> getList(HttpServletRequest request) {
Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));
return success(map);
}
@PostMapping("/set")
@Transactional
public Map<String, Object> set(HttpServletRequest request) throws IOException {
service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
return success(1);
}
5.3问卷调查管理模块
管理员登录系统后,进入“问卷调查”页面,填写问卷标题、问题内容并通过POST请求提交至`SurveyController`,该控制器调用`SurveyService`进行数据校验并使用`SurveyMapper`将问卷信息插入MySQL数据库。管理员还可以查看员工的答题情况,通过`SurveyController`从数据库查询答题数据,并由Thymeleaf动态生成包含答题详情的HTML页面返回给用户。对于问卷的修改或删除操作,系统同样通过相应的Controller和服务层逻辑与数据库交互完成更新或删除操作。问卷调查管理界面如下图所示。
图5-7 问卷调查管理界面
管理员管理问卷调查核心代码如下。
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
@RequestMapping(value = "/del")
@Transactional
public Map<String, Object> del(HttpServletRequest request) {
service.delete(service.readQuery(request), service.readConfig(request));
return success(1);
}
public void delete(Map<String,String> query,Map<String,String> config){
QueryWrapper wrapper = new QueryWrapper<E>();
toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper);
baseMapper.delete(wrapper);
log.info("[{}] - 删除操作:{}",wrapper.getSqlSelect());
}
员工可以在同一页面查看和填写问卷,并通过POST请求提交答案至`SurveyController`,随后`SurveyService`处理这些回答并将它们保存到数据库。问卷调查答题界面如下图所示。
图5-8 问卷调查答题界面
员工用户问卷调查答题核心代码如下。
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
5.4权限管理模块
管理员登录系统后,进入“权限管理”页面,可查看当前所有用户的权限信息,并能为用户分配或修改角色及操作权限。管理员通过表单选择权限配置并提交POST请求至`PermissionController`,该控制器调用`PermissionService`进行数据校验并通过`PermissionMapper`更新MySQL数据库中的用户权限信息。对于查看用户权限,`PermissionController`从数据库查询权限数据,并通过Thymeleaf动态生成包含权限详情的HTML页面返回给用户。修改或删除用户权限的操作同样通过相应的Controller和服务层逻辑与数据库交互完成。
权限管理界面如下图所示。
图5-9 权限管理界面
权限修改界面如下图所示。
图5-10 权限修改界面
管理员修改权限核心代码如下。
@RequestMapping("/get_obj")
public Map<String, Object> obj(HttpServletRequest request) {
List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));
if (resultList.size() > 0) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("obj",resultList.get(0));
return success(jsonObject);
} else {
return success(null);
}
}
@PostMapping("/set")
@Transactional
public Map<String, Object> set(HttpServletRequest request) throws IOException {
service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
return success(1);
}
6 软件测试
6.1测试目的
系统测试的主要目的是确保软件系统的功能、性能和安全性符合设计要求。通过全面而系统的测试,发现系统潜在的缺陷和问题,以便在发布之前修复,确保系统功能的稳定性和可靠性,从而提高软件的整体质量,减少后续使用中的问题,以提升用户体验和满意度,增强用户信任。同时在早期发现并修复缺陷,可以避免后期因缺陷引起的高额维护成本,降低维护成本。
6.2测试方法
功能测试:验证系统的各项功能是否符合需求,包括考勤信息管理、请假信息管理、问卷调查管理、权限管理等模块。
性能测试:评估系统在高并发用户情况下的响应时间和稳定性,确保在实际工作负载下性能良好。
兼容性测试:测试系统在不同浏览器和设备上的表现,确保用户体验一致。
安全性测试:包括对输入的有效性检查、身份认证和授权等方面的测试,以确保系统可以抵御恶意攻击。
6.3测试用例
在系统的功能验证阶段,将对系统功能界面进行全面测试。具体而言,将模拟用户行为,输入各类数据并进行提交操作,随后仔细观察和分析每个页面的响应反馈。确保系统的每个功能模块按预期工作,用户能够顺利完成特定任务。
- 考勤信息管理模块功能测试
考勤信息管理模块测试主要测试考勤信息内容展示、添加、修改、删除及查询等操作是否正常。考勤信息管理功能测试用例设计如下表所示。
表6-1 考勤信息管理功能测试用例
| 测试编号 | 测试目的 | 用例描述 | 预期结果 | 实际结果 |
| TC001 | 验证考勤信息内容展示 | 测试考勤信息展示功能是否正确显示所有考勤信息内容 | 系统显示所有已添加的考勤信息内容 | 与预期一致 |
| TC002 | 验证考勤信息内容添加 | 测试添加一个新的考勤信息,输入合规信息并提交 | 系统提示“添加成功”消息,列表中显示新的考勤信息 | 与预期一致 |
| TC003 | 验证考勤信息内容添加 | 测试添加一个新的考勤信息,输入不合规信息(必填项不填)并提交 | 系统提示“信息错误”消息,添加失败 | 与预期一致 |
| TC004 | 验证考勤信息内容修改 | 测试修改已有考勤信息的内容,修改某一考勤信息内容并提交 | 系统提示“修改成功”,系统更新考勤信息内容 | 与预期一致 |
| TC005 | 验证考勤信息内容修改 | 测试修改已有考勤信息的内容,修改内容不合规 | 系统提示“信息错误”,修改考勤信息内容失败 | 与预期一致 |
| TC006 | 验证考勤信息内容删除 | 测试选择考勤信息内容点击删除,并确认删除 | 系统提示“删除成功”,列表中不再显示该考勤信息 | 与预期一致 |
| TC007 | 验证考勤信息内容删除 | 测试选择考勤信息内容点击删除,未确认删除 | 系统信息未被成功删除 | 与预期一致 |
| TC008 | 验证考勤信息内容查询 | 测试根据输入的关键字查询考勤信息内容 | 系统会显示输入的关键字下的所有考勤信息内容 | 与预期一致 |
- 请假信息管理模块功能测试
请假信息管理模块测试主要测试请假信息内容展示、添加、修改、删除及查询等操作是否正常。请假信息管理功能测试用例设计如下表所示。
表6-2 请假信息管理功能测试用例
| 测试编号 | 测试目的 | 用例描述 | 预期结果 | 实际结果 |
| TC001 | 验证请假信息内容展示 | 测试请假信息展示功能是否正确显示所有请假信息内容 | 系统显示所有已添加的请假信息内容 | 与预期一致 |
| TC002 | 验证请假信息内容添加 | 测试添加一个新的请假信息,输入合规信息并提交 | 系统提示“添加成功”消息,列表中显示新的请假信息 | 与预期一致 |
| TC003 | 验证请假信息内容添加 | 测试添加一个新的请假信息,输入不合规信息(必填项不填)并提交 | 系统提示“信息错误”消息,添加失败 | 与预期一致 |
| TC004 | 验证请假信息内容修改 | 测试修改已有请假信息的内容,修改某一请假信息内容并提交 | 系统提示“修改成功”,系统更新请假信息内容 | 与预期一致 |
| TC005 | 验证请假信息内容修改 | 测试修改已有请假信息的内容,修改内容不合规 | 系统提示“信息错误”,修改请假信息内容失败 | 与预期一致 |
| TC006 | 验证请假信息内容删除 | 测试选择请假信息内容点击删除,并确认删除 | 系统提示“删除成功”,列表中不再显示该请假信息 | 与预期一致 |
| TC007 | 验证请假信息内容删除 | 测试选择请假信息内容点击删除,未确认删除 | 系统信息未被成功删除 | 与预期一致 |
| TC008 | 验证请假信息内容查询 | 测试根据输入的关键字查询请假信息内容 | 系统会显示输入的关键字下的所有请假信息内容 | 与预期一致 |
| TC009 | 验证请假信息内容审核 | 测试审核提交的请假信息的内容,更新审核状态并提交 | 系统提示“审核成功”,系统更新审核状态 | 与预期一致 |
| TC010 | 验证请假信息内容审核 | 测试审核提交的请假信息的内容,审核内容不合规或未保存 | 系统提示“审核失败” | 与预期一致 |
- 问卷调查管理模块功能测试
问卷调查管理模块测试主要测试问卷调查内容展示、添加、修改、删除及查询等操作是否正常。问卷调查管理功能测试用例设计如下表所示。
表6-3 问卷调查管理功能测试用例
| 测试编号 | 测试目的 | 用例描述 | 预期结果 | 实际结果 |
| TC001 | 验证问卷调查内容展示 | 测试问卷调查展示功能是否正确显示所有问卷调查内容 | 系统显示所有已添加的问卷调查内容 | 与预期一致 |
| TC002 | 验证问卷调查内容添加 | 测试添加一个新的问卷调查,输入合规信息并提交 | 系统提示“添加成功”消息,列表中显示新的问卷调查 | 与预期一致 |
| TC003 | 验证问卷调查内容添加 | 测试添加一个新的问卷调查,输入不合规信息(必填项不填)并提交 | 系统提示“信息错误”消息,添加失败 | 与预期一致 |
| TC004 | 验证问卷调查内容修改 | 测试修改已有问卷调查的内容,修改某一问卷调查内容并提交 | 系统提示“修改成功”,系统更新问卷调查内容 | 与预期一致 |
| TC005 | 验证问卷调查内容修改 | 测试修改已有问卷调查的内容,修改内容不合规 | 系统提示“信息错误”,修改问卷调查内容失败 | 与预期一致 |
| TC006 | 验证问卷调查内容删除 | 测试选择问卷调查内容点击删除,并确认删除 | 系统提示“删除成功”,列表中不再显示该问卷调查 | 与预期一致 |
| TC007 | 验证问卷调查内容删除 | 测试选择问卷调查内容点击删除,未确认删除 | 系统信息未被成功删除 | 与预期一致 |
| TC008 | 验证问卷调查内容查询 | 测试根据输入的关键字查询问卷调查内容 | 系统会显示输入的关键字下的所有问卷调查内容 | 与预期一致 |
| TC009 | 验证问卷调查答题 | 测试选择问卷调查进行答题,信息合规并提交 | 系统提示“提交成功”,系统更新问卷调查答题信息 | 与预期一致 |
| TC010 | 验证问卷调查答题 | 测试选择问卷调查进行答题,信息不合规或未提交 | 系统提示“提交失败” | 与预期一致 |
- 权限管理模块功能测试
权限管理模块测试主要测试权限内容展示、修改及查询等操作是否正常。权限管理功能测试用例设计如下表所示。
表6-4 权限管理功能测试用例
| 测试编号 | 测试目的 | 用例描述 | 预期结果 | 实际结果 |
| TC001 | 验证权限内容展示 | 测试权限展示功能是否正确显示所有权限内容 | 系统显示所有已添加的权限内容 | 与预期一致 |
| TC002 | 验证权限内容修改 | 测试修改用户组权限内容,修改某一权限内容并提交 | 系统提示“修改成功”,系统更新权限内容 | 与预期一致 |
| TC003 | 验证权限内容修改 | 测试修改用户组权限内容,权限设置无效或未保存 | 系统提示“信息错误”,修改权限内容失败 | 与预期一致 |
| TC004 | 验证权限内容查询 | 测试根据输入的关键字查询权限内容 | 系统会显示输入的关键字下的所有权限内容 | 与预期一致 |
6.4安全测试
通过安全测试可以有效识别和修复系统潜在的安全威胁,保护应用程序及其用户的数据安全,提升单位考勤管理系统的安全性和用户数据保护能力。
- XSS攻击测试(跨站脚本攻击)
测试目的:确保系统能够防止用户输入中注入恶意脚本,保护用户的敏感信息。
测试方法:在用户名、密码、评论、反馈等输入框中输入含有脚本标签的内容,例如<script>alert('XSS')</script>。提交表单,观察系统是否直接在页面上渲染脚本,如果弹出警告框,说明系统存在XSS漏洞。检查系统的输入验证和输出编码是否完善,例如使用HTML实体转义,防止脚本执行。
- SQL注入测试
测试目的:检查系统的数据库查询是否易受SQL注入攻击。
测试方法:在登录页面的用户名和密码字段输入' OR '1'='1。提交表单,观察是否能够登录成功,或者返回的SQL错误信息。确保使用预编译SQL语句和ORM框架来防止SQL注入风险。
- CSRF攻击测试(跨站请求伪造)
测试目的:确保用户的操作不被未授权的请求所利用。
测试方法:检查每个敏感操作(如修改密码、提交申请)在请求中的CSRF令牌是否存在。尝试构造一个带有伪造的请求,通过一个第三方页面来发起敏感操作,观察系统是否拒绝该操作。
- 身份认证和授权测试
测试目的:验证系统的用户身份认证和角色权限控制是否实现。
测试方法:尝试使用未授权用户访问管理员页面,观察系统是否返回403禁止访问的响应。检查用户的角色权限是否正确,例如普通员工不能访问管理员管理功能。
- 文件上传漏洞测试
测试目的:确保用户不能上传恶意文件。
测试方法:尝试上传含有可执行代码的文件(如.php或.jsp文件)。检查系统是否能够识别和阻止此类文件的上传,确保只能上传安全类型的文件。
全部测试用例都已通过,且不存在漏洞,实现了本论文开始时所作要求和期望。本系统运行稳定,使用流畅,可以满足客户需求。试运行后进行系统评估,可以认为该系统达到预定的目标要求,能够满足用户的需求,也满足了系统开发前所作目标。系统在经过大量重复测试后运行十分稳定,安全实用,功能模块已经达到预定目标所需。在规定的时间内实现系统的大部分功能,且满足要求,节省开发成本,有助于提高科学管理水平,符合本人经济情况。
简而言之,经过严格的测试,可以发现该系统的功能和性能非常出色,它的精度、可靠性、稳健性都达到了极高的水平,而且它还支持快速、精细的点击操作,使用者的使用感受更加良好。此外,它还支持各种主流浏览器,满足不同的使用要求。
总 结
通过开发单位考勤管理系统,深刻体会到软件开发的完整流程。首先,在确定开发目标后,进行了详细的需求分析,明确了系统所需的各项功能。接下来,设计了系统的功能框架和数据库结构,包括实体和数据表的设计。随后,实现了各个功能模块的详细界面,并进行了全面的功能测试。尽管在这个过程中遇到了各种挑战,但通过反复分析和深入思考,借助相关文献和解决方案,成功地解决了这些问题,最终使单位考勤管理系统顺利运行。
虽然该系统在功能上基本满足了用户的需求,但仍有许多需要改进的地方。在接下来的开发阶段,计划进行以下改进:
用户界面设计:目前的操作页面虽然满足了简易操作的要求,但在多样化设计方面还有提升空间。将考虑引入更多丰富的设计元素,使界面更加美观和用户友好。
安全性能优化:针对系统安全性能的增强,需要进一步优化系统的整体防护能力。具体而言,将要对程序退出的安全性进行加强,确保在退出过程中不存在数据泄露或系统不稳定的风险。同时,对系统的并发处理能力进行升级,以确保在高并发场景下系统能够保持稳定的运行状态。
性能优化:在性能优化方面,将着重于对程序的数据结构和代码逻辑进行精细化调整。优化后的系统应具备快速处理大量事务的能力,显著缩短事务处理时间,从而提高整体工作效率。同时,致力于降低服务器资源的占用率,以实现资源的高效利用和成本的有效控制。
参考文献
- 张新海,朱祎.基于MVVM模式SpringBoot框架的高校信息化项目管理系统[J].信息技术与信息化,2024,(05):54-58.
- 李明,冯树栋,白宗文,等.基于SpringBoot的成果需求匹配系统设计与实现[J].延安大学学报(自然科学版),2024,43(01):90-95.DOI:10.13876/J.cnki.ydnse.230026.
- 张自平.基于Java Web组件技术的软件项目文档管理系统[J].信息记录材料,2024,25(05):172-174.DOI:10.16009/j.cnki.cn13-1295/tq.2024.05.073.
- 李千里,王玉静,李琪,等.基于Java的高职实训项目管理系统设计[J].软件,2024,45(06):106-108.
- 陈芳.基于MySQL数据库的数据录入系统设计研究[J].科技资讯,2024,22(20):35-37.DOI:10.16661/j.cnki.1672-3791.2405-5042-7194.
- 王希,戴靓婕.MySQL数据库技术在Web动态网页设计中的运用研究[J].软件,2024,45(07):77-79.
- 王志涛.基于B/S模式的项目管理信息系统开发与设计[J].办公自动化,2024,29(24):84-86.
- 徐厚友,梁理,郭昆,等.基于Vue的安全评价项目管理系统设计与开发[J/OL].工业安全与环保,1-6[2025-03-11].http://kns.cnki.net/kcms/detail/42.1640.X.20250306.1814.006.html.
- 杨媛媛.基于Shiro框架的项目管理系统设计与开发[D].南京邮电大学,2022.DOI:10.27251/d.cnki.gnjdc.2022.000637.
- 韦彩仁,张锐杭.基于Vue 3和SpringBoot的学生信息管理系统设计与实现[J].电脑编程技巧与维护,2024,(10):3-6+20.DOI:10.16184/j.cnki.comprg.2024.10.045.
- 王文静,国育家,贾康铖.基于Spring Boot的信息化项目管理系统的设计与实现[J].信息技术与信息化,2023,(11):113-116.
- 徐雪梅.学生考勤管理系统的设计和实现[J].科技风,2024,(33):40-41+70.DOI:10.19392/j.cnki.1671-7341.202433014.
- 郑丽颖.医院人事考勤管理系统信息化的应用[J].人力资源,2024,(20):70-71.
- Liu Y .Design and Implementation of a Student Attendance Management System based on Springboot and Vue Technology[J].Frontiers in Computing and Intelligent Systems,2024,8(1):91-97.
- 许梦微,王希胤.基于Shiro的加密机制研究[J].电脑知识与技术,2023,19(22):95-97.DOI:10.14004/j.cnki.ckt.2023.1236.
- 曹灿,李磊.基于Java Web的考勤系统的设计与实现[J].黑龙江科学,2023,14(02):41-43.
- Hongmei X ,Bojun Z ,Chenyu D .Design of the Student Attendance Management System Based on the Internet of Things Technology[J].Mobile Information Systems,2022,2022
- 钱俊亮,田卉.考勤管理系统的设计与实现[J].数字传媒研究,2022,39(05):53-56.
- 肖航,杨智,余茜.一种基于WEB技术的企业考勤管理系统[J].中国科技信息,2021,(15):52-54.
- 梁清华,胡安明.Apache Shiro框架在Web系统的安全应用研究[J].电脑知识与技术,2021,17(06):52-53.DOI:10.14004/j.cnki.ckt.2021.0420.
致 谢
这次毕业设计能够完成,最重要的就是来自指导老师的帮助,是导师不厌其烦的对我的论文及毕业设计提出非常有建设性的建议,我的毕设施能够完成离不开导师的帮助。在此,我对导师由衷的表示感谢。
其次要感谢大学四年里学院里所有的任课老师的教导,老师们在我整个大学四年里给予了我丰富的知识,让我能够在大学中不虚度光阴,踏踏实实的学习,没有这些老师不辞辛劳的教诲,我无法完成这四年的学业。
最后,我要感谢我的家人和同学们。感谢父母在物质与精神上给予我无限的支持和鼓励。感谢我的同学们,在论文写作期间,你们给予了我许多宝贵的建议和帮助,让我在学术研究的道路上不再孤单。
再次感谢所有在我大学生活中给予我帮助和支持的人们。您们的关怀和鼓励将永远铭刻在我的心中,成为我未来前行的动力。
由于自己的水平有限,毕设仍然存在着很大的缺陷,各位老师若提出意见,我会努力改正。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~
891

被折叠的 条评论
为什么被折叠?



