羅培中
【摘 要】目前部分獨(dú)立學(xué)院存在師資力量不足,學(xué)生對(duì)傳統(tǒng)的英語(yǔ)單詞學(xué)習(xí)方法厭倦等問(wèn)題,開(kāi)發(fā)一套能夠適應(yīng)獨(dú)立學(xué)院學(xué)生單詞學(xué)習(xí)的系統(tǒng)有較高的實(shí)用意義。我們結(jié)合獨(dú)立學(xué)院的特點(diǎn),采用開(kāi)源軟件Spring、Hibernate、Jquery等技術(shù)開(kāi)發(fā)了一套英語(yǔ)單詞學(xué)習(xí)軟件,實(shí)現(xiàn)了系統(tǒng)基本信息批量導(dǎo)入導(dǎo)出、考試自動(dòng)組卷、成績(jī)自動(dòng)批改、學(xué)生自主練習(xí)等單詞學(xué)習(xí)功能,能夠滿足高并發(fā)考試的需求。通過(guò)壓力測(cè)試,教師、學(xué)生實(shí)際使用,效果良好。
【關(guān)鍵詞】獨(dú)立學(xué)院;英語(yǔ)單詞;學(xué)習(xí)系統(tǒng)
單詞學(xué)習(xí)是英語(yǔ)學(xué)習(xí)中最重要的一環(huán),目前部分獨(dú)立學(xué)院存在師資力量不足,學(xué)生對(duì)傳統(tǒng)的英語(yǔ)單詞學(xué)習(xí)方法厭倦等問(wèn)題,已有的單詞學(xué)習(xí)軟件內(nèi)容與獨(dú)立學(xué)院英語(yǔ)教學(xué)的內(nèi)容不一致,沒(méi)有專門的針對(duì)獨(dú)立學(xué)院學(xué)生的英語(yǔ)單詞學(xué)習(xí)系統(tǒng)。為了解決這一問(wèn)題,通過(guò)總結(jié)多年教學(xué)活動(dòng)實(shí)踐經(jīng)驗(yàn),開(kāi)發(fā)一套能夠適應(yīng)獨(dú)立學(xué)院學(xué)生的單詞學(xué)習(xí)的“教”與“學(xué)”的單詞學(xué)習(xí)系統(tǒng)有較高的實(shí)用意義。
一、獨(dú)立學(xué)院英語(yǔ)單詞學(xué)習(xí)系統(tǒng)開(kāi)發(fā)
(一)系統(tǒng)開(kāi)發(fā)的需求
我們結(jié)合獨(dú)立學(xué)院的特點(diǎn),對(duì)英語(yǔ)單詞學(xué)習(xí)系統(tǒng)進(jìn)行了詳細(xì)的系統(tǒng)功能分析,選擇使用開(kāi)源軟件Spring、Hibernate、Jquery等技術(shù)進(jìn)行開(kāi)發(fā)英語(yǔ)單詞學(xué)習(xí)軟件。主要從以下幾個(gè)方面滿足系統(tǒng)功能需求:
1.批量導(dǎo)入數(shù)據(jù)功能
批量導(dǎo)入數(shù)據(jù)功能可以批量導(dǎo)入單詞學(xué)習(xí)系統(tǒng)所需的班級(jí)信息、學(xué)生信息、教師信息、管理員信息、題庫(kù)信息、題目信息等基本信息。解決這些信息分布在各個(gè)不同的應(yīng)用系統(tǒng)中,數(shù)據(jù)格式、數(shù)據(jù)結(jié)構(gòu)等諸多不一致等問(wèn)題,這樣可以降低獨(dú)立學(xué)院教師的工作強(qiáng)度,提高工作效率。
2.自動(dòng)組卷功能
自動(dòng)組卷功能,同時(shí)支持計(jì)算機(jī)抽題和人工出題方式,教師可以選擇不同的單詞試題難度、所屬單元等條件,為不同班級(jí)的學(xué)生,指定英語(yǔ)單詞題目,完成自動(dòng)組卷任務(wù)。
3.自動(dòng)批改功能
自動(dòng)批改是指當(dāng)學(xué)生完成答題后,由計(jì)算機(jī)根據(jù)不同題型自動(dòng)批改試卷。該功能設(shè)置自動(dòng)批改選擇題、判斷題的正確率達(dá)到100%,完型填空等簡(jiǎn)單類型主觀題正確率達(dá)到95%。在計(jì)算進(jìn)自動(dòng)批改后,為了保證批改的正確性,還可由教師進(jìn)行人工校對(duì)或人工批改。
4.學(xué)生練習(xí)功能
學(xué)生練習(xí)是指學(xué)生可以從不同難度的題庫(kù)中自行抽取不同類型的題目進(jìn)行練習(xí),系統(tǒng)自動(dòng)判斷學(xué)生練習(xí)結(jié)果,對(duì)提高英語(yǔ)單詞學(xué)習(xí)的重復(fù)率和提高學(xué)生的學(xué)習(xí)興趣有很好的作用。
5.高并發(fā)需求
單詞學(xué)習(xí)系統(tǒng)按全校統(tǒng)一組織英語(yǔ)單詞考試測(cè)算,要能滿足3000學(xué)生同時(shí)在線考試的要求,以學(xué)生登錄系統(tǒng)為例:當(dāng)3000學(xué)生同時(shí)登錄,按每個(gè)學(xué)生30K的網(wǎng)絡(luò)數(shù)據(jù)傳輸量計(jì)算,將產(chǎn)生大約90M網(wǎng)絡(luò)數(shù)據(jù)傳輸量,將產(chǎn)生大約1分鐘的延時(shí),這樣就會(huì)存在部分學(xué)生登陸超時(shí)的問(wèn)題。另外系統(tǒng)要求能每秒并發(fā)批改60個(gè)學(xué)生提交的試卷,這對(duì)服務(wù)器的CPU資源是一個(gè)較大的壓力,所以在系統(tǒng)架構(gòu)設(shè)計(jì)的時(shí)候必須充分考慮并發(fā)需求。
(二)系統(tǒng)架構(gòu)的選擇
英語(yǔ)單詞系統(tǒng)需實(shí)現(xiàn)批量導(dǎo)入、自動(dòng)組卷、自動(dòng)批改、高并發(fā)等需求,為了實(shí)現(xiàn)以上需求,我們引入了MVC的架構(gòu)開(kāi)發(fā)思想,使用了hibernate、spring、jquery等開(kāi)源軟件實(shí)現(xiàn)。同時(shí)為了減少系統(tǒng)的前期投入,我們使用了虛擬化服務(wù)器,并對(duì)虛擬化設(shè)備所在的網(wǎng)絡(luò)流量負(fù)載和服務(wù)器資源占用都進(jìn)行了優(yōu)化,提升了系統(tǒng)運(yùn)行的效率。此外,為了應(yīng)對(duì)高并發(fā)的學(xué)生登錄、試卷提交的情況,我們使用了encache等對(duì)象緩存技術(shù),在數(shù)據(jù)庫(kù)和應(yīng)用層均使用緩存方式增強(qiáng)了系統(tǒng)的并發(fā)性能。
二、獨(dú)立學(xué)院英語(yǔ)單詞學(xué)習(xí)系統(tǒng)實(shí)現(xiàn)
(一)Hibernate模型組件開(kāi)發(fā)
針對(duì)數(shù)據(jù)持久化的問(wèn)題,我們使用了Hibernate作為持久化框架,該框架可以根據(jù)數(shù)據(jù)定義語(yǔ)言自動(dòng)生成相應(yīng)的實(shí)體類和操作類。其優(yōu)勢(shì)在于對(duì)SQL語(yǔ)言的事物處理、數(shù)據(jù)庫(kù)的連接超時(shí)機(jī)制管理的編程比較方便,可以使用annotation進(jìn)行配置,極大的降低了開(kāi)發(fā)難度。因?yàn)槲覀冊(cè)谙到y(tǒng)批改試卷時(shí)使用了mysql的一些臨時(shí)表,而hibernate對(duì)Mysql數(shù)據(jù)庫(kù)的臨時(shí)表不能實(shí)現(xiàn)熱配置,為了解決這一問(wèn)題,我們對(duì)hibernate框架的源代碼進(jìn)行了一些修改,實(shí)現(xiàn)了臨時(shí)表創(chuàng)建、刪除、修改和插入數(shù)據(jù)時(shí)hibernate的配置文件的動(dòng)態(tài)映射機(jī)制。
(二)Spring業(yè)務(wù)邏輯組件開(kāi)發(fā)
Spring作為當(dāng)今較流行的web開(kāi)發(fā)框架,目前實(shí)現(xiàn)了MVC架構(gòu)的所有層次,為了簡(jiǎn)化開(kāi)發(fā),我們只使用了Spring AOP和Spring Bean實(shí)現(xiàn)業(yè)務(wù)邏輯,具有面向切面編程思想的Spring AOP可以方便解決用戶登錄、字符編碼等問(wèn)題,Spring Bean實(shí)現(xiàn)的業(yè)務(wù)邏輯在使用了面向?qū)ο缶幊趟枷?,并且使每個(gè)業(yè)務(wù)邏輯對(duì)應(yīng)一個(gè)函數(shù),極大的提高了開(kāi)發(fā)效率和降低了測(cè)試難度。為了同時(shí)兼容PC、手機(jī)平臺(tái),我們規(guī)定所有的業(yè)務(wù)邏輯函數(shù)都使用Json格式通信。為了降低系統(tǒng)并發(fā)帶來(lái)的系統(tǒng)負(fù)擔(dān),我們?cè)趕pring層也采用了緩存技術(shù),實(shí)現(xiàn)針對(duì)大數(shù)據(jù)量訪問(wèn)的不同業(yè)務(wù)對(duì)象進(jìn)行緩存。
(三)Jquery界面組件開(kāi)發(fā)
在視圖層我們使用了Jquery對(duì)Json格式數(shù)據(jù)進(jìn)行解析,同時(shí)Jquery對(duì)操作網(wǎng)頁(yè)元素非常方便,特別是Jquery的過(guò)濾器功能,能夠批量選擇我們需要的多個(gè)元素。為了解決Jquery在首次訪問(wèn)英語(yǔ)單詞系統(tǒng)的時(shí)候需要下載35k的數(shù)據(jù),而導(dǎo)致學(xué)生開(kāi)始考試時(shí)網(wǎng)絡(luò)數(shù)據(jù)流量較大問(wèn)題,我們?cè)贘query官網(wǎng)上對(duì)Jquery進(jìn)行了定制化的裁剪。同時(shí)采用Nginx服務(wù)器負(fù)載均衡,部署多個(gè)Jquery下載站點(diǎn)。
三、獨(dú)立學(xué)院英語(yǔ)單詞學(xué)習(xí)系統(tǒng)測(cè)試
因?yàn)樵撓到y(tǒng)將同時(shí)支撐全校3000學(xué)生英語(yǔ)單詞期末測(cè)試,一旦在考試過(guò)程中出現(xiàn)系統(tǒng)宕機(jī)等問(wèn)題將造成較大的影響。而同時(shí)組織如此大規(guī)模的人工測(cè)試并不現(xiàn)實(shí),為了驗(yàn)證系統(tǒng)的正確性,保證系統(tǒng)在考試中能夠正常使用,我們?cè)陂_(kāi)發(fā)之前,就針對(duì)所有的業(yè)務(wù)邏輯功能開(kāi)發(fā)了相應(yīng)的單元測(cè)試模塊。后來(lái)發(fā)現(xiàn),這種做法減少了集成測(cè)試和確認(rèn)測(cè)試過(guò)程中的工作量。在開(kāi)發(fā)管理的過(guò)程中,因?yàn)槲覀冺?xiàng)目組由6個(gè)成員組成,開(kāi)發(fā)水平不盡一致,所以我們?cè)谡麄€(gè)系統(tǒng)開(kāi)發(fā)過(guò)程中使用了持續(xù)集成的概念,搭建了jenkins持續(xù)集成服務(wù)器,規(guī)定項(xiàng)目組所有成員每次提交代碼必須通過(guò)相應(yīng)的單元測(cè)試,體現(xiàn)了敏捷開(kāi)發(fā)中的測(cè)試先行的原則。在系統(tǒng)確認(rèn)測(cè)試的過(guò)程中,使用loader runner等工具,錄制模擬登錄腳本和考試過(guò)程提交腳本,并對(duì)其進(jìn)行了壓力測(cè)試。這些測(cè)試腳本模擬了在高并發(fā)和網(wǎng)絡(luò)延時(shí)大的情況下系統(tǒng)的工作狀態(tài),找到薄弱環(huán)節(jié)進(jìn)行修正。
四、結(jié)語(yǔ)
綜上所述,該系統(tǒng)的開(kāi)發(fā)解決了獨(dú)立學(xué)院英語(yǔ)單詞“教”與“學(xué)”中具體存在的問(wèn)題。通過(guò)測(cè)試,并實(shí)際使用,得到教師、學(xué)生的良好反饋。當(dāng)然,該系統(tǒng)還存在一些問(wèn)題,例如不支持手寫輸入等功能,將有待再進(jìn)一步開(kāi)發(fā)、完善。
【參考文獻(xiàn)】
[1]詹海寶,張立國(guó). 大學(xué)英語(yǔ)詞匯鎖屏移動(dòng)學(xué)習(xí)軟件的設(shè)計(jì)與應(yīng)用[J]. 中國(guó)遠(yuǎn)程教育,2015,(04):43-48.
[2]張蓉. 英語(yǔ)單詞系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)[J]. 電子測(cè)試,2014,(16):8-10.
[3]胡一平,高佳佳,陸宏. 英語(yǔ)詞匯自適應(yīng)測(cè)試系統(tǒng)中詞匯難度的判定[J]. 現(xiàn)代教育技術(shù),2016,(03):100-106.
[4]鄔顯豪,徐彬凌,胡大川,錢誠(chéng),韓戴鴻. 基于J2EE架構(gòu)電子政務(wù)系統(tǒng)的研究和開(kāi)發(fā)研究[J]. 電子技術(shù)與軟件工程,2016,(12):81.