APP下载

基于MVC+AJAX模式的在线考试系统设计与实现

2013-11-02王记朋芦丽萍

关键词:功能模块考试数据库

王记朋, 芦丽萍

(天津师范大学 教育科学学院 教育技术系, 天津 300387)

基于MVC+AJAX模式的在线考试系统设计与实现

王记朋, 芦丽萍

(天津师范大学 教育科学学院 教育技术系, 天津 300387)

为提高考试管理工作的效率,降低教师出卷和阅卷负担,确保学生成绩的公平与公正,设计研发了客观题在线考试系统.该系统采用B/S架构设计,应用MVC+AJAX开发模式,基于Java Web技术和Struts2.1框架开发,实现了客观题的在线考试功能.如随机抽题、自动阅卷、成绩反馈等.该系统具有较强的稳定性和较快的响应速度,具有可拓展性便于后期维护.

MVC模式; AJAX技术; 在线考试系统; 响应速度

0 引言

随着计算机及网络技术的飞速发展和社会信息化水平的不断提高,利用计算机网络环境进行在线考试已成为当今教育教学评价方式发展的趋势.在评价体系改革中,传统的纸质考试缺点越来越明显,如:试题固定、试卷容量小、考试周期长、效率低等,极大地影响了教学的连贯性.可以说传统的考试方式己经不能适应现代考试的需要,而基于Internet的在线考试系统具有评价客观、节约资源、考试灵活等特点,在大、中专院校和许多社会考试中得到广泛应用,逐渐成为一种流行的计算机辅助教学评价方式[1].

本文设计与实现了一个基于B/S架构的客观题在线考试系统,该系统将提供身份识别、随机抽题、计时考试、自动阅卷、成绩查询、后台管理等功能,具有稳定的系统性能和较快的响应速度.

1 MVC框架和AJAX技术

1.1 MVC框架模式

框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法.它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程[2].

MVC(Model-View-Controller)是一种设计模式,它把应用程序分成3个核心模块:模型、视图、控制器,其特点是多个视图能共享一个模型.同一个模型可以被不同的视图重用,大大提高了代码的可重用性.MVC的3个模块相互独立,改变其中一个不会影响其它两个,是一种构造良好的松耦合构件.同时,控制器提高了应用程序的灵活性和可配置性,可以用来联接不同的模型和视图完成用户的需求.

1.2 AJAX异步传输技术

AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页的开发技术,它能使浏览器为用户提供更为自然的浏览体验.AJAX无刷新技术,使得古老的B/S方式的Web开发焕发了新的活力[3].

通过 AJAX,JavaScript可使用JavaScript的XMLHttpRequest对象直接与服务器进行通信.通过这个对象,JavaScript可在不重载页面的情况下与Web服务器交换数据.AJAX在浏览器与Web服务器之间使用异步数据传输信息(HTTP请求),使网页向服务器请求少量的信息而不是整个页面.

2 在线考试系统的设计

2.1 系统实现目标

考试系统分析了管理员、教师和学生3种不同用户的功能需求,将所有用户信息都保存在一个数据表中.不同用户通过身份验证进入相应的子系统,完成各自的功能.该系统具体实现目标如下:

用户登录: 实现用户登录及验证功能.

学生用户: 实现浏览试卷、计时答卷、查看成绩、个人信息管理等功能.

教师用户: 实现试题录入、随机组卷、题型选择、成绩管理、个人信息管理等功能.

管理员用户: 实现系统设置、人员管理、考试管理、成绩统计、信息发布管理、个人信息管理等功能.

2.2 系统架构设计

系统的控制器(Controller)采用struts2.1技术框架;视图层(View)利用Jsp动态网页技术从服务器端向客户端展现视图界面[4].为简化系统数据接口,在数据访问Dao层中植入公共的业务逻辑并实现对模型的操作的接口.Ibatis框架作为基于JAVA的数据持久层框架,完成系统所有的数据操作.

2.3 系统功能设计

2.3.1 系统总体设计

通过需求分析,将系统按用户划分为:管理员子系统、教师子系统和学生子系统,如图1所示.

图1 系统总体结构图

2.3.2 管理员子系统功能模块

管理员登录后其功能模块划分如图2所示.

图2 管理员功能模块

2.3.3 教师和学生子系统功能模块

教师登录后其功能模块划分如图3所示;学生登录后其功能模块划分如图4所示.

2.4 系统数据库设计

数据库是指有组织地、动态地存储在外存上相互关联的数据集合[5].数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求).依据本系统的功能需求和结构模式,在分析了系统的主要功能模块和数据需求基础上,在mysql中建立了名为oes的数据库文件,并设计建立了10张数据信息表.各个数据表之间的关系图,如图5所示.

2.5 系统安全性设计

图3 教师功能模块 图4 学生功能模块

图5 数据表关系图

2.5.1 程序设计安全性

针对用户输入验证,在后台代码中必须验证输入信息安全后,才能向服务层提交由用户输入产生的操作.针对用户身份验证,程序设计中,用户身份信息必须由服务器内部的会话系统提供,避免通过表单提交和页面参数的形式获取用户身份.针对用户授权,在访问保密数据或受限数据时,一定要根据用户身份和相应的权限配置来判断操作是否允许.

2.5.2 程序部署及操作系统安全性

系统部署于windows2003操作系统,保证操作系统在部署前,安装了全部的安全升级补丁,关闭了所有不需要的系统服务,只对外开放必须的端口.定期检查系统日志,对可疑操作进行分析汇报.

2.5.3 数据库安全性

在进行数据库设计时,对数据库监听地址要有限制,只对需要访问的网络地址进行监听.另外,还要定期备份库中的数据.

2.5.4 网络安全性

系统在部署前,要考虑其网络安全,选用安全性高的防火墙.根据具体网络环境,制定尽可能周密的防火墙规则.对需要在外网中传输的数据,要选用合适的加密算法进行加密.

3 在线考试系统的实现

3.1 设计软件的选择

在线考试系统是利用J2EE体系结构开发的,整个项目是在MyEclipse8.5软件中并且集成MVC开源框架Struct2.1以及数据访问框架Ibatis.所有文件部署在Apache开源服务器Tomcat中,并且选择mysql数据库存储数据信息.

3.2 系统的三层架构及实现

系统采用传统的三层架构模型,在逻辑上化分为Action控制层、数据访问Dao层以及持久模型Model层.如图6所示.

图6 在线考试系统的三层架构模型图

3.2.1 数据访问层的实现

借助Ibatis框架,创建数据访问Dao层基类BaseDao,这个类提供最基本的数据查询公共方法:queryObject()、queryForList();数据更新公共方法:update();数据插入公共方法insert();删除数据公共方法:delete().

为完成具体表的增删改查操作,只需建立对应的Dao类,继承BaseDao类,结合特定业务逻辑,编写数据操作方法.

3.2.2 控制层的实现

控制层的实现与数据访问层相似,也是先建立基类BaseAction,里面封装基本的方法,如newpath(),getSession()以及redirect()等.

3.2.3 持久模型层的实现

持久层使用javabean,封装数据访问细节,为大部分业务逻辑提供面向对象的API.对数据库中数据表的数据进行增加、删除、修改、查询和更新等操作.

3.3 关键技术应用

3.3.1 DIV+CSS页面布局

系统所有页面布局设计均采用div+css模式,彻底抛弃古老的table写法,实现了网页页面内容与表现相分离,兼容各个浏览器,增加了访问速度和用户体验性,同时具有很高的可维护性,缩短改版时间.

3.3.2 随机抽题算法

考试系统组卷算法以随机抽题算法为基础,主要是以题型为约束条件随机抽取.利用该算法抽取不同类型的试题,降低试题出现的重复率,达到了试题难度平均分布的需求.

3.3.3 AJAX异步提交试卷

考试系统在试题作答和提交时采用分题作答和自动提交模式.学生在做选择题时,当选择一个单选按钮后,利用AJAX异步交互技术,答案已经写入到数据库答案表中,点击下一题作答下一道题.这样,学生在做题的同时将答案提交到数据库中,避免了学生把答案全部完成后,再同时同步地大量提交答案,减轻了服务器访问的负担,提高了学生答题保存答案的安全性和可靠性.

4 在线考试系统的测试

4.1 测试目标

测试的目标是以最少的时间和人力找出软件中潜在的各种错误和缺陷,主要从以下几个方面进行测试:系统运行是否正常,是否会出现未预见的异常运行错误;系统抽题重复率是否达到预期要求;系统的响应速度是否达到预期要求;在操作不规范的情况下,系统是否能给出智能提示.

4.2 测试过程

测试的方式为班级考试,测试对象为天津师范大学教育技术专业2011级网络专业的学生,人数为31人.

此次测试过程基本顺利,系统响应速度较好,系统功能全部实现,未见异常运行错误.

抽题重复率情况: 题库题数为200题,应抽题数620题,实际抽题数613题,理论抽题次数为613/200=3.065次,抽到次数为1~10,抽题率数据如表1所示.

表1 抽题率统计

经统计和分析测试数据,此次的抽题重复率较低,能够准确反映考生考试的真实水平.

4.3 测试出现的问题及解决方案

依据测试目标,考试系统运转基本正常.但也发现存在如下问题:页面布局不美观;查询功能缺少分页效果;试题录入画面容量不足;删除操作缺少提示等.通过对测试出现问题的分析,提出了以下解决方案:在CSS样式中,题目的显示位置单位使用百分比,这样可以根据不同的屏幕分辨率进行相应显示,避免使用固定位置的像素单位;在查询结果页面中加入分页代码,同时对搜索的关键词用CSS样式进行高亮显示;将录题的文本框用CSS样式加长,同时使用ALT属性对试题选项进行鼠标滑过整体显示;在删除的方法中加入删除成功和失败的代码,给用户操作后的反馈.

5 结语

本文完成了天津师范大学教育科学学院教育技术系“在线考试系统”的设计和实现.该系统具有高效的考试管理功能,使学生通过Internet网或局域网进行在线考试,实现了考试的信息化管理,促进了考试的公平和公正.当然,考试系统在智能评价方面还有待于完善,应能及时分析和反馈学生的考试数据,进一步提高评价效率.

[1] 袁明兰.论高校在线考试系统的优缺点[J].北京电力高等专科学校学报,2011(12).

[2] 高禹,毕振波.软件开发过程模型的发展[J].计算机技术与发展,2008(3).

[3] 韩海晓.基于AJAX在线考试系统的研究[J].现代电子技术,2006(5).

[4] 李刚.Struts2.1权威指南[M].北京:电子工业出版社,2009.

[5] 芦丽萍,王志军.网络数据库应用系统开发技术[M].北京:电子工业出版社,2009.

TheDevelopmentofOnlineExaminationSystemBasedonMVC+AJAXModel

WANG Ji-peng, LU Li-ping

(Educational Technology Department, College of Education Science, Tianjin Normal University, Tianjin 300387, China)

An online examination system for objective tests has been developed in order to improve the management efficiency of examinations, lower the burden of the teachers in making and marking the papers, and to insure the fairness of the results of the exams. With the B/S framework, the MVC+AJAX model, Java Web technology and Struts2.1, the system realizes the online exam functions, such as random choice of questions, automatic marking, feedback, etc. The system is stable and fast in response extensible, and convenient for maintenance.

MVC mode; AJAX technology; online examination system; response speed

2013-06-21

芦丽萍(1961-), 女, 天津市人, 副教授, 硕士, 研究方向为网络教育应用.

TP311.52

A

1671-6876(2013)03-0231-05

[责任编辑蒋海龙]

猜你喜欢

功能模块考试数据库
Japanese Artificial Intelligence Robotto Take Entrance Examinations
数据库
基于ASP.NET标准的采购管理系统研究
数据库
输电线路附着物测算系统测算功能模块的研究
数据库
M市石油装备公服平台网站主要功能模块设计与实现
数据库
你考试焦虑吗?
功能模块的设计与应用研究