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