◆翟 翔 葉 雯
院校體能體格測(cè)試管理系統(tǒng)的開發(fā)與實(shí)現(xiàn)
◆翟 翔 葉 雯
(中國(guó)人民武裝警察部隊(duì)海警學(xué)院 浙江 315800)
隨著信息化建設(shè)的不斷發(fā)展,開發(fā)相關(guān)應(yīng)用來(lái)滿足院校體能體格測(cè)試管理需求已成必然趨勢(shì)。通過(guò)開發(fā)MVC模式的Java web實(shí)現(xiàn)局域網(wǎng)內(nèi)的多端成績(jī)共享、數(shù)據(jù)交互,通過(guò)數(shù)據(jù)可視化和數(shù)據(jù)挖掘?yàn)橛脩籼峁┹o助決策,有效提升了院校體能體格測(cè)試管理的信息化、科學(xué)化、網(wǎng)絡(luò)化程度。
MVC;AJAX;數(shù)據(jù)挖掘
傳統(tǒng)的體能體格測(cè)試管理測(cè)試流程不規(guī)范,相關(guān)測(cè)試信息留存不足,測(cè)試成績(jī)沒(méi)有系統(tǒng)化的分析處理,成績(jī)登記文件管理煩瑣,查詢個(gè)人成績(jī)難度大。通過(guò)輕型Java web的開發(fā)能夠有效消除以上弊端,減輕管理負(fù)擔(dān),建立標(biāo)準(zhǔn)統(tǒng)一的成績(jī)分析評(píng)價(jià)體系,實(shí)現(xiàn)綜合管理、智能化管理。
通過(guò)對(duì)實(shí)際管理需求的考量,將系統(tǒng)主要?jiǎng)澐譃橛脩裟K、成績(jī)CRUD模塊、成績(jī)分析處理模塊。用戶模塊承擔(dān)著用戶的注冊(cè)、管理、登錄、登出等功能,成績(jī)CRUD模塊承擔(dān)成績(jī)的錄入、查詢、更新、刪除等功能,成績(jī)分析處理模塊通過(guò)對(duì)成績(jī)數(shù)據(jù)的可視化和數(shù)據(jù)挖掘,為用戶提供科學(xué)的統(tǒng)計(jì)、預(yù)測(cè)、決策輔助功能。各個(gè)功能模塊相互獨(dú)立,在功能實(shí)現(xiàn)中存在耦合,內(nèi)部數(shù)據(jù)具有共享性。
數(shù)據(jù)庫(kù)設(shè)計(jì)是系統(tǒng)的核心,有效規(guī)劃字段和數(shù)據(jù)類型為功能實(shí)現(xiàn)和信息的流轉(zhuǎn)奠定了基礎(chǔ)。在系統(tǒng)中共有用戶、單位、用戶類別、測(cè)試類別、測(cè)試項(xiàng)目、測(cè)試成績(jī)、管理員7個(gè)實(shí)體數(shù)據(jù)表,3個(gè)實(shí)體關(guān)系映射表,每個(gè)實(shí)體都對(duì)應(yīng)著數(shù)個(gè)屬性。實(shí)體之間關(guān)系有一對(duì)一聯(lián)系、多對(duì)一聯(lián)系、多對(duì)多聯(lián)系三種范式。以Role和User映射數(shù)據(jù)表為例,該表為一個(gè)關(guān)系表,如果將ROLE ID直接放在用戶數(shù)據(jù)表中就無(wú)法實(shí)現(xiàn)Role和User的(M:N)多對(duì)多范式,通過(guò)映射關(guān)系表的建立,一個(gè)人員可以擁有多種身份,一個(gè)身份也可以賦給多個(gè)人員。
MVC思想是將一個(gè)應(yīng)用分成三個(gè)部分,Model(模型)、View(視圖)、Controller(控制器),三個(gè)部分協(xié)同工作,實(shí)現(xiàn)了各層之間的低耦合和可移植拓展性。在本系統(tǒng)中,通過(guò)Springboot整合SSM框架,使用Maven項(xiàng)目統(tǒng)一管理jar包,將項(xiàng)目開發(fā)和管理過(guò)程抽象成一個(gè)項(xiàng)目對(duì)象模型,簡(jiǎn)化開發(fā)過(guò)程。系統(tǒng)前端采用Html整合Thymeleaf實(shí)現(xiàn)頁(yè)面渲染,Js實(shí)現(xiàn)動(dòng)態(tài)效果。系統(tǒng)后端主要分為四層,DAO層承擔(dān)與數(shù)據(jù)庫(kù)的功能交互,Domain層實(shí)體化數(shù)據(jù)表,提供數(shù)據(jù)表操作的成員方法,Service層負(fù)責(zé)業(yè)務(wù)模塊和邏輯應(yīng)用設(shè)計(jì),Controller層負(fù)責(zé)業(yè)務(wù)模塊流程控制??刂茖诱{(diào)用服務(wù)層的方法,服務(wù)層調(diào)用數(shù)據(jù)訪問(wèn)層的方法,調(diào)用參數(shù)使用Entity進(jìn)行傳遞。
用戶的注冊(cè)、登錄功能代表著系統(tǒng)的入口,主要負(fù)責(zé)對(duì)用戶的信息匹配驗(yàn)證,通過(guò)隨機(jī)驗(yàn)證碼來(lái)防止暴力登錄。視圖層為用戶提供基本的數(shù)據(jù)檢驗(yàn)功能,檢驗(yàn)用戶名、密碼、驗(yàn)證碼是否為空。信息校驗(yàn)由web發(fā)出請(qǐng)求→控制層接收控制數(shù)據(jù)轉(zhuǎn)向→service驗(yàn)證數(shù)據(jù)正確性→dao層定義數(shù)據(jù)獲取方法→domain層存入、讀取數(shù)據(jù)。通過(guò)Ajax請(qǐng)求實(shí)現(xiàn)前段和數(shù)據(jù)庫(kù)的交互,交互方法為POST,交互數(shù)據(jù)為“codekey:用戶名、密碼、驗(yàn)證碼”,數(shù)據(jù)校驗(yàn)成功后根據(jù)控制器指令進(jìn)入index.html,校驗(yàn)失敗進(jìn)入login頁(yè)面并刷新驗(yàn)證碼。驗(yàn)證碼主要由控制器執(zhí)行文件產(chǎn)生,存入Redis數(shù)據(jù)庫(kù)后,與codekey進(jìn)行校驗(yàn),在HTML頁(yè)面中加入驗(yàn)證碼視圖,單擊更新。
Ajax向服務(wù)器發(fā)送一個(gè)請(qǐng)求需要三個(gè)參數(shù),分別為定義發(fā)送請(qǐng)求使用的方法、規(guī)定服務(wù)端腳本的URL、規(guī)定應(yīng)當(dāng)對(duì)請(qǐng)求進(jìn)行異步處理。和傳統(tǒng)JS不同的是,Ajax只進(jìn)行數(shù)據(jù)內(nèi)容的請(qǐng)求,不加載整個(gè)頁(yè)面,提高數(shù)據(jù)處理與反饋速度,減輕服務(wù)器負(fù)擔(dān)。
用戶注冊(cè)功能實(shí)現(xiàn)同用戶登錄基本一致,區(qū)別的是服務(wù)層對(duì)數(shù)據(jù)處理的業(yè)務(wù)邏輯不一樣。
管理員模塊的成員管理采用基于角色的權(quán)限訪問(wèn)控制RBAC,將權(quán)限和人員類別建立映射關(guān)系,給用戶授予角色(人員類別)從而獲得該角色的權(quán)限,變更用戶的角色以變更其權(quán)限內(nèi)容,通過(guò)建立Role和User映射數(shù)據(jù)表來(lái)實(shí)現(xiàn)。
用戶管理功能通過(guò)創(chuàng)建服務(wù)層接口并定義實(shí)現(xiàn)方法,創(chuàng)建對(duì)應(yīng)的Controller并提供Ajax請(qǐng)求的地址,創(chuàng)建js,具體化Ajax請(qǐng)求。對(duì)于用戶有效性狀態(tài)的控制使用checkbox來(lái)實(shí)現(xiàn),在js中實(shí)現(xiàn)控制狀態(tài)的轉(zhuǎn)換。
系統(tǒng)采用組織關(guān)系樹來(lái)表達(dá)人員的組織結(jié)構(gòu)關(guān)系,在添加用戶單位時(shí),增加上級(jí)單位ID屬性,ID為NULL時(shí)表示該單位為首級(jí)單位。樹形結(jié)構(gòu)數(shù)據(jù)的拼裝既可通過(guò)jsTree跨瀏覽器樹控件實(shí)現(xiàn),也可通過(guò)Service層遞歸算法實(shí)現(xiàn),由Domain層承擔(dān)數(shù)據(jù)的獲取。
測(cè)試信息包括測(cè)試類別、項(xiàng)目、成績(jī)、測(cè)試人、時(shí)間、地點(diǎn)、備注、測(cè)試編號(hào)。測(cè)試信息CRUD既面向管理員又面向用戶,數(shù)據(jù)管理員承擔(dān)著錄入、更新測(cè)試信息的任務(wù),用戶通過(guò)該模塊實(shí)現(xiàn)成績(jī)查詢功能。用戶發(fā)出成績(jī)CRUD請(qǐng)求后,控制器根據(jù)請(qǐng)求尋找Service接口,在Impl中對(duì)實(shí)現(xiàn)方法進(jìn)行定義,調(diào)用Dao層實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),采用Service層接口+實(shí)現(xiàn)類更有助于“松耦合”,業(yè)務(wù)邏輯更加便于拓展。
在本模塊,控制層提供了5個(gè)控制器,分別為修改成績(jī)、查詢個(gè)人全部成績(jī)、查詢當(dāng)前用戶全部成績(jī)統(tǒng)計(jì)信息、查詢指定項(xiàng)目成績(jī)信息、查詢所有用戶指定項(xiàng)目所有成績(jī)。服務(wù)層為成績(jī)查詢提供了根據(jù)用戶id和測(cè)試項(xiàng)目id進(jìn)行查詢,根據(jù)用戶id和測(cè)試類別id進(jìn)行查詢,根據(jù)用戶id查詢總成績(jī)、全部成績(jī)、均分、排名6個(gè)實(shí)現(xiàn)接口并在實(shí)現(xiàn)類中逐個(gè)定義方法。數(shù)據(jù)庫(kù)訪問(wèn)層提供了1個(gè)按用戶檢索個(gè)人總分的方法。進(jìn)而,在功能上用戶整合了多種查詢信息的方式,包括簡(jiǎn)單查詢、模糊查詢、索引查詢、關(guān)聯(lián)查詢、子查詢等多種查詢方式。
可視化分析通過(guò)折線圖來(lái)反映個(gè)人成績(jī)變化趨勢(shì),通過(guò)餅狀圖來(lái)反映整體測(cè)試成績(jī)分布,通過(guò)散點(diǎn)圖反映整體體格分布。采用Highcharts圖表庫(kù)來(lái)為應(yīng)用添加交互性圖表,通過(guò)Ajax加載數(shù)據(jù),在圖表配置中需實(shí)例化綁定容器,可以通過(guò)構(gòu)造函數(shù)、chart.renderTo指定、jQuery插件的形式調(diào)用來(lái)實(shí)現(xiàn)。數(shù)據(jù)列配置是功能實(shí)現(xiàn)的核心,數(shù)據(jù)列中的數(shù)據(jù)數(shù)組通過(guò)交互加載的數(shù)值數(shù)組來(lái)定義,在實(shí)例化配置中,可以配置在plotOptions.series中針對(duì)所有類型圖表有效,配置在plotOptions中針對(duì)指定圖表類型有效,配置在series中針對(duì)當(dāng)前數(shù)據(jù)列有效,三種方式權(quán)重依次遞增,配置在series的屬性會(huì)覆蓋plotOptions的屬性。
數(shù)據(jù)挖掘通過(guò)關(guān)聯(lián)規(guī)則來(lái)反映數(shù)據(jù)之間的內(nèi)在聯(lián)系和特征,如體能測(cè)試項(xiàng)目成績(jī)是否和性別、人員類型、所在單位存在關(guān)聯(lián),是否項(xiàng)目與項(xiàng)目之間存在關(guān)聯(lián)等。
首先要進(jìn)行數(shù)據(jù)選擇和預(yù)處理,將文本數(shù)據(jù)結(jié)構(gòu)化,去量綱,將數(shù)據(jù)歸一化處理,去除字段間大小不均衡帶來(lái)的影響。其次采用Apriori算法計(jì)算頻繁項(xiàng)集,逐層迭代由第N相集計(jì)算出第N+1相集。
最后對(duì)頻繁項(xiàng)集展開置信度分析,數(shù)學(xué)方法為:
并開展結(jié)果分析和評(píng)估。如400米短跑成績(jī)優(yōu)異的人員,其400米游泳成績(jī)也較為優(yōu)異,在后期計(jì)劃中,可以將二者合并訓(xùn)練,起到輔助決策的作用。
XGBoost回歸模型算法框架相對(duì)傳統(tǒng)的梯度提升決策樹算法做了很多改進(jìn),可以通過(guò)XGBoost回歸模型算法來(lái)預(yù)測(cè)成績(jī)動(dòng)態(tài),實(shí)現(xiàn)成績(jī)預(yù)警和反饋機(jī)制,通過(guò)系統(tǒng)的外部接口實(shí)現(xiàn)框架的運(yùn)用。
院校體能體格測(cè)試管理系統(tǒng)充分考慮實(shí)際需求,以輕量Java web來(lái)實(shí)現(xiàn)高效管理,建立標(biāo)準(zhǔn)的人員類別與功能權(quán)限的映射關(guān)系。通過(guò)MVC式架構(gòu),更便于日后的功能擴(kuò)展和業(yè)務(wù)邏輯的整合。通過(guò)可視化和數(shù)據(jù)挖掘,建立統(tǒng)一的成績(jī)?cè)u(píng)價(jià)體系,起到?jīng)Q策輔助、綜合管理作用。
[1]閆金奎.基于數(shù)據(jù)挖掘的高校學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].天津大學(xué),2016.
[2]趙陽(yáng).某高職院校學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].山東大學(xué),2012.