王燕贞,沈毅波
随着高校素质教育的不断推进,综合测评已经成为考核大学生综合素质的一种手段.各高校根据不同的标准,将大学生的德智体等各项指标量化为具体的分数或等级,用来体现大学生在校期间的综合表现,而这一量化的结果不仅可以作为奖学金的评定依据,还能作为用人单位招聘的参考条件.经调研,现在大多数高校仍采用电子表格Excel进行综合测评信息的录入、计算、汇总和保存.此种方式存在较多弊端:由于电子表格Excel模板数据格式不统一导致最后统计结果的误差;各二级学院数据均独立存放,形成信息孤岛;二级学院各部门无法协同工作.
目前,已经存在应用不同技术实现的高校学生综合测评管理系统.范金良,刘金阳[1]以SQLServer 2000 作为数据库,采用VB.NET 语言,运用ADO.NET 技术设计实现了基于C/S 三层模式的高校学生综合测评管理系统.崔赛英,李燕梅[2]以Access 作为基础数据库并进行加密,Win2000 Server 作为网络服务器操作系统,同时采用ASP 语言实现了综合测评成绩管理信息系统.陈翠红[3]采用基于C#语言的ASP.NET+SQLServer2008 作为开发工具,并使用CSS 盒子模型等技术开发了基于B/S 模式的综合测评管理系统.任廷艳[4]开发了基于JSP 和SQLSever 的综合测评管理系统.文献[5]采用PHP 和MySQL数据库技术相结合构建了一套综合测评管理系统.文献[6]采用Oracle dblink技术、SSH(Struts2+Spring+Hibernate)框架和FreeMarker模板引擎实现了基于数据中心的综合测评管理系统.在项目开发过程中,上述传统技术的简易性和代码可复用性要远低于本文所使用的框架技术和组件库.本文根据漳州职业技术学院综合测评细则方案,采用目前主流框架技术SSM和BootStrap,并结合数据库连接池和CDN 技术进行优化,开发了基于B/S 模式的综合测评管理系统.该系统实现了奖惩分成绩导入功能,自动计算综合测评各项分值、自动生成综测排名和成绩排名、限时学生反馈教师核对功能,以及多部门协同工作功能.
本文设计开发的高校学生综合测评管理系统采用Tomcat8.0作为服务器,MYSQL5.7作为数据库服务器,在JDK8开发环境下,使用MyEclipse 2017CI作为开发工具,同时利用Maven3.0.4进行项目依赖管理,并使用SVN1.8 实现项目版本控制.本系统Web后端采用SSM轻量级框架技术实现,由Mybatis3.4.2、Spring4.1.6和SpringMVC4.1.6组合而成,前端采用的是BootStrap4技术.
Mybatis 内部封装了JDBC 的一系列数据库操作,包括数据库连接Connection、数据操作Statement、返回结果集ResultSet和相关异常处理等,同时还加入了事务处理.Mybatis 通过封装以上这些操作,将程序中的SQL 语句独立出来,再通过配置XML 文件或者注解建立实体类和SQL语句之间的映射关系,实现半自动ORM.Spring框架作为管理业务对象的容器,代替EJB容器完成Web 应用开发中各层之间的分离.Spring 框架中不但包含控制反转(IoC)、面向切面(AOP)和内部MVC 框架,而且能够整合多种数据持久层框架,如Hibernate 和Mybatis.SpringMVC 是SSM框架中的Web 层框架,其通过DispatcherServlet来进行请求的发送和接收,是一种基于请求驱动类型的轻量级Web 框架.SpringMVC 是内置于Spring 框架中的MVC 模块.Spring 框架可由用户选择不同的Web 框架,其中SpringMVC 和Struts是目前较为流行的两种Web框架.
BootStrap 是一个适用于开发响应式布局的开源前端组件库,包含HTML、CSS 和JavaScript开发工具集.在开发过程中使用这些工具集不仅可以使Web页面自适应移动设备,还可以提高代码的复用率,提高开发效率.
企业级后台管理系统均采用MVC模式进行开发,较常见的划分方式是将整个系统分为数据持久层、业务逻辑层和显示层[7].在SSM 框架中,数据持久层由Mybatis框架完成数据操作并提供数据处理的API;业务逻辑层由Spring 框架负责管理所有的业务,包括自动注入、声明事务管理等;显示层由DispatcherServlet 进行请求的发送和接收.其体系结构如图1所示.
图1 SSM框架结构
Spring 作为一个业务逻辑层框架,能够将数据持久层Mybatis和显示层SpringMVC进行整合.整合以后,Spring可以接管所有组件的创建工作并进行依赖管理.进行整合的最主要工作就是把Spring 和Mybatis 进行整合,将Mybatis 数据源的配置、事物的管理、SqlSessionFactory 的创建,以及数据映射接口Mapper 的创建都交给Spring 管理[8].其 次 是 整 合SpringMVC 和Spring,配 置SpringMVC文件实现自动扫描控制器、开启注解等功能并在web.xml 文件中导入所需的配置文件.具体如图2所示.
图2 SSM框架整合
(1)在config.properties 文件中配置JDBC 相关数据操作,包括数据库服务器地址、登录用户名、密码、JDBC驱动、连接池大小、等待超时时间等.部分代码实现如下:
(2)在spring-mybatis.xml文件中配置数据源连接数据库,并扫描数据访问层注解.
(3)在applicationContext.xml 文件中读取配置文件config.properties,并导入spring-mybatis.xml文件.
(4)配置springMVC.xml文件,扫描业务逻辑层注解.
(5)在web.xml 文件中导入配置文件log4j.properties、applicationContext.xml 和springMVC.xml,部分代码如下:
经过需求调研,将高校学生综合测评管理系统后台管理功能分为三个部分:系统管理、资料管理和综合测评管理.系统管理包含综合测评基础分配置、用户管理、角色管理、资源管理、公告管理和反馈管理.资料管理包含学院管理、专业管理、班级管理、学生管理、宿舍管理、测评细则管理.总体结构设计如图3所示.
图3 高校学生综合测评管理系统总体结构设计
逻辑结构是将概念结构转化为具体的数据结构的过程[9].根据上述分析,将系统划分为系统管理、资料管理和综合测评管理三大功能模块,从而创建相应的物理数据模型,分别是系统管理模型、资料管理模型和综合测评管理模型.根据具体的物理数据模型,确定对应的系统实体.系统管理物理数据模型包括用户表ct_user,角色表ct_role,用户角色表ct_user_role,资源表ct_resource,角 色 资 源 表ct_role_resource,公 告 表ct_announcement,反馈表ct_tickling,测评基础分表ct_base_score,具体模型如图4所示.
图4 系统管理物理数据模型图
资料管理物理数据模型包括学院表ct_college,专业表ct_major,班级表ct_class,学生表ct_student,宿舍表ct_hostel,基础课程表ct_course,测评细则表ct_rule,测评细则明细表ct_rule_detail,用户表ct_user,具体模型如图5所示.
图5 资料管理物理数据模型图
综合测评管理物理数据模型包括学生奖惩表ct_student_prize_punishment,业务学习综测明细表ct_study,综合测评表ct_evaluation,班级表ct_class,综合测评明细表ct_evaluation_detail,具体模型如图6所示.
图6 综合测评管理物理数据模型图
系统管理集合了本系统的基础操作,包括角色管理、用户管理、资源管理、反馈管理、公告管理和综合测评基础分配置.角色管理可以实现角色的新增、编辑、删除和查询功能.本系统设置了超级管理员、二级学院管理员、专业管理员、宿舍管理员、辅导员、班主任、班长、学生等角色.超级管理员可以给不同角色分配可访问的网络资源,以达到权限控制的目的.用户管理除了包含用户基本信息的增、删、改、查功能以外,还能够实现用户角色的设置和更改用户状态的功能.资源管理主要用于网站内部资源的管理,包括默认地址、显示菜单、是否默认打开等.反馈管理用于管理用户在使用过程中提出的一些意见和建议,并提供处理进度跟进功能.公告管理主要用于系统公告的发布、编辑、删除.综合测评基础分配置主要是设置政治思想素质和智能素质的基准分.政治思想素质包含政治素质、品德修养、劳动观念、法纪观念、学习态度;智能素质包含科研能力、社会工作能力、职业能力和文艺活动能力.系统管理模块中的用户管理界面如图7所示.
图7 用户管理界面
资料管理提供了综合测评相关资料的管理功能,包括学院管理、专业管理、班级管理、宿舍管理、学生管理和测评细则管理.学院管理和专业管理分别提供了各自相关信息的新增、删除、编辑和查找功能.宿舍管理和学生管理除了上述的增、删、改查功能外,还提供模板下载和导入、导出功能.具有相应权限的用户可以下载统一的Excel模板,实现线下分工协同工作,汇总后再将数据进行导入.班级管理除以上功能外,还提供课程设置功能.课程设置这一功能的权限对辅导员、班主任和班长这三种角色是启用状态,能够让这三种角色的用户对每学期课程表信息进行新增、删除和编辑.测评细则管理包括政治思想素质、业务学习素质、智能素质和体育素质四类细则,以及对应细则明细的增、删、改操作.资料管理中综测细则管理界面如图8所示.
图8 综测细则管理界面
综合测评管理提供了对学生个人综合素质测评的管理,主要有以下功能.
(1)修改政治思想素质中政治素质、品德修养、法纪观念和学习态度的分值,新增、编辑和删除政治思想素质的奖惩分.
(2)查看学生本学期或本学年的所有课程成绩,并计算总分、平均分,生成学习成绩班级排名和专业排名,新增、编辑业务学习的奖惩分.
(3)修改智能素质中的社会工作能力、职业能力和文艺活动能力的分值,新增、编辑、查看、删除智能素质中的奖惩分,并计算总分.
(4)新增、编辑、查看体育素质中的体育课成绩或体育达标成绩、课外体育活动成绩,新增、编辑体育素质中的奖惩分,并计算总分.
(5)计算各项综测项目总分,生成综测班级排名和专业排名,并启动教师核对和学生确认功能.
综合测评管理界面如图9所示.
图9 综合测评管理界面
本系统在功能上划分为系统管理、资料管理和综合测评管理三个模块,由于篇幅原因,仅以测评细则管理中的添加功能为例,介绍分层模式的代码实现.
(1)POJO 实体类.定义Rule、RuleDetail 实体类.
(2)数据持久层.定义数据访问层接口IRule-Mapper,在此接口内定义创建测评细则createRuleDetail方法,具体定义如下:
其中Base 和SqlMethod 为自定义基础类,Base类为所有执行基础数据访问操作的基类.基础数据访问操作包括新增、删除、编辑和查询该实体类所有信息.SqlMethod类封装了数据操作的方法名,便于在Provider中调用.
(3)业务逻辑层.定义IRuleService 接口,在此接口内定义创建测评内容createRule方法和添加测评内容importRule方法,并定义实现类Rule-ServiceImpl,具体定义如下:
(4)显示层.定义RuleController类,并在其内部定义importRule方法,具体定义如下:
前端控制器DispatcherServlet 收到请求调用HandlerMapping.HandlerMapping 根 据URL 请 求找到相应的处理器,生成对应的Controller对象,通 过 注 解@Controller 和@RequestMapping 注 册Controller类和请求路径.
当用户提交请求访问数据库时,服务器需要建立和关闭与数据库的连接,如果访问量达到一定数量时,服务器会频繁执行这个操作,从而造成不必要的开销.为了解决这个问题,在系统框架整合阶段采用了数据库连接池进行性能优化.使用数据库连接池不仅可以重复使用空闲的数据库连接,还能缩短用户访问系统的响应时间.在本系统中,通过建立数据库连接池,设置连接池最小连接数和最大并发连接数、连接生存时间、检测时间间隔等避免资源泄露,建立高效、安全复用的数据库连接.
本系统还采用CDN技术提高用户访问服务器的响应速度.CDN(Content Delivery Network),即内容分发网络.CDN包括负载均衡、内容分发、调度等功能模块,通过各种缓存服务器,利用全局负载技术寻找最近服务器节点,响应用户请求,解决了互联网传输速度和稳定性不足而引起的系统性能问题.在实际测试中,通过模拟多线程和调整网速进行测试,可以看出优化后的网页响应速度有了明显的提高.以某一页面为例,响应速度从10 s 左右提升到2 s 左右,具体对比如图10所示.
图10 优化前后访问响应时间对比图
本文以当前主流技术SSM 轻量级框架技术结合前端UI 框架Bootstrap,以MySQL 为数据库服务器,采用分层开发模式和角色访问控制策略,同时运用数据库连接池和CDN 等优化手段开发设计了一套基于B/S 架构的高校学生综合测评管理系统.与目前已有的类似功能的系统相比,前后端框架技术和优化手段的使用缩短了开发时间和页面响应时间,分层开发模式提高了程序的可移植性和健壮性.经上线使用证明,该系统不但能够在很大程度上缩短综合测评这项工作的时间,提高测评结果的精确度,而且能够做到及时统计、多部门协同工作,实现数据共享.