基于Spring Boot的在线学习系统的设计与实现

基于Spring Boot的在线学习系统的设计与实现

摘 要

在线学习系统是以大学传统线下教学方式不适应信息技术的迅速发展为背景,提高学习效率,解决传统教学问题,并且高效的实现教学信息化的一款软件系统。为了更好的实现对于教学和学生的管理,在分析研究时借鉴了很多成熟的在线学习系统,总结出自己具有特色的系统软件,本系统设计开发是基于Spring Boot框架的在线学习系统,为了更高效的在线学习系统提供了有力的方案。

本系统主要是对于学校师生的传统教学方式进行了一个改变,改用在线教育,突破了传统教育的瓶颈,解决了师生线上沟通问题,减少了纸质作业的繁琐,本系统在自己和朋友的努力宣传下,成功地在学院内小范围上线和使用了一段时间,最后统计的结果深受好评,达到了本系统一开始想要的结果,系统中地功能模块性能良好,可以比较好地满足日常学习的需要。本系统的成果开发不仅提高了自身的开发水平,同时也提高了教学效率和学生的学习兴趣。

第 1 章 引言

1.1 研究背景与意义

1.1.1 研究背景

随着日常社会中网络技术的快速发展,网络技术在我们的日常的生活中使用得十分广泛,特别是学校中的网络技术应用得最为广泛,在疫情肆虐的年代,线下学习变得不在实际,只有在计算机网络中寻求更好的解决办法,不断地研究和试验,让基于计算机和网络技术的在线学习系统能够诞生,并且成为了现代和未来教学管理工作的发展趋势。

传统的线下教学方式在社会发展中已无法满足教学发展的要求,而基于计算机和网络技术的学习系统可以快速地提供大量的学习资源,没有了传统教学的空间限制,我们可以随时随地可以学习,在线学习系统在近些年来不断地磅礴发展,现在已经完全突破了传统的教学瓶颈,向更加智能化的系统进发。

本系统是基于Spring Boot框架的在线学习系统,利用该系统可以解决由于线下传统教学得不便。比如:本在线学习系统能让学生改变对传统教学的看法,学生可以通过本系统具有的功能,自己进行各种学习任务或者其他功体验;与此同时,本系统也可以让教师脱离线下去走访学生,直接在线上进行交流和了解情况,进而选择加强管理,学生还可以通过系统的作业功能模块,进行在线完成作业,省去了纸质作业的麻烦。

1.1.2 研究意义

在线学习的环境下使得教师对于学生的管理效率得到了有效的提升,改变了传统的线下教学的方式,全方位予以在线学习交流的平台,让全体师生的教学体验更舒心。

在线学习系统是由4大要素组成:

教学资料:学习中使用到的资料,例如网络课本、整理的资料等。

软件平台:提供一个通过网路终端可以直接使用的软件平台,进行在线学习和管理。

硬件设备:手机或者电脑等终端设备。

网络设备:家用网络或者公用网络等。

对于本系统来说,开发建立的过程就是利用现代化的信息平台,将传统教学拉到网络平台,在一定的设备前提下,将学习过程中的管理网络便捷化。

总之,在线学习系统的全方位信息化能够非常有效的提高教学效率,能够有效的丰富学习资源,在原有的传统教学环境下,在线学习系统将不收地区限制,将教学和管理网络信息化。

1.2 国内外研究现状

从全球上和国内来看,从某种角度来看,对于在线学习的研究内容是随着时间的推移互联网的发展和传统专业教学的发展而逐渐发展起来并受到大家的关注。自互联网在线学习出现以来,在线学习系统的发展开始备受关注和重视,成为许多大学追求的热点,在研究方面也取得了很大的成就。

白晓晶和韩锡斌教授在发布中表示到:随着社会不断发展,在线学习系统从传统的教学中不断发展到在线学习,借助了不断发展的网络技术,通过网络信息化平台实现了现有的在线学习系统,在未来的发展中,在线学习也定会是随着社会发展不断完善的。金志霄教授在《基于微服务架构的在线学习系统的设计与实现》中表示到:由于传统教学下时间、空间以及书本教育资源的限制,我国传统的教育学习方式显然无法满足学生的日常学习需求,而在线学习的方式能带来极大的便利,因此在线学习的方式最终无疑会成为师生的最好选择。

对于国外学习系统的现状,我通过查询资料,以未来学校为例,总结了该校对于在线学习的不断研究。未来学校对于英语教学形式的研究持续了接近20年,最终开发了discovering English等英语在线学习系统,可见对于教学形式改变和在线学习转变的决心。

1.3 研究目的与研究内容

研究开发过程中可能会遇到的问题,解决并完善自身系统,提高系统的可用性、安全性和发展性。

如何解决不完全相同角色的登录账号问题:查看组合角色如何排序得到如何在不完全相同角色的信息管理下操作管理员权限并显示不同的启动页面。

如何解决连接MySQL数据库的问题。数据库数据的相对稳定性和人身安全问题。

系统启动页的设计和制作不可或缺,让系统菜单有一个方便的方法,有一个漂亮的外观,提高更好的交互体验。

开发的系统的研究现状及存在问题的研究内容及具体分析。

系统中各个子模块的契合程度,集成局域网连接信息技术,维护局域网连接信息技术的人身安全问题。

1.4 研究方法和研究思路

1.4.1研究方法

研究方法的种类有,调查法、实例研究法、定量法、定性法、归纳法、演绎法、分析法、合成法、科学法、比较法,不仅要了解各个方法的定义,还应掌握它们分别适用的领域。本文主要是运用了调查法、比较法、实例研究法。

1.调查法

主要使用问卷调查法,通过间接书面访问的方式,达到调研的目的,我主要是在问卷网上进行发布问卷,邀请朋友、同学进行填写。

2.比较法:

比较法就是将相似事物放在一起进行比较,找出它们相同和不同点,并寻找个中原因,这个方法有利于理解包含不同研究对象的整个领域。我主要是搜集一些相关的系统资料,对比他们的优缺点、共同点。吸收好的东西进行自己利用。

3.实例研究法

实证研究是指提出研究的人独自搜寻相关资料和例子,为了自己提出的假设进行研究。大量搜集往年在线学习系统的优越的地方,进行吸收改进,总结出自己的系统。

1.4.2研究思路

本论文的研究思路如图所示。

第 2 章 相关理论以及技术简介

2.1 C/S和B/S的区别

C/S架构,即Client/Server(客户端/服务器)架构,总体来说是一个两层架构,客户端和服务端两层架构。将任务分离,一部分到客户端,一部分到服务端,例如客户端主要用于查询和展示信息给用户,服务端则是提供接口和服务给客户端,降低了单个软件系统的巨大开销。管理操作需要在客户端上进行。客户端通常是我们使用的手机,服务端则是电脑服务器,电脑服务器进行系统运行,手机端访问相应的网址或者域名进行使用服务器系统的各种功能。客户端和服务器的软件程序不同。从某种角度来说,客户端是能够被计算机用户看到的,如果没有则访问,而服务器一方面是对于计算机用户应该需要的数据库。能够查询数据,管理信息,计算机用户能够在客户端进行特定的网上银行业务。也很讲,这种研发比较容易,怎么操作也比较简单,但是客户端用上几个月后,调整优化和维护就比较难了。

B/S架构,即浏览器和服务器架构设计。是由三层结构制成的。三层体系结构中的核心是组件对象模型。它由相互分隔开的表示层(view)、业务层(service)和数据层(dao也叫持久层)构成。B/S系统相对于C/S系统,省去了安装客户端的空间,无需安装,只要拥有一台终端在Web浏览器上访问相应的网址即可使用;这样的架构下所有的功能都在服务器上,也就是一台电脑服务器上。极大的简化了客户端带来的开发难度,使用起来也更加的方便,维护也比较简单,通过服务器安装MySQL数据库可以进行数据的交互。

2.2 Spring Boot框架技术

Spring Boot是Pivotal团队开发的一个崭新的,与众不同的结构框架,比Spring结构框架更小的结构框架,目的是简化Spring相当复杂的配置。使用注解更加的简洁方便,当然他自己进行了统一配置,脱离以XML繁琐的配置方式转向了注解的形式,极大的节约了开发环境配置时间。有了更加放白内的注解开发的方式,Spring Boot在近几年来成为了开发市场和领域中具有主导地位的框架技术。

2.3 MySQL数据库

MySQL是目前最流行的关系型数据库之一,它的数据库数据量比较大,能够容纳比较大的数据库数据量。是目前能够选用的主流分布式数据库之一,也是一个不可或缺的数字化、智能化的分布式数据库恢复系统。它由瑞典官方公司MySQLAB开发,并随着时间的推移不断改进和提升。MySQL实现技术目前正属于Oracle公司。发布到网络上,我们可以自行下载使用,并且是免费的,无需购买。

第 3 章 需求分析

3.1 系统工作和目标

本系统是用于高校师生的学习交流系统,让"教"与"学"都便于信息化管理,脱离于传统方式去实现。

该系统的主要角色模块区分如下:

教师模块:管理学生信息、向管理员申请请假、向学生发起作业、打回不合格学生作业、批阅学生作业、上传课件、发起并参与话题讨论、查看学生作业完成情况、批量导出学生数据和在线师生交流等功能。

学生模块:具备完成在线作业、向老师发起打作业的请、创建今日讨论主题并可以发布讨论内容、下载网络学习课件和可通过网页进行在线实时交流等功能。

管理员模块:具备在校教师、在校学生身份信息管理、今日话题信息管理、一键导入在校学生、在校教师信息管理等功能。

3.2 业务流程分析

系统业务流程分析可以帮助开发过程中不定的业务需求,确定具体的业务流程和具体工作,更好的分析出不同要素之间的联系,让我们更好的理解不同功能模块之间的关系。

业务之间分析能够细化分析,逐步形成相对合理的业务,已然成为更加科学的业务管理。借助对现有网上学习系统业务的具体分析,重组组建本系统的业务,达到更合理的业务运作。

3.2.1 管理员业务分析

管理员登录之后能够方便的在后台管理相关系统信息,能够导入导出在校学生和在校教师的相关信息,管理话题讨论模块。对于教师的请假信息进行管理,可以批准和不批准,管理全局信息。

3.2.2 教师业务分析

在校教师成功登录系统之后进入教师模块,能够进行自定义信息操作。在线教师能够修改和删除在校学生的相关信息,对于相关学生的作业完成情况进行批改评分,还能够讨论话题,也可以在作业完成界面查看评分比重,同时也可以进行上传课件供在校学生下载学习。从某种角度来说,对于学校学生的相关信息,在校教师也能够导出自己相关学生的身份信息,自己也可以向系统管理员进行请假处理。

3.2.3 学生业务分析

学生成功登录系统之后进入学生模块,可进行选择自己想要的功能。在校学生能够完成自己教师布置的作业,也能够下载自己老师发布的教材资料进行学习,也可以参加话题讨论留下自己想说的话。在在线聊天室里也可以进行在线聊天,与教师和学生同时交流。

3.3 系统用例分析

3.3.1 管理员用例分析

管理员用例分析图用于描述管理员登录之后能进行的功能操作描述。管理员用例分析如图所示。

3.3.2 教师用例分析

教师用例分析图用于描述教师登录之后能进行的功能操作。教师用例分析如图所示。

3.3.3 学生用例分析

学生用例图用于描述学生登录之后能进行的功能操作。学生用例分析如图所示。

3.4 功能需求

功能需求是指开发阶段中系统所需要的所有功能模块需要全部开发出来,不是所有的功能都很强大,都是借助可行性分析得出的,最后应该对于具体情况选择的功能。

本在线学习系统所需设计实现的主要功能包括:

1.信息管理功能

信息管理功能一方面涵盖了不同角色的登录账号权限控制和不同角色的查询信息管理。

2.学习管理功能

学习信息管理功能,这意味着在校教师能够管理学生的学习能力信息,例如发布最新的学习任务,查询学校学生学习任务的能力进度,查询学校学生任务的完成情况和批准学生上传的老师布置的家庭作业并评分。

3.在线学习功能

在线学习功能是对于学生在系统中登录之后可以进行的网络学习,如下载课件学习、完成在线作业、请求打回重做等。

4.在线交流功能

在线交流主要是学生和教师之间、学生和学生之间、教师相互间的在线交流功能,比如参照结合WebSocket的实时聊天室、话题发布、话题讨论等,管理员还可以对于话题进行不良言论进行检查,可以进行删除操作。

5.邮箱验证功能

邮箱验证功能主要是用于本系统使用的用户忘记密码相关信息后,用户能够选用系统管理员邮箱返回并输入验证码来验证和重置自己的账号和密码。

3.5 非功能需求

1.界面美观性:指的是页面的整齐、美观程度,一个好的系统少不了页面的渲染,好的页面让使用者更加舒适,本检索系统的启动页背景是JavaScript和CSS渲染的动态背景,页面布局合理规范。

2.可扩展性:可扩展性是指一个系统的持续运行的前提下,由于不同用户的需求,系统需要改变或者增加功能模块,本身系统开发就是从零到有、逐渐完善的过程,扩展更多的功能,更能让该系统软件在在线系统的发展长河中站稳脚跟。

3.安全性:对于数据库的数据需要提供较为安全的环境,不能任何人都可以进行数据查询,这样会暴露系统,导致数据丢失。本系统设置了权限认证,未登录者无法进行数据操作,保证了系统的安全性。

第 4 章 系统设计

4.1 系统功能模块设计

系统功能模块设计如图所示。

4.2 管理员模块设计

管理员模块包括在校学生信息管理、在校教师信息管理、在线教师申请请假信息管理和敏感评论信息管理等模块。

学生管理:该自定义模块是信息管理的自定义模块,可以导出在校学生相关信息,对于学生信息管理,查询信息管理,删除信息管理,修改信息管理,完善信息管理。

教师管理:该自定义模块是对于在线教师相关信息的导出、查询、删除、修改等功能。

教师请假管理:此自定义模块供在校教师向系统管理员征求批复请假请求,管理员进行审批,总体来说需要要得到管理员的批准才能请假。

兴趣话题信息管理:这个自定义模块从某种角度来说,就是今天话题的信息管理。管理员能够查询和删除讨论主题,以防止不良和不负责任的评论。

4.3 教师模块设计

教师模块包括子模块:学生信息管理、请假信息管理、今日话题信息管理、课件信息管理、作业信息管理模块。

学生管理:该自定义模块是信息管理的自定义模块,可以导出在校学生相关信息,对于学生信息管理,查询信息管理,删除信息管理,修改信息管理,完善信息管理。

请假管理:此自定义模块供在校教师向系统管理员征求批复请假请求。需要要得到管理员的批准才能请假。

教师布置作业信息管理:该模块是教师定制的模块,用于管理本校学生的布置作业信息、查询作业完成信息管理、固定信息管理、学生完成作业情况信息和管理等

网络课件信息管理:此模块适用于教师。从某种角度来说,明白如何操作课件相关信息,如学习课件上传、删除、下载,是比较符合的。

今日话题:该模块是在校师生的话题聊天模块,教师可以进行发起话题,也可以进行在话题中进行交流。

在线聊天:该模块提供了在校师生的实时在线聊天环境,可以进行私聊,也可以进行广播发送。

4.4 学生模块设计

学生模块包括子模块:这里有课件、该做作业了、在线聊天、今日话题等模块。

作业完成模块:此自定义模块是对于在校学生的作业模块。从某种意义上说,这是一个对于教师发布的教师布置作业的完成模块。在校学生可通过完成教师布置的作业,完成后能够提交给教师,完成之后同事也可以向教师进行申请打回重做。

这里有课件:该模块是学生对教师上传的课件进行下载和查看的一个模块。

在线聊天:该模块提供了在校师生的实时在线聊天环境,可以进行私聊,也可以进行广播发送。

今日话题:该模块是在校师生的话题聊天模块,教师可以进行发起话题,也可以进行在话题中进行交流。

4.5 数据库设计

4.5.1 数据库概述

所谓数据库是指:以同一种方式将相同格式并且相互有关联的数据联系在一起,存放在计算机硬盘上的,可以被多个用户之间共享数据信息。

数据库是按照一致的数据构成和对应来联系、存放和操作数据的一个文件仓库,简单来说就是一个储物柜,不过是脱离了实物,变成了电子的,并且基于计算机,还可以对数据库文件里面的数据进行增、删、改和查操作。

4.5.2 数据库概念模型设计

一般来说,在系统数据库的开发、设计和制作中,都会用到E-R图来分析数据结构和算法。E-R图由实体、属性和直接联系三部分组成,它能够表示实体相互间的直接联系以及实体之间的相关数据。

本网络在线学习系统涉及的实体和属性相互间的关系:

(1)管理员

属性包括:姓名、工号和密码。

(2)课件

属性包括:教师姓名、工号、课件名、上传时间、上传地址名。

(3)讨论

属性包括:讨论人名、讨论内容、发布时间、话题id。

(4)作业

属性包括:作业名、作业内容、发布时间、教师工号。

(5)作业完成

属性包括:学生姓名、学号、完成内容、优良程度、作业id、完成次数。

(6)请假

属性包括:请假人名、请假时间、批复结果。

(7)学生

属性包括:姓名、密码、学号、年龄、教师姓名。

(8)师

属性包括:姓名、密码、工号、年龄。

(9)话题

属性包括:话题名、话题内容、发布时间。

主要的实体之间关系图(E-R图)如图所示。

4.5.3 数据库表设计

本学习系统数据库的表设计如下列表格。


第 5 章 系统实现

第 6 章 系统测试

6.1 测试目的

系统要想达到完善的效果,就一定要保证系统的设计和生产研发的质量和可靠性。系统的测试是重中之重,无法识别系统开发、设计和生产过程中可能存在的严重缺陷和错误。

借助系统测试,能够验证一个恢复系统是否得以满足用户的使用习惯和需求。通过验证测试,检索系统前后端交互是否正常,直接连接数据库对数据库进行存取、编辑、删除、插入等操作是否正常。

6.2 测试流程及结果

系统测试的主要内容包括:

(一)稳定性测试:指满足用户需求的组合,由软件测试工程师对系统进行还原,看系统是否能正常工作,满足用户需求的具体要求,软硬件功能是否正常很强大。正确与否与系统的质量密切相关妨碍系统质量的最重要因素是软硬件稳定性测试是否合理正确,一定要认真完成,在系统测试中排名第一。

(二)性能测试:借助自动化运维工具,对系统在各种正常条件下、最高峰值和非常特定的负载电流条件下的各项主要性能指标进行测试。稳定性测试、压力测试和实际容量测试都是性能测试,在整个系统中,压力测试是在同时进行的。

(三)界面测试:也叫前端界面UI测试,目的是检查系统界面的样式类型是否能满足一般客户的特定要求,是否能够通用,文本工具是否能够正常,打开的页面能不能漂亮,文字和图片工具的结合能不能完美,操作能不能更合理等等。

6.2.1 功能测试

功能测试有很多具体的方法。以下是一些经常选用的具体方法:

判定表,一方面是考虑输入应当需要什么条件以及输入应当需要什么条件相互间的联系的各种组合的测试。

因果图,因果图是参照输入与输入相互间的直接因果关系、输入与输出相互间的直接因果关系、输出与输出相互间的联系而得到的直接因果图。

业务流程图,一方面参照结合工具软件业务操作进行测试,一方面是业务操作,另一方面是核心业务操作。

一般来说,对软件功能进行测试的时候,会先使用等价类、边界值测试;其次使用错误推测法,在测试过程中对未测试地方进行补充;判定表跟因果图用于输入输出比较复杂的情况;而业务流程图可在测试过程中始终贯穿。

选择方法后根据系统的功能模块的实现进行功能测试,编写功能测试用例,并且根据测试用例进行功能测试。举登录用例------登录时可从等价类划分法进行验证:

其余功能可根据上述方法进行相应测试,测试结果通过。

6.2.2 系统功能测试表

管理员功能测试表如下。

6.2.3 性能测试

这种性能测试可以借助压力测试的方式来体现。压力测试的目的是模拟系统计算机用户在计算和选择预订管理系统软件的具体过程中系统负载电流。如果他不知道是否长时间运行程序测试工具软件或超载,一方面测试恢复系统的质量和性能、稳定性和可靠性,通过采用性能测试工具Jmeter模拟并发计算机用户来对代理平台进行压力测试,评估其数据处理能力的整体质量和性能。

该测试所涉及到的指数如下:

1.并发用户数(发出请求数量):模拟同时发送登录请求的用户数。

2.90%用户的响应时间:数据升序排列,就是排列在第90%的值。

3.吞吐量QPS(TPS):默认情况下标示每秒完成的请求数,请求数正常的情况下,吞吐量越高说明性能越好。

4.事件异常率:进行事件时发生异常占总事件数的比率。

5.此处以高并发用户登录进行测试,下列分别以并发数为100、1000、10000,持续时间为5秒钟进行测试,结果如下。

从表中可以观察到当10000用户量同时登录时,90%用户的响应时间未超过一秒,且事件异常率只有1.02%,说明整个管理系统的抗压能力还是十分可观的。

第 7 章 总结与展望

本文是以面向对象的方法对在线学习系统进行分析,前期对于网络学习的网络调研,进行系统需求分析,并不断完善系统的功能性需求,使得系统的整体开发有一个明确的方向,在后期的代码开发有了较好的指路作用。

在线学习系统的研发几乎满足了在校教师和在校学生用户的需求,在最本质的角度上看来满足了教师的日常教育教学管理,满足教师日常的学生管理、作业管理、课件管理等一系列功能,也满足了学生的在线作业、课件下载等一系列功能。进行功能拓展是本系统下一步重点研究方向,为了使系统更加的完善,定将即使和持续的改进,争取实现一个不断适应网络发展和社会发展的在线学习系统。

相关推荐
2401_8574396920 分钟前
SpringBoot框架在资产管理中的应用
java·spring boot·后端
怀旧66621 分钟前
spring boot 项目配置https服务
java·spring boot·后端·学习·个人开发·1024程序员节
李老头探索23 分钟前
Java面试之Java中实现多线程有几种方法
java·开发语言·面试
芒果披萨28 分钟前
Filter和Listener
java·filter
qq_49244844633 分钟前
Java实现App自动化(Appium Demo)
java
阿华的代码王国41 分钟前
【SpringMVC】——Cookie和Session机制
java·后端·spring·cookie·session·会话
infiniteWei1 小时前
【Lucene】原理学习路线
学习·搜索引擎·全文检索·lucene
找了一圈尾巴1 小时前
前后端交互通用排序策略
java·交互
follycat2 小时前
[极客大挑战 2019]PHP 1
开发语言·学习·网络安全·php
哎呦没4 小时前
SpringBoot框架下的资产管理自动化
java·spring boot·后端