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

并開展結果分析和評估。如400米短跑成績優異的人員,其400米游泳成績也較為優異,在后期計劃中,可以將二者合并訓練,起到輔助決策的作用。
XGBoost回歸模型算法框架相對傳統的梯度提升決策樹算法做了很多改進,可以通過XGBoost回歸模型算法來預測成績動態,實現成績預警和反饋機制,通過系統的外部接口實現框架的運用。
院校體能體格測試管理系統充分考慮實際需求,以輕量Java web來實現高效管理,建立標準的人員類別與功能權限的映射關系。通過MVC式架構,更便于日后的功能擴展和業務邏輯的整合。通過可視化和數據挖掘,建立統一的成績評價體系,起到決策輔助、綜合管理作用。
[1]閆金奎.基于數據挖掘的高校學生成績管理系統的設計與實現[D].天津大學,2016.
[2]趙陽.某高職院校學生成績管理系統的設計與實現[D].山東大學,2012.