王記朋, 蘆麗萍
(天津師范大學 教育科學學院 教育技術(shù)系, 天津 300387)
基于MVC+AJAX模式的在線考試系統(tǒng)設(shè)計與實現(xiàn)
王記朋, 蘆麗萍
(天津師范大學 教育科學學院 教育技術(shù)系, 天津 300387)
為提高考試管理工作的效率,降低教師出卷和閱卷負擔,確保學生成績的公平與公正,設(shè)計研發(fā)了客觀題在線考試系統(tǒng).該系統(tǒng)采用B/S架構(gòu)設(shè)計,應(yīng)用MVC+AJAX開發(fā)模式,基于Java Web技術(shù)和Struts2.1框架開發(fā),實現(xiàn)了客觀題的在線考試功能.如隨機抽題、自動閱卷、成績反饋等.該系統(tǒng)具有較強的穩(wěn)定性和較快的響應(yīng)速度,具有可拓展性便于后期維護.
MVC模式; AJAX技術(shù); 在線考試系統(tǒng); 響應(yīng)速度
隨著計算機及網(wǎng)絡(luò)技術(shù)的飛速發(fā)展和社會信息化水平的不斷提高,利用計算機網(wǎng)絡(luò)環(huán)境進行在線考試已成為當今教育教學評價方式發(fā)展的趨勢.在評價體系改革中,傳統(tǒng)的紙質(zhì)考試缺點越來越明顯,如:試題固定、試卷容量小、考試周期長、效率低等,極大地影響了教學的連貫性.可以說傳統(tǒng)的考試方式己經(jīng)不能適應(yīng)現(xiàn)代考試的需要,而基于Internet的在線考試系統(tǒng)具有評價客觀、節(jié)約資源、考試靈活等特點,在大、中專院校和許多社會考試中得到廣泛應(yīng)用,逐漸成為一種流行的計算機輔助教學評價方式[1].
本文設(shè)計與實現(xiàn)了一個基于B/S架構(gòu)的客觀題在線考試系統(tǒng),該系統(tǒng)將提供身份識別、隨機抽題、計時考試、自動閱卷、成績查詢、后臺管理等功能,具有穩(wěn)定的系統(tǒng)性能和較快的響應(yīng)速度.
1.1 MVC框架模式
框架(Framework)是整個或部分系統(tǒng)的可重用設(shè)計,表現(xiàn)為一組抽象構(gòu)件及構(gòu)件實例間交互的方法.它規(guī)定了應(yīng)用的體系結(jié)構(gòu),闡明了整個設(shè)計、協(xié)作構(gòu)件之間的依賴關(guān)系、責任分配和控制流程[2].
MVC(Model-View-Controller)是一種設(shè)計模式,它把應(yīng)用程序分成3個核心模塊:模型、視圖、控制器,其特點是多個視圖能共享一個模型.同一個模型可以被不同的視圖重用,大大提高了代碼的可重用性.MVC的3個模塊相互獨立,改變其中一個不會影響其它兩個,是一種構(gòu)造良好的松耦合構(gòu)件.同時,控制器提高了應(yīng)用程序的靈活性和可配置性,可以用來聯(lián)接不同的模型和視圖完成用戶的需求.
1.2 AJAX異步傳輸技術(shù)
AJAX全稱為“Asynchronous JavaScript and XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁的開發(fā)技術(shù),它能使瀏覽器為用戶提供更為自然的瀏覽體驗.AJAX無刷新技術(shù),使得古老的B/S方式的Web開發(fā)煥發(fā)了新的活力[3].
通過 AJAX,JavaScript可使用JavaScript的XMLHttpRequest對象直接與服務(wù)器進行通信.通過這個對象,JavaScript可在不重載頁面的情況下與Web服務(wù)器交換數(shù)據(jù).AJAX在瀏覽器與Web服務(wù)器之間使用異步數(shù)據(jù)傳輸信息(HTTP請求),使網(wǎng)頁向服務(wù)器請求少量的信息而不是整個頁面.
2.1 系統(tǒng)實現(xiàn)目標
考試系統(tǒng)分析了管理員、教師和學生3種不同用戶的功能需求,將所有用戶信息都保存在一個數(shù)據(jù)表中.不同用戶通過身份驗證進入相應(yīng)的子系統(tǒng),完成各自的功能.該系統(tǒng)具體實現(xiàn)目標如下:
用戶登錄: 實現(xiàn)用戶登錄及驗證功能.
學生用戶: 實現(xiàn)瀏覽試卷、計時答卷、查看成績、個人信息管理等功能.
教師用戶: 實現(xiàn)試題錄入、隨機組卷、題型選擇、成績管理、個人信息管理等功能.
管理員用戶: 實現(xiàn)系統(tǒng)設(shè)置、人員管理、考試管理、成績統(tǒng)計、信息發(fā)布管理、個人信息管理等功能.
2.2 系統(tǒng)架構(gòu)設(shè)計
系統(tǒng)的控制器(Controller)采用struts2.1技術(shù)框架;視圖層(View)利用Jsp動態(tài)網(wǎng)頁技術(shù)從服務(wù)器端向客戶端展現(xiàn)視圖界面[4].為簡化系統(tǒng)數(shù)據(jù)接口,在數(shù)據(jù)訪問Dao層中植入公共的業(yè)務(wù)邏輯并實現(xiàn)對模型的操作的接口.Ibatis框架作為基于JAVA的數(shù)據(jù)持久層框架,完成系統(tǒng)所有的數(shù)據(jù)操作.
2.3 系統(tǒng)功能設(shè)計
2.3.1 系統(tǒng)總體設(shè)計
通過需求分析,將系統(tǒng)按用戶劃分為:管理員子系統(tǒng)、教師子系統(tǒng)和學生子系統(tǒng),如圖1所示.
圖1 系統(tǒng)總體結(jié)構(gòu)圖
2.3.2 管理員子系統(tǒng)功能模塊
管理員登錄后其功能模塊劃分如圖2所示.
圖2 管理員功能模塊
2.3.3 教師和學生子系統(tǒng)功能模塊
教師登錄后其功能模塊劃分如圖3所示;學生登錄后其功能模塊劃分如圖4所示.
2.4 系統(tǒng)數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫是指有組織地、動態(tài)地存儲在外存上相互關(guān)聯(lián)的數(shù)據(jù)集合[5].數(shù)據(jù)庫設(shè)計(Database Design)是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應(yīng)用需求(信息要求和處理要求).依據(jù)本系統(tǒng)的功能需求和結(jié)構(gòu)模式,在分析了系統(tǒng)的主要功能模塊和數(shù)據(jù)需求基礎(chǔ)上,在mysql中建立了名為oes的數(shù)據(jù)庫文件,并設(shè)計建立了10張數(shù)據(jù)信息表.各個數(shù)據(jù)表之間的關(guān)系圖,如圖5所示.
2.5 系統(tǒng)安全性設(shè)計
圖3 教師功能模塊 圖4 學生功能模塊
圖5 數(shù)據(jù)表關(guān)系圖
2.5.1 程序設(shè)計安全性
針對用戶輸入驗證,在后臺代碼中必須驗證輸入信息安全后,才能向服務(wù)層提交由用戶輸入產(chǎn)生的操作.針對用戶身份驗證,程序設(shè)計中,用戶身份信息必須由服務(wù)器內(nèi)部的會話系統(tǒng)提供,避免通過表單提交和頁面參數(shù)的形式獲取用戶身份.針對用戶授權(quán),在訪問保密數(shù)據(jù)或受限數(shù)據(jù)時,一定要根據(jù)用戶身份和相應(yīng)的權(quán)限配置來判斷操作是否允許.
2.5.2 程序部署及操作系統(tǒng)安全性
系統(tǒng)部署于windows2003操作系統(tǒng),保證操作系統(tǒng)在部署前,安裝了全部的安全升級補丁,關(guān)閉了所有不需要的系統(tǒng)服務(wù),只對外開放必須的端口.定期檢查系統(tǒng)日志,對可疑操作進行分析匯報.
2.5.3 數(shù)據(jù)庫安全性
在進行數(shù)據(jù)庫設(shè)計時,對數(shù)據(jù)庫監(jiān)聽地址要有限制,只對需要訪問的網(wǎng)絡(luò)地址進行監(jiān)聽.另外,還要定期備份庫中的數(shù)據(jù).
2.5.4 網(wǎng)絡(luò)安全性
系統(tǒng)在部署前,要考慮其網(wǎng)絡(luò)安全,選用安全性高的防火墻.根據(jù)具體網(wǎng)絡(luò)環(huán)境,制定盡可能周密的防火墻規(guī)則.對需要在外網(wǎng)中傳輸?shù)臄?shù)據(jù),要選用合適的加密算法進行加密.
3.1 設(shè)計軟件的選擇
在線考試系統(tǒng)是利用J2EE體系結(jié)構(gòu)開發(fā)的,整個項目是在MyEclipse8.5軟件中并且集成MVC開源框架Struct2.1以及數(shù)據(jù)訪問框架Ibatis.所有文件部署在Apache開源服務(wù)器Tomcat中,并且選擇mysql數(shù)據(jù)庫存儲數(shù)據(jù)信息.
3.2 系統(tǒng)的三層架構(gòu)及實現(xiàn)
系統(tǒng)采用傳統(tǒng)的三層架構(gòu)模型,在邏輯上化分為Action控制層、數(shù)據(jù)訪問Dao層以及持久模型Model層.如圖6所示.
圖6 在線考試系統(tǒng)的三層架構(gòu)模型圖
3.2.1 數(shù)據(jù)訪問層的實現(xiàn)
借助Ibatis框架,創(chuàng)建數(shù)據(jù)訪問Dao層基類BaseDao,這個類提供最基本的數(shù)據(jù)查詢公共方法:queryObject()、queryForList();數(shù)據(jù)更新公共方法:update();數(shù)據(jù)插入公共方法insert();刪除數(shù)據(jù)公共方法:delete().
為完成具體表的增刪改查操作,只需建立對應(yīng)的Dao類,繼承BaseDao類,結(jié)合特定業(yè)務(wù)邏輯,編寫數(shù)據(jù)操作方法.
3.2.2 控制層的實現(xiàn)
控制層的實現(xiàn)與數(shù)據(jù)訪問層相似,也是先建立基類BaseAction,里面封裝基本的方法,如newpath(),getSession()以及redirect()等.
3.2.3 持久模型層的實現(xiàn)
持久層使用javabean,封裝數(shù)據(jù)訪問細節(jié),為大部分業(yè)務(wù)邏輯提供面向?qū)ο蟮腁PI.對數(shù)據(jù)庫中數(shù)據(jù)表的數(shù)據(jù)進行增加、刪除、修改、查詢和更新等操作.
3.3 關(guān)鍵技術(shù)應(yīng)用
3.3.1 DIV+CSS頁面布局
系統(tǒng)所有頁面布局設(shè)計均采用div+css模式,徹底拋棄古老的table寫法,實現(xiàn)了網(wǎng)頁頁面內(nèi)容與表現(xiàn)相分離,兼容各個瀏覽器,增加了訪問速度和用戶體驗性,同時具有很高的可維護性,縮短改版時間.
3.3.2 隨機抽題算法
考試系統(tǒng)組卷算法以隨機抽題算法為基礎(chǔ),主要是以題型為約束條件隨機抽?。迷撍惴ǔ槿〔煌愋偷脑囶},降低試題出現(xiàn)的重復(fù)率,達到了試題難度平均分布的需求.
3.3.3 AJAX異步提交試卷
考試系統(tǒng)在試題作答和提交時采用分題作答和自動提交模式.學生在做選擇題時,當選擇一個單選按鈕后,利用AJAX異步交互技術(shù),答案已經(jīng)寫入到數(shù)據(jù)庫答案表中,點擊下一題作答下一道題.這樣,學生在做題的同時將答案提交到數(shù)據(jù)庫中,避免了學生把答案全部完成后,再同時同步地大量提交答案,減輕了服務(wù)器訪問的負擔,提高了學生答題保存答案的安全性和可靠性.
4.1 測試目標
測試的目標是以最少的時間和人力找出軟件中潛在的各種錯誤和缺陷,主要從以下幾個方面進行測試:系統(tǒng)運行是否正常,是否會出現(xiàn)未預(yù)見的異常運行錯誤;系統(tǒng)抽題重復(fù)率是否達到預(yù)期要求;系統(tǒng)的響應(yīng)速度是否達到預(yù)期要求;在操作不規(guī)范的情況下,系統(tǒng)是否能給出智能提示.
4.2 測試過程
測試的方式為班級考試,測試對象為天津師范大學教育技術(shù)專業(yè)2011級網(wǎng)絡(luò)專業(yè)的學生,人數(shù)為31人.
此次測試過程基本順利,系統(tǒng)響應(yīng)速度較好,系統(tǒng)功能全部實現(xiàn),未見異常運行錯誤.
抽題重復(fù)率情況: 題庫題數(shù)為200題,應(yīng)抽題數(shù)620題,實際抽題數(shù)613題,理論抽題次數(shù)為613/200=3.065次,抽到次數(shù)為1~10,抽題率數(shù)據(jù)如表1所示.
表1 抽題率統(tǒng)計
經(jīng)統(tǒng)計和分析測試數(shù)據(jù),此次的抽題重復(fù)率較低,能夠準確反映考生考試的真實水平.
4.3 測試出現(xiàn)的問題及解決方案
依據(jù)測試目標,考試系統(tǒng)運轉(zhuǎn)基本正常.但也發(fā)現(xiàn)存在如下問題:頁面布局不美觀;查詢功能缺少分頁效果;試題錄入畫面容量不足;刪除操作缺少提示等.通過對測試出現(xiàn)問題的分析,提出了以下解決方案:在CSS樣式中,題目的顯示位置單位使用百分比,這樣可以根據(jù)不同的屏幕分辨率進行相應(yīng)顯示,避免使用固定位置的像素單位;在查詢結(jié)果頁面中加入分頁代碼,同時對搜索的關(guān)鍵詞用CSS樣式進行高亮顯示;將錄題的文本框用CSS樣式加長,同時使用ALT屬性對試題選項進行鼠標滑過整體顯示;在刪除的方法中加入刪除成功和失敗的代碼,給用戶操作后的反饋.
本文完成了天津師范大學教育科學學院教育技術(shù)系“在線考試系統(tǒng)”的設(shè)計和實現(xiàn).該系統(tǒng)具有高效的考試管理功能,使學生通過Internet網(wǎng)或局域網(wǎng)進行在線考試,實現(xiàn)了考試的信息化管理,促進了考試的公平和公正.當然,考試系統(tǒng)在智能評價方面還有待于完善,應(yīng)能及時分析和反饋學生的考試數(shù)據(jù),進一步提高評價效率.
[1] 袁明蘭.論高校在線考試系統(tǒng)的優(yōu)缺點[J].北京電力高等??茖W校學報,2011(12).
[2] 高禹,畢振波.軟件開發(fā)過程模型的發(fā)展[J].計算機技術(shù)與發(fā)展,2008(3).
[3] 韓海曉.基于AJAX在線考試系統(tǒng)的研究[J].現(xiàn)代電子技術(shù),2006(5).
[4] 李剛.Struts2.1權(quán)威指南[M].北京:電子工業(yè)出版社,2009.
[5] 蘆麗萍,王志軍.網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)技術(shù)[M].北京:電子工業(yè)出版社,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-), 女, 天津市人, 副教授, 碩士, 研究方向為網(wǎng)絡(luò)教育應(yīng)用.
TP311.52
A
1671-6876(2013)03-0231-05
[責任編輯蔣海龍]