胡秀華 李承瑞 李桂萍
摘要 教務(wù)系統(tǒng)是實(shí)現(xiàn)高校教務(wù)和教學(xué)工作的基礎(chǔ)。隨著互聯(lián)網(wǎng)的發(fā)展及移動(dòng)設(shè)備的普及,在移動(dòng)設(shè)備上實(shí)現(xiàn)教務(wù)系統(tǒng)的模型設(shè)計(jì)和實(shí)現(xiàn)策略具有非常重要的理論價(jià)值與實(shí)際意義。提出了適合移動(dòng)教務(wù)系統(tǒng)的系統(tǒng)架構(gòu)和數(shù)據(jù)庫架構(gòu),給出了一種簡單的排課算法,設(shè)計(jì)并實(shí)現(xiàn)了基于nodejs的移動(dòng)教務(wù)系統(tǒng)。系統(tǒng)測(cè)試表明,該系統(tǒng)比傳統(tǒng)的教務(wù)系統(tǒng)操作簡便,具有較高的安全性和魯棒性。
關(guān)鍵詞關(guān)鍵詞:
教務(wù)系統(tǒng);移動(dòng)設(shè)備;模型設(shè)計(jì);排課算法
DOIDOI:10.11907/rjdk.182033
中圖分類號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):16727800(2018)009012504
英文標(biāo)題Design and Implementation of Teaching Management System
for University Based on Mobile Platform
——副標(biāo)題
英文作者HU Xiuhua, LI Chengrui, LI Guiping, WANG Changyuan
英文作者單位(School of Computer Science and Engineering, Xi′an Technological University, Xi′an 710021, China)
英文摘要Abstract:The educational administration system is the basis for realizing the educational affairs and teaching work of colleges and universities. With the development of the Internet and the popularization of mobile devices, it is of great theoretical and practical significance to realize the model design and implementation strategy of the educational administration system on mobile devices. The system architecture and database architecture suitable for mobile educational administration system are proposed. A simple scheduling algorithm is given. The mobile education system based on nodejs is designed and implemented. System tests show that the system is simpler to operate than traditional educational systems, and has higher security and robustness.
英文關(guān)鍵詞Key Words:educational administration system;mobile device;model design;course arrangement algorithm
0引言
隨著高校教育規(guī)模的擴(kuò)大以及移動(dòng)設(shè)備的快速發(fā)展,多樣化的終端信息教務(wù)系統(tǒng)成為高校教務(wù)管理環(huán)節(jié)不可或缺的組成部分,很多高校已經(jīng)開發(fā)并利用移動(dòng)教務(wù)系統(tǒng)。
移動(dòng)系統(tǒng)框架和功能模塊大多涉及系統(tǒng)與權(quán)限管理、學(xué)生信息管理、教學(xué)管理、課程管理、排課管理等[12],在搭建系統(tǒng)技術(shù)方面,界面和UI顯示多為Android軟件和html技術(shù)[34],系統(tǒng)框架多為C/S和B/S結(jié)構(gòu)[56]。國外相關(guān)技術(shù)如JavaScript、輕量級(jí)后臺(tái)服務(wù)器、動(dòng)態(tài)語言以及NoSQL發(fā)展十分迅猛,尤其對(duì)JavaScript的相關(guān)研究十分成熟[7]。JavaScript相對(duì)于傳統(tǒng)的webServer在處理高并發(fā)訪問方面擁有很大的優(yōu)勢(shì)[810],MongoDB在Web領(lǐng)域快速讀寫方面也超過了mysql[11]。在排課問題上,研究思路主要以啟發(fā)式方法為主,基于貪心算法等解決NP完全問題的思想用于排課過程,但性能容易受限[1214]。
本文選用合適的系統(tǒng)架構(gòu)及新興技術(shù)設(shè)計(jì)了一套更高性能的移動(dòng)高校教務(wù)管理系統(tǒng),實(shí)現(xiàn)教務(wù)系統(tǒng)在移動(dòng)端的顯示、提交表單操作以及與后臺(tái)的接口,并給出一個(gè)簡單的排課算法。
1系統(tǒng)設(shè)計(jì)概要
本文擬設(shè)計(jì)的教務(wù)系統(tǒng)具有典型的教務(wù)系統(tǒng)基本功能,包括基礎(chǔ)信息管理、師資管理、課程管理、考試管理、系統(tǒng)管理,主要面向?qū)W生、教務(wù)人員、教師與系統(tǒng)管理員4種角色。
系統(tǒng)采用服務(wù)器/瀏覽器(Browser/Server, B/S)結(jié)構(gòu),使用模型-視圖-控制器(Model View Controller, MVC)框架構(gòu)建項(xiàng)目結(jié)構(gòu),整體架構(gòu)采用nodejs + express作為Web服務(wù)器的技術(shù)支持[1517]。數(shù)據(jù)庫使用MongoDB的分片集群作為數(shù)據(jù)存儲(chǔ),使用docker建立分片集群,每個(gè)節(jié)點(diǎn)和其它主機(jī)的相同節(jié)點(diǎn)互相組成復(fù)制集結(jié)構(gòu),復(fù)制集的作用是提高數(shù)據(jù)安全性,保證數(shù)據(jù)庫不會(huì)因?yàn)橐粋€(gè)主機(jī)的宕機(jī)而無法訪問。分片是在數(shù)據(jù)量太大對(duì)主機(jī)性能要求太高時(shí)的豎向擴(kuò)展,以保證在超量數(shù)據(jù)下數(shù)據(jù)庫仍有較好的讀寫效率。前端網(wǎng)頁使用jquery、layui等框架搭建網(wǎng)頁結(jié)構(gòu)[18],前后端數(shù)據(jù)傳遞使用表單提交,使用異步 JavaScript 和 XML (Asynchronous JavaScript and XML, Ajax)實(shí)現(xiàn)網(wǎng)頁異步更新和數(shù)據(jù)傳遞[1921]。系統(tǒng)采用session保存用戶信息,在登錄時(shí)將不同的用戶引導(dǎo)至不同的路由,并使用登錄信息鎖保證用戶不會(huì)訪問到其它路徑。
項(xiàng)目主體采用MVC架構(gòu)構(gòu)建,將視圖、控制器與模型分離,保證項(xiàng)目結(jié)構(gòu)的高內(nèi)聚低耦合。項(xiàng)目使用Node.js作為網(wǎng)站服務(wù)器,以express作為Web應(yīng)用開發(fā)框架,主體結(jié)構(gòu)如圖1所示。
2系統(tǒng)功能設(shè)計(jì)與實(shí)現(xiàn)
2.1系統(tǒng)總體功能設(shè)計(jì)
教務(wù)系統(tǒng)包括5個(gè)模塊:基礎(chǔ)信息設(shè)置、師資管理、系統(tǒng)管理、課程管理和考試管理,每個(gè)模塊的子模塊如圖3所示。
2.2用戶登錄與權(quán)限控制
用戶進(jìn)入網(wǎng)站后,選擇自己的角色身份,輸入賬號(hào)密碼即可登錄。通過權(quán)限設(shè)置將不同的角色引導(dǎo)至不同的路由,根據(jù)身份權(quán)限轉(zhuǎn)入3個(gè)獨(dú)立的路由系統(tǒng)。當(dāng)用戶尚未登錄或者以不屬于某個(gè)路由的角色訪問此路由時(shí),權(quán)限函數(shù)就會(huì)生效,使用戶跳回登錄頁面。
2.3基礎(chǔ)信息模塊設(shè)計(jì)與實(shí)現(xiàn)
移動(dòng)教務(wù)系統(tǒng)基礎(chǔ)信息參與角色是學(xué)生和教務(wù)管理人員。教務(wù)管理人員負(fù)責(zé)導(dǎo)入學(xué)生基本信息,修改、審核個(gè)人信息,生成學(xué)生信息報(bào)表,提供查詢學(xué)生信息功能。學(xué)籍變動(dòng)管理由教務(wù)管理人員負(fù)責(zé)維護(hù)、修改學(xué)生學(xué)籍信息。教學(xué)計(jì)劃管理由教務(wù)管理人員負(fù)責(zé)導(dǎo)入教學(xué)計(jì)劃并提供給學(xué)生查詢。獎(jiǎng)罰管理記錄學(xué)生所獲獎(jiǎng)勵(lì)以及處罰情況,學(xué)生可查詢。
2.4系統(tǒng)管理模塊設(shè)計(jì)與實(shí)現(xiàn)
系統(tǒng)實(shí)現(xiàn)功能主要有使用日志向管理員展示整個(gè)系統(tǒng)狀態(tài)、查看數(shù)據(jù)庫情況以及添加教務(wù)角色賬號(hào)功能。該模塊有兩個(gè)頁面,一個(gè)是顯示系統(tǒng)日志頁面,另一個(gè)是查看所有數(shù)據(jù)庫表頁面。系統(tǒng)管理員可通過此頁面查看、修改系統(tǒng)數(shù)據(jù)。
2.5師資管理模塊設(shè)計(jì)與實(shí)現(xiàn)
師資管理包括3個(gè)模塊:師資信息、教學(xué)工作、科研工作,本模塊重點(diǎn)是教學(xué)工作和科研工作管理,主要由教務(wù)管理人員和教師參與。首先教務(wù)人員根據(jù)教學(xué)計(jì)劃將教學(xué)工作發(fā)布出去,教師查看后對(duì)教學(xué)工作進(jìn)行申報(bào),然后教務(wù)人員進(jìn)行審核??蒲泄ぷ髁鞒毯徒虒W(xué)工作流程相似,只是由教師直接申報(bào)科研工作。
2.6課程管理模塊設(shè)計(jì)與實(shí)現(xiàn)
課程管理由排課、課程展示、選課3大模塊組成。排課系統(tǒng)主要由教務(wù)完成,提交基本數(shù)據(jù)后由計(jì)算機(jī)進(jìn)行排課,然后由教務(wù)人員進(jìn)行校對(duì)、修改,排課系統(tǒng)生成課表后進(jìn)行展示。選課系統(tǒng)由教務(wù)人員生成選課名單并展示,由學(xué)生申請(qǐng)選課。
本文給出一種簡單的排課算法,將整個(gè)原始排課問題分解成多個(gè)子排課問題,考慮時(shí)間、班級(jí)、教師、教室等多個(gè)因素,并將一些常識(shí)性問題作為約束條件。利用貪心算法計(jì)算被分解的問題,通過權(quán)重因子引入約束,采用回溯算法保證結(jié)果的正確性。設(shè)計(jì)的模型具有較低沖突率、較少耗時(shí)和計(jì)算資源占用比。使用Java語言編寫,輸入和輸出的數(shù)據(jù)皆為json文件。
首先對(duì)教師、時(shí)間兩個(gè)屬性進(jìn)行排課。在使用貪心算法對(duì)課程進(jìn)行安排時(shí),如果發(fā)現(xiàn)沖突就取消此次排課流程,并回滾更改的權(quán)重,將此時(shí)間段的權(quán)重降到最低。此算法屬于回溯、貪心算法,每次對(duì)各個(gè)屬性的權(quán)重取當(dāng)前最優(yōu)數(shù)據(jù),當(dāng)發(fā)現(xiàn)有沖突時(shí)返回。
計(jì)算機(jī)排課是個(gè)復(fù)雜的過程,在數(shù)據(jù)量大、約束條件多的條件下,通過人工干涉達(dá)到合理排課是非常重要的。人工干涉包括在排課前輸入數(shù)據(jù)工作、人工進(jìn)行預(yù)排課、排完課后對(duì)課表進(jìn)行適當(dāng)調(diào)整。
2.7考試管理模塊設(shè)計(jì)與實(shí)現(xiàn)
考試管理用例主要由考試信息查詢、考試成績錄入查詢、考試安排等模塊組成??荚囆畔⒅饕荚嚨南嚓P(guān)信息:科目、年紀(jì)、班級(jí)、考試類型等,成績錄入查詢包括教師錄入考試成績、教務(wù)人員審核鎖定、學(xué)生和教師查詢等??荚嚢才虐ń虅?wù)人員根據(jù)教室情況安排考試時(shí)間地點(diǎn),展示給教師和學(xué)生查看。
3前端界面設(shè)計(jì)效果顯示
設(shè)計(jì)的系統(tǒng)網(wǎng)站頁面能適應(yīng)不同的分辨率,可在手機(jī)、平板、電腦上運(yùn)行。圖5、圖6為在不同設(shè)備平臺(tái)運(yùn)行時(shí)的界面顯示效果。
從上述部分實(shí)現(xiàn)結(jié)果可以看出,本文設(shè)計(jì)的系統(tǒng)具有操作簡便、可擴(kuò)展性好等優(yōu)點(diǎn)。
4系統(tǒng)測(cè)試與分析
系統(tǒng)功能測(cè)試有正常功能與異常功能檢測(cè)。經(jīng)測(cè)試,本系統(tǒng)各基本功能均可正常運(yùn)行。分片結(jié)構(gòu)的數(shù)據(jù)庫讀寫量測(cè)試環(huán)境如表2所示。
部分測(cè)試數(shù)據(jù)表明,未進(jìn)行優(yōu)化的mongodb在百萬數(shù)量級(jí)以下的數(shù)據(jù)讀寫水平非常高,完全可以勝任移動(dòng)教務(wù)系統(tǒng)要求,可承擔(dān)短時(shí)間較多的訪問量。
5結(jié)語
本文基于B/S架構(gòu)與MVC思想構(gòu)建了教務(wù)管理系統(tǒng)框架,完成了基礎(chǔ)信息管理、師資信息管理、課程管理及考試管理等各功能模塊設(shè)計(jì),利用Node.js、MongoDB等新興技術(shù)搭建了一套適用于移動(dòng)設(shè)備的教務(wù)系統(tǒng)網(wǎng)站。所設(shè)計(jì)的系統(tǒng)界面友好、可擴(kuò)展性強(qiáng),教務(wù)人員可管理教學(xué)、基本信息、排課、考試等模塊,教師可參與教學(xué)工作、研究工作等模塊,學(xué)生可查詢反饋各類信息。用戶能在手機(jī)、平板與電腦等多種智能終端高效快捷地完成相關(guān)操作,系統(tǒng)測(cè)試結(jié)果驗(yàn)證了技術(shù)方案的可行性。后期研究工作會(huì)繼續(xù)擴(kuò)展系統(tǒng)功能,完善系統(tǒng)安全性與完整性,設(shè)計(jì)更有效的智能排課算法。
參考文獻(xiàn)參考文獻(xiàn):
[1]隋雪莉,許鳴,劉威,等.基于Android平臺(tái)的移動(dòng)教務(wù)系統(tǒng)的研究[J].軟件,2014,35(8):3841.
[2]廖寧,楊文.智慧校園移動(dòng)信息服務(wù)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國教育信息化,2017(23):7073.
[3]賈樹文,楊婷婷.Android系統(tǒng)研究[J].軟件導(dǎo)刊,2014(3):79.
[4]李慧云,何震葦,李麗,等.HTML5技術(shù)與應(yīng)用模式研究[J].電信科學(xué),2012,28(5):2429.
[5]YAN J. Design and implementation of educational administration system on the basis of c/s and b/s heterogeneous architecture[C].International Conference on Information Computing and Applications. Springer Berlin Heidelberg, 2011:473481.
[6]曾珍珍.基于B/S及C/S的教務(wù)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2016,15(3):104107.
[7]WEI S, XHAKAJ F, RYDER B G. Empirical study of the dynamic behavior of JavaScript objects[J]. Software Practice and Experience, 2016,46(7):867889.
[8]MAHMOUD Q H, DOBOSIEWICZ W, SWAYNE D. Redesigning introductory computer programming with HTML, JavaScript, and Java[J]. Acm Sigcse Bulletin, 2004,36(1):120124.
[9]POKORNY J. NoSQL databases: a step to database scalability in web environment[J]. International Journal of Web Information Systems, 2013,9(1):278283.
[10]LI Y, MANOHARAN S. A performance comparison of SQL and NoSQL databases[C].Communications, Computers and Signal Processing. IEEE, 2013:1519.
[11]SNCHEZDEMADARIAGA R, MUOZ A, CASTRO A L, et al. Executing complexityincreasing queries in relational (MySQL) and NoSQL (MongoDB and EXist) sizegrowing ISO/EN 13606 Standardized EHR Databases.[J]. J Vis Exp, 2018(133):12151224.
[12]梁立,陳玉華,徐敏.基于貪心法的排課算法[J].云南師范大學(xué)學(xué)報(bào):自然科學(xué)版,2005,25(3):912.
[13]高武奇,康鳳舉,鐘聯(lián)炯.基于沖突檢測(cè)算法的二級(jí)排課系統(tǒng)[J].西安工業(yè)大學(xué)學(xué)報(bào),2008,28(5):506510.
[14]陳輝,何軍.排課問題的數(shù)學(xué)模型研究[J].沈陽工程學(xué)院學(xué)報(bào):自然科學(xué)版,2017,13(3):273277.
[15]李兵.基于C/S和B/S混合模式的教務(wù)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].硅谷,2009(23):5758.
[16]劉克. MVC架構(gòu)及其在Web應(yīng)用開發(fā)中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2006,23(7):5759.
[17]程桂花,沈煒,何松林,等.Node.js中Express框架路由機(jī)制的研究[J].工業(yè)控制計(jì)算機(jī),2016,29(8):101102.
[18]李海峰.基于HTML5+jQuery Mobile的移動(dòng)學(xué)習(xí)平臺(tái)Web App研究與實(shí)現(xiàn)[J].信息通信,2014(5):8485.
[19]BRUNO E J. Ajax: Asynchronous JavaScript and XML[J]. Doctor Dobbs Journal, 2006,31(2):3235.
[20]諶燕,趙定遠(yuǎn).基于Ajax的異步Web開發(fā)模式[J].成都大學(xué)學(xué)報(bào):自然科學(xué)版,2007,26(4):313316.
[21]林萍,朱嬋.基于Ajax技術(shù)和JavaEE的分頁查詢優(yōu)化[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2017,26(8):184189.
責(zé)任編輯(責(zé)任編輯:杜能鋼)