王燕貞,沈毅波
隨著高校素質(zhì)教育的不斷推進,綜合測評已經(jīng)成為考核大學(xué)生綜合素質(zhì)的一種手段.各高校根據(jù)不同的標(biāo)準(zhǔn),將大學(xué)生的德智體等各項指標(biāo)量化為具體的分?jǐn)?shù)或等級,用來體現(xiàn)大學(xué)生在校期間的綜合表現(xiàn),而這一量化的結(jié)果不僅可以作為獎學(xué)金的評定依據(jù),還能作為用人單位招聘的參考條件.經(jīng)調(diào)研,現(xiàn)在大多數(shù)高校仍采用電子表格Excel進行綜合測評信息的錄入、計算、匯總和保存.此種方式存在較多弊端:由于電子表格Excel模板數(shù)據(jù)格式不統(tǒng)一導(dǎo)致最后統(tǒng)計結(jié)果的誤差;各二級學(xué)院數(shù)據(jù)均獨立存放,形成信息孤島;二級學(xué)院各部門無法協(xié)同工作.
目前,已經(jīng)存在應(yīng)用不同技術(shù)實現(xiàn)的高校學(xué)生綜合測評管理系統(tǒng).范金良,劉金陽[1]以SQLServer 2000 作為數(shù)據(jù)庫,采用VB.NET 語言,運用ADO.NET 技術(shù)設(shè)計實現(xiàn)了基于C/S 三層模式的高校學(xué)生綜合測評管理系統(tǒng).崔賽英,李燕梅[2]以Access 作為基礎(chǔ)數(shù)據(jù)庫并進行加密,Win2000 Server 作為網(wǎng)絡(luò)服務(wù)器操作系統(tǒng),同時采用ASP 語言實現(xiàn)了綜合測評成績管理信息系統(tǒng).陳翠紅[3]采用基于C#語言的ASP.NET+SQLServer2008 作為開發(fā)工具,并使用CSS 盒子模型等技術(shù)開發(fā)了基于B/S 模式的綜合測評管理系統(tǒng).任廷艷[4]開發(fā)了基于JSP 和SQLSever 的綜合測評管理系統(tǒng).文獻[5]采用PHP 和MySQL數(shù)據(jù)庫技術(shù)相結(jié)合構(gòu)建了一套綜合測評管理系統(tǒng).文獻[6]采用Oracle dblink技術(shù)、SSH(Struts2+Spring+Hibernate)框架和FreeMarker模板引擎實現(xiàn)了基于數(shù)據(jù)中心的綜合測評管理系統(tǒng).在項目開發(fā)過程中,上述傳統(tǒng)技術(shù)的簡易性和代碼可復(fù)用性要遠低于本文所使用的框架技術(shù)和組件庫.本文根據(jù)漳州職業(yè)技術(shù)學(xué)院綜合測評細則方案,采用目前主流框架技術(shù)SSM和BootStrap,并結(jié)合數(shù)據(jù)庫連接池和CDN 技術(shù)進行優(yōu)化,開發(fā)了基于B/S 模式的綜合測評管理系統(tǒng).該系統(tǒng)實現(xiàn)了獎懲分成績導(dǎo)入功能,自動計算綜合測評各項分值、自動生成綜測排名和成績排名、限時學(xué)生反饋教師核對功能,以及多部門協(xié)同工作功能.
本文設(shè)計開發(fā)的高校學(xué)生綜合測評管理系統(tǒng)采用Tomcat8.0作為服務(wù)器,MYSQL5.7作為數(shù)據(jù)庫服務(wù)器,在JDK8開發(fā)環(huán)境下,使用MyEclipse 2017CI作為開發(fā)工具,同時利用Maven3.0.4進行項目依賴管理,并使用SVN1.8 實現(xiàn)項目版本控制.本系統(tǒng)Web后端采用SSM輕量級框架技術(shù)實現(xiàn),由Mybatis3.4.2、Spring4.1.6和SpringMVC4.1.6組合而成,前端采用的是BootStrap4技術(shù).
Mybatis 內(nèi)部封裝了JDBC 的一系列數(shù)據(jù)庫操作,包括數(shù)據(jù)庫連接Connection、數(shù)據(jù)操作Statement、返回結(jié)果集ResultSet和相關(guān)異常處理等,同時還加入了事務(wù)處理.Mybatis 通過封裝以上這些操作,將程序中的SQL 語句獨立出來,再通過配置XML 文件或者注解建立實體類和SQL語句之間的映射關(guān)系,實現(xiàn)半自動ORM.Spring框架作為管理業(yè)務(wù)對象的容器,代替EJB容器完成Web 應(yīng)用開發(fā)中各層之間的分離.Spring 框架中不但包含控制反轉(zhuǎn)(IoC)、面向切面(AOP)和內(nèi)部MVC 框架,而且能夠整合多種數(shù)據(jù)持久層框架,如Hibernate 和Mybatis.SpringMVC 是SSM框架中的Web 層框架,其通過DispatcherServlet來進行請求的發(fā)送和接收,是一種基于請求驅(qū)動類型的輕量級Web 框架.SpringMVC 是內(nèi)置于Spring 框架中的MVC 模塊.Spring 框架可由用戶選擇不同的Web 框架,其中SpringMVC 和Struts是目前較為流行的兩種Web框架.
BootStrap 是一個適用于開發(fā)響應(yīng)式布局的開源前端組件庫,包含HTML、CSS 和JavaScript開發(fā)工具集.在開發(fā)過程中使用這些工具集不僅可以使Web頁面自適應(yīng)移動設(shè)備,還可以提高代碼的復(fù)用率,提高開發(fā)效率.
企業(yè)級后臺管理系統(tǒng)均采用MVC模式進行開發(fā),較常見的劃分方式是將整個系統(tǒng)分為數(shù)據(jù)持久層、業(yè)務(wù)邏輯層和顯示層[7].在SSM 框架中,數(shù)據(jù)持久層由Mybatis框架完成數(shù)據(jù)操作并提供數(shù)據(jù)處理的API;業(yè)務(wù)邏輯層由Spring 框架負責(zé)管理所有的業(yè)務(wù),包括自動注入、聲明事務(wù)管理等;顯示層由DispatcherServlet 進行請求的發(fā)送和接收.其體系結(jié)構(gòu)如圖1所示.
圖1 SSM框架結(jié)構(gòu)
Spring 作為一個業(yè)務(wù)邏輯層框架,能夠?qū)?shù)據(jù)持久層Mybatis和顯示層SpringMVC進行整合.整合以后,Spring可以接管所有組件的創(chuàng)建工作并進行依賴管理.進行整合的最主要工作就是把Spring 和Mybatis 進行整合,將Mybatis 數(shù)據(jù)源的配置、事物的管理、SqlSessionFactory 的創(chuàng)建,以及數(shù)據(jù)映射接口Mapper 的創(chuàng)建都交給Spring 管理[8].其 次 是 整 合SpringMVC 和Spring,配 置SpringMVC文件實現(xiàn)自動掃描控制器、開啟注解等功能并在web.xml 文件中導(dǎo)入所需的配置文件.具體如圖2所示.
圖2 SSM框架整合
(1)在config.properties 文件中配置JDBC 相關(guān)數(shù)據(jù)操作,包括數(shù)據(jù)庫服務(wù)器地址、登錄用戶名、密碼、JDBC驅(qū)動、連接池大小、等待超時時間等.部分代碼實現(xiàn)如下:
(2)在spring-mybatis.xml文件中配置數(shù)據(jù)源連接數(shù)據(jù)庫,并掃描數(shù)據(jù)訪問層注解.
(3)在applicationContext.xml 文件中讀取配置文件config.properties,并導(dǎo)入spring-mybatis.xml文件.
(4)配置springMVC.xml文件,掃描業(yè)務(wù)邏輯層注解.
(5)在web.xml 文件中導(dǎo)入配置文件log4j.properties、applicationContext.xml 和springMVC.xml,部分代碼如下:
經(jīng)過需求調(diào)研,將高校學(xué)生綜合測評管理系統(tǒng)后臺管理功能分為三個部分:系統(tǒng)管理、資料管理和綜合測評管理.系統(tǒng)管理包含綜合測評基礎(chǔ)分配置、用戶管理、角色管理、資源管理、公告管理和反饋管理.資料管理包含學(xué)院管理、專業(yè)管理、班級管理、學(xué)生管理、宿舍管理、測評細則管理.總體結(jié)構(gòu)設(shè)計如圖3所示.
圖3 高校學(xué)生綜合測評管理系統(tǒng)總體結(jié)構(gòu)設(shè)計
邏輯結(jié)構(gòu)是將概念結(jié)構(gòu)轉(zhuǎn)化為具體的數(shù)據(jù)結(jié)構(gòu)的過程[9].根據(jù)上述分析,將系統(tǒng)劃分為系統(tǒng)管理、資料管理和綜合測評管理三大功能模塊,從而創(chuàng)建相應(yīng)的物理數(shù)據(jù)模型,分別是系統(tǒng)管理模型、資料管理模型和綜合測評管理模型.根據(jù)具體的物理數(shù)據(jù)模型,確定對應(yīng)的系統(tǒng)實體.系統(tǒng)管理物理數(shù)據(jù)模型包括用戶表ct_user,角色表ct_role,用戶角色表ct_user_role,資源表ct_resource,角 色 資 源 表ct_role_resource,公 告 表ct_announcement,反饋表ct_tickling,測評基礎(chǔ)分表ct_base_score,具體模型如圖4所示.
圖4 系統(tǒng)管理物理數(shù)據(jù)模型圖
資料管理物理數(shù)據(jù)模型包括學(xué)院表ct_college,專業(yè)表ct_major,班級表ct_class,學(xué)生表ct_student,宿舍表ct_hostel,基礎(chǔ)課程表ct_course,測評細則表ct_rule,測評細則明細表ct_rule_detail,用戶表ct_user,具體模型如圖5所示.
圖5 資料管理物理數(shù)據(jù)模型圖
綜合測評管理物理數(shù)據(jù)模型包括學(xué)生獎懲表ct_student_prize_punishment,業(yè)務(wù)學(xué)習(xí)綜測明細表ct_study,綜合測評表ct_evaluation,班級表ct_class,綜合測評明細表ct_evaluation_detail,具體模型如圖6所示.
圖6 綜合測評管理物理數(shù)據(jù)模型圖
系統(tǒng)管理集合了本系統(tǒng)的基礎(chǔ)操作,包括角色管理、用戶管理、資源管理、反饋管理、公告管理和綜合測評基礎(chǔ)分配置.角色管理可以實現(xiàn)角色的新增、編輯、刪除和查詢功能.本系統(tǒng)設(shè)置了超級管理員、二級學(xué)院管理員、專業(yè)管理員、宿舍管理員、輔導(dǎo)員、班主任、班長、學(xué)生等角色.超級管理員可以給不同角色分配可訪問的網(wǎng)絡(luò)資源,以達到權(quán)限控制的目的.用戶管理除了包含用戶基本信息的增、刪、改、查功能以外,還能夠?qū)崿F(xiàn)用戶角色的設(shè)置和更改用戶狀態(tài)的功能.資源管理主要用于網(wǎng)站內(nèi)部資源的管理,包括默認(rèn)地址、顯示菜單、是否默認(rèn)打開等.反饋管理用于管理用戶在使用過程中提出的一些意見和建議,并提供處理進度跟進功能.公告管理主要用于系統(tǒng)公告的發(fā)布、編輯、刪除.綜合測評基礎(chǔ)分配置主要是設(shè)置政治思想素質(zhì)和智能素質(zhì)的基準(zhǔn)分.政治思想素質(zhì)包含政治素質(zhì)、品德修養(yǎng)、勞動觀念、法紀(jì)觀念、學(xué)習(xí)態(tài)度;智能素質(zhì)包含科研能力、社會工作能力、職業(yè)能力和文藝活動能力.系統(tǒng)管理模塊中的用戶管理界面如圖7所示.
圖7 用戶管理界面
資料管理提供了綜合測評相關(guān)資料的管理功能,包括學(xué)院管理、專業(yè)管理、班級管理、宿舍管理、學(xué)生管理和測評細則管理.學(xué)院管理和專業(yè)管理分別提供了各自相關(guān)信息的新增、刪除、編輯和查找功能.宿舍管理和學(xué)生管理除了上述的增、刪、改查功能外,還提供模板下載和導(dǎo)入、導(dǎo)出功能.具有相應(yīng)權(quán)限的用戶可以下載統(tǒng)一的Excel模板,實現(xiàn)線下分工協(xié)同工作,匯總后再將數(shù)據(jù)進行導(dǎo)入.班級管理除以上功能外,還提供課程設(shè)置功能.課程設(shè)置這一功能的權(quán)限對輔導(dǎo)員、班主任和班長這三種角色是啟用狀態(tài),能夠讓這三種角色的用戶對每學(xué)期課程表信息進行新增、刪除和編輯.測評細則管理包括政治思想素質(zhì)、業(yè)務(wù)學(xué)習(xí)素質(zhì)、智能素質(zhì)和體育素質(zhì)四類細則,以及對應(yīng)細則明細的增、刪、改操作.資料管理中綜測細則管理界面如圖8所示.
圖8 綜測細則管理界面
綜合測評管理提供了對學(xué)生個人綜合素質(zhì)測評的管理,主要有以下功能.
(1)修改政治思想素質(zhì)中政治素質(zhì)、品德修養(yǎng)、法紀(jì)觀念和學(xué)習(xí)態(tài)度的分值,新增、編輯和刪除政治思想素質(zhì)的獎懲分.
(2)查看學(xué)生本學(xué)期或本學(xué)年的所有課程成績,并計算總分、平均分,生成學(xué)習(xí)成績班級排名和專業(yè)排名,新增、編輯業(yè)務(wù)學(xué)習(xí)的獎懲分.
(3)修改智能素質(zhì)中的社會工作能力、職業(yè)能力和文藝活動能力的分值,新增、編輯、查看、刪除智能素質(zhì)中的獎懲分,并計算總分.
(4)新增、編輯、查看體育素質(zhì)中的體育課成績或體育達標(biāo)成績、課外體育活動成績,新增、編輯體育素質(zhì)中的獎懲分,并計算總分.
(5)計算各項綜測項目總分,生成綜測班級排名和專業(yè)排名,并啟動教師核對和學(xué)生確認(rèn)功能.
綜合測評管理界面如圖9所示.
圖9 綜合測評管理界面
本系統(tǒng)在功能上劃分為系統(tǒng)管理、資料管理和綜合測評管理三個模塊,由于篇幅原因,僅以測評細則管理中的添加功能為例,介紹分層模式的代碼實現(xiàn).
(1)POJO 實體類.定義Rule、RuleDetail 實體類.
(2)數(shù)據(jù)持久層.定義數(shù)據(jù)訪問層接口IRule-Mapper,在此接口內(nèi)定義創(chuàng)建測評細則createRuleDetail方法,具體定義如下:
其中Base 和SqlMethod 為自定義基礎(chǔ)類,Base類為所有執(zhí)行基礎(chǔ)數(shù)據(jù)訪問操作的基類.基礎(chǔ)數(shù)據(jù)訪問操作包括新增、刪除、編輯和查詢該實體類所有信息.SqlMethod類封裝了數(shù)據(jù)操作的方法名,便于在Provider中調(diào)用.
(3)業(yè)務(wù)邏輯層.定義IRuleService 接口,在此接口內(nèi)定義創(chuàng)建測評內(nèi)容createRule方法和添加測評內(nèi)容importRule方法,并定義實現(xiàn)類Rule-ServiceImpl,具體定義如下:
(4)顯示層.定義RuleController類,并在其內(nèi)部定義importRule方法,具體定義如下:
前端控制器DispatcherServlet 收到請求調(diào)用HandlerMapping.HandlerMapping 根 據(jù)URL 請 求找到相應(yīng)的處理器,生成對應(yīng)的Controller對象,通 過 注 解@Controller 和@RequestMapping 注 冊Controller類和請求路徑.
當(dāng)用戶提交請求訪問數(shù)據(jù)庫時,服務(wù)器需要建立和關(guān)閉與數(shù)據(jù)庫的連接,如果訪問量達到一定數(shù)量時,服務(wù)器會頻繁執(zhí)行這個操作,從而造成不必要的開銷.為了解決這個問題,在系統(tǒng)框架整合階段采用了數(shù)據(jù)庫連接池進行性能優(yōu)化.使用數(shù)據(jù)庫連接池不僅可以重復(fù)使用空閑的數(shù)據(jù)庫連接,還能縮短用戶訪問系統(tǒng)的響應(yīng)時間.在本系統(tǒng)中,通過建立數(shù)據(jù)庫連接池,設(shè)置連接池最小連接數(shù)和最大并發(fā)連接數(shù)、連接生存時間、檢測時間間隔等避免資源泄露,建立高效、安全復(fù)用的數(shù)據(jù)庫連接.
本系統(tǒng)還采用CDN技術(shù)提高用戶訪問服務(wù)器的響應(yīng)速度.CDN(Content Delivery Network),即內(nèi)容分發(fā)網(wǎng)絡(luò).CDN包括負載均衡、內(nèi)容分發(fā)、調(diào)度等功能模塊,通過各種緩存服務(wù)器,利用全局負載技術(shù)尋找最近服務(wù)器節(jié)點,響應(yīng)用戶請求,解決了互聯(lián)網(wǎng)傳輸速度和穩(wěn)定性不足而引起的系統(tǒng)性能問題.在實際測試中,通過模擬多線程和調(diào)整網(wǎng)速進行測試,可以看出優(yōu)化后的網(wǎng)頁響應(yīng)速度有了明顯的提高.以某一頁面為例,響應(yīng)速度從10 s 左右提升到2 s 左右,具體對比如圖10所示.
圖10 優(yōu)化前后訪問響應(yīng)時間對比圖
本文以當(dāng)前主流技術(shù)SSM 輕量級框架技術(shù)結(jié)合前端UI 框架Bootstrap,以MySQL 為數(shù)據(jù)庫服務(wù)器,采用分層開發(fā)模式和角色訪問控制策略,同時運用數(shù)據(jù)庫連接池和CDN 等優(yōu)化手段開發(fā)設(shè)計了一套基于B/S 架構(gòu)的高校學(xué)生綜合測評管理系統(tǒng).與目前已有的類似功能的系統(tǒng)相比,前后端框架技術(shù)和優(yōu)化手段的使用縮短了開發(fā)時間和頁面響應(yīng)時間,分層開發(fā)模式提高了程序的可移植性和健壯性.經(jīng)上線使用證明,該系統(tǒng)不但能夠在很大程度上縮短綜合測評這項工作的時間,提高測評結(jié)果的精確度,而且能夠做到及時統(tǒng)計、多部門協(xié)同工作,實現(xiàn)數(shù)據(jù)共享.