張肖如+陳麗婷+劉莉
摘要:為了改善目前教務(wù)系統(tǒng)在畢業(yè)審核功能設(shè)計上與學(xué)校工作流程不匹配而導(dǎo)致實際工作效率低下的問題,通過對學(xué)校實際情況的研究分析,依托于現(xiàn)有教務(wù)系統(tǒng),重新設(shè)計并實現(xiàn)了一套基于RoR技術(shù)框架的畢業(yè)資格審核系統(tǒng)。該系統(tǒng)實用性強(qiáng)、易用性好,能完全滿足學(xué)校的各類實際需求,極大減輕了學(xué)籍管理人員的工作負(fù)擔(dān),進(jìn)一步提高了工作效率。
關(guān)鍵詞:畢業(yè)審核;RoR;教務(wù)系統(tǒng);教務(wù)管理
DOIDOI:10.11907/rjdk.171555
中圖分類號:TP319
文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2017)006-0081-03
0 引言
高校教務(wù)管理工作是高等教育中的一個極為重要的環(huán)節(jié),是整個高校管理的核心和基礎(chǔ),而畢業(yè)資格審核是高校教務(wù)管理中一項非常細(xì)致而又關(guān)鍵的工作[1]。作為學(xué)籍管理工作的最后一個環(huán)節(jié),畢業(yè)審核是一項嚴(yán)肅、政策性很強(qiáng)的工作,關(guān)系到學(xué)生的切身利益與學(xué)校的學(xué)位授予工作[2]。
學(xué)校目前使用的教務(wù)系統(tǒng)一方面在功能上并不能完全滿足學(xué)校在畢業(yè)資格審核中的實際需求,實用性差,另一方面其異常低下的審核效率嚴(yán)重拖慢了整個畢業(yè)管理工作進(jìn)度。市面上類似的教務(wù)系統(tǒng)都是基于高校通用的需求模型,采用的也是特定的設(shè)計模式和技術(shù)框架。因為各高校實際情況有所不同,而系統(tǒng)的開發(fā)公司很少能根據(jù)各高校的實際需求進(jìn)行定制開發(fā)以及做適時的修改。隨著高校招生數(shù)量的不斷擴(kuò)大,辦學(xué)規(guī)模逐年增大,學(xué)校將面臨越來越多學(xué)生的畢業(yè)資格的審核處理工作[3]。因此,研發(fā)一套符合學(xué)校實情的效率高、易用性強(qiáng)的畢業(yè)審核系統(tǒng)非常具有實際意義。
1 系統(tǒng)目標(biāo)分析
每年畢業(yè)季是學(xué)籍管理工作最為繁忙的時候,等畢業(yè)生成績?nèi)夸浲?,系統(tǒng)距離最終發(fā)放證書通常只剩兩周左右,再剔除掉各學(xué)院對審核結(jié)果至少2-3輪反復(fù)核對的時間以及貼照片、蓋公章、替換結(jié)業(yè)證書和篩選欠費名單等時間后,最終留給畢業(yè)審核的時間異常緊迫。因此,從實用性上考慮,畢業(yè)審核系統(tǒng)首先要具備較高的執(zhí)行效率;從準(zhǔn)確性上考慮,也為了保持?jǐn)?shù)據(jù)源的一致性,基礎(chǔ)數(shù)據(jù)須全部來自于教務(wù)系統(tǒng)的數(shù)據(jù)庫;從安全性上考慮,審核系統(tǒng)對數(shù)據(jù)庫表不能有write權(quán)限,只能是read權(quán)限;從易用性上考慮,系統(tǒng)要做到能自動讀入教務(wù)系統(tǒng)中已設(shè)置好的人才培養(yǎng)方案和教學(xué)計劃數(shù)據(jù),從而盡可能減少人工設(shè)置項,降低學(xué)習(xí)使用成本。
2 審核流程分析
(1)半人工式審核方式。出于效率的考慮,之前學(xué)校并沒有直接采用教務(wù)系統(tǒng)進(jìn)行審核,而是采用一種“半機(jī)器半人工”的審核方式?!鞍霗C(jī)器”指所有成績數(shù)據(jù)還是來自于原教務(wù)系統(tǒng),“半人工”指對于各部分?jǐn)?shù)據(jù)結(jié)果需要人工通過Excel進(jìn)一步匯總整理,以生成最終審核結(jié)果。即先從教務(wù)系統(tǒng)的成績管理模塊導(dǎo)出指定年級的所有必修課不及格名單以及詳細(xì)不及格成績記錄,接著從成績管理模塊的分析統(tǒng)計中導(dǎo)出指定年級的所有公共選修課和專業(yè)選修課的成績記錄及名單,再從等級考試模塊導(dǎo)出畢業(yè)生的所有等級考試成績,然后加入技能證書不合格數(shù)據(jù)以及畢業(yè)環(huán)節(jié)數(shù)據(jù)結(jié)果,在Excel中進(jìn)行合并整理,統(tǒng)一數(shù)據(jù)格式,刪選數(shù)據(jù)字段,最后生成擬結(jié)業(yè)生的詳細(xì)不合格成績數(shù)據(jù)表。再通過二級學(xué)院教學(xué)秘書、各畢業(yè)班班主任通知名單上的結(jié)業(yè)生進(jìn)一步核對后形成最終的結(jié)業(yè)名單。
(2)一鍵式自動審核方式。半人工審核方式只是一種折中方案,過多的人工處理導(dǎo)致工作流程更為復(fù)雜,增加了出錯概率。如圖1所示,通過畢業(yè)審核系統(tǒng)將之前的人工處理部分全部替換為機(jī)器自動執(zhí)行,即在學(xué)籍管理員設(shè)定好畢業(yè)審核條件后,點擊審核按鈕即能直接生成最終的畢業(yè)審核結(jié)果。這種一鍵式審核簡化了工作流程,大大提高了效率。
3 系統(tǒng)設(shè)計
3.1 Ruby on Rails 概述
Ruby是一種注重均衡的語言,起源于 90年代的日本,發(fā)明者是日本人松本行弘。自從 1995 年公開發(fā)布以來,Ruby 在全球吸引了許多忠實的程序員。2006 年,Ruby獲得了廣泛接受,各大城市都有活躍的用戶組,以及 Ruby相關(guān)的開發(fā)者大會。如今,Ruby 經(jīng)常位于全球編程語言成長和流行度指數(shù)的前10名(如TIOBE)[4]。Ruby成功組合了Smalltalk的優(yōu)雅與Python的易用性,以及Perl的實用主義,使編程變得優(yōu)雅有趣,是一種有著超級清晰語法的純面向?qū)ο蟮木幊陶Z言。Ruby還具有動態(tài)載入、自動內(nèi)存管理機(jī)制、迭代器、Mixin、閉包等區(qū)別于其它語言的獨特特征。
Ruby on Rails(簡稱RoR)基于 Ruby 動態(tài)語言,是用 Ruby 語言編寫的全棧Web應(yīng)用框架[5]。Rails哲學(xué)中包含兩大指導(dǎo)思想:一是不要自我重復(fù)(DRY);二是多約定,少配置。Rails 為網(wǎng)頁程序大部分需求都提供了最好的解決方法,而且默認(rèn)使用這些約定,而不用在配置文件中設(shè)置每個細(xì)節(jié)[6]。當(dāng)使用 RoR 進(jìn)行開發(fā)時,應(yīng)用程序的所有代碼以一種標(biāo)準(zhǔn)方式互相作用。它的主要特點包括全棧式的MVC框架、習(xí)慣約定優(yōu)于配置、生成器、零周轉(zhuǎn)時間、支架系統(tǒng)、更少的代碼等[7]。
本系統(tǒng)采用RoR框架主要有兩個原因:首先,RoR的開發(fā)效率高(部署容易)、功能豐富(支持Ajax等流行應(yīng)用)。此外,RoR具有高效的性能,通常使用RoR開發(fā)出來的項目性能,比基于Struts+Hibernate+Spring 的Java應(yīng)用要高10%~20%。
3.2 系統(tǒng)總體架構(gòu)設(shè)計
Rails 框架嚴(yán)格按照MVC結(jié)構(gòu)開發(fā),MVC全名是Model View Controller,是模型(Model)-視圖(View)-控制器(Controller)的縮寫,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個部件里,在改進(jìn)和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務(wù)邏輯。在Rails中,Action View(視圖層)負(fù)責(zé)生成用戶看到并與之交互的界面,用于編寫 Ruby 代碼界面,包含用于.rhtml 的非常好的模板語言,將純粹的 HTML與嵌入的Ruby代碼組合;Controller(控制器層)是連接模型和視圖的橋梁,是處理的核心,響應(yīng)用戶的請求和用戶行為管理模型數(shù)據(jù);Active Record(模型層)表示數(shù)據(jù)和業(yè)務(wù)規(guī)則,負(fù)責(zé)同數(shù)據(jù)庫打交道,使MVC 模式中的各個層次無縫地協(xié)同運轉(zhuǎn)[8]。Rails的執(zhí)行過程一共分為6步:①瀏覽器發(fā)出HTTP request請求給Rails;②路由(Routing)根據(jù)規(guī)則決定派往哪一個Controller的Action;③負(fù)責(zé)處理的Controller Action操作Model數(shù)據(jù);④Model存取數(shù)據(jù)庫或進(jìn)行數(shù)據(jù)處理;⑤Controller Action將得到的資料提供給View樣板;⑥最后回傳HTML展現(xiàn)給瀏覽器。
考慮到系統(tǒng)的具體代碼實現(xiàn)中有大量SQL語句,將Rails對應(yīng)的MVC三層架構(gòu)中的模型層再細(xì)分為兩層,分別為持久層和數(shù)據(jù)庫層。表現(xiàn)層、業(yè)務(wù)層分別對應(yīng)MVC中的View和Controller,持久層和數(shù)據(jù)庫層合起來對應(yīng)MVC中的Model。持久層主要用于提供數(shù)據(jù),所有SQL語句相關(guān)都放在持久層,這樣一來MVC三層結(jié)構(gòu)演變?yōu)樗膶?。該四層架?gòu)自頂向下分別為:表現(xiàn)層(用戶界面,負(fù)責(zé)視覺和用戶交互)、業(yè)務(wù)層(實現(xiàn)業(yè)務(wù)邏輯)、持久層(用于提供數(shù)據(jù),包含所有SQL語句)、數(shù)據(jù)庫層(用于保存數(shù)據(jù))。
采用該四層架構(gòu)的優(yōu)點有:①結(jié)構(gòu)簡單,容易理解和開發(fā);②適合多人開發(fā),天然適合大多數(shù)場景的組織結(jié)構(gòu);③該四層架構(gòu)中每一層不需要知道其它層的細(xì)節(jié),層與層之間通過接口通信,每一層可以獨立測試,其它層的接口可以通過模擬解決。
3.3 系統(tǒng)功能模塊設(shè)計
提取原有教務(wù)系統(tǒng)中的學(xué)籍管理、教學(xué)計劃管理、成績管理和畢業(yè)生管理模塊的相關(guān)功能,重新融合以完成畢業(yè)審核系統(tǒng)的功能設(shè)計。畢業(yè)審核系統(tǒng)一共包含8個模塊,如圖2所示,分別為系統(tǒng)維護(hù)、審核設(shè)置、畢業(yè)審核、成績管理、查詢統(tǒng)計、結(jié)果分析、換證管理和報表導(dǎo)出。系統(tǒng)維護(hù)模塊具體包含賬戶權(quán)限設(shè)置和密碼管理,方便學(xué)籍管理員對教學(xué)秘書和畢業(yè)班班主任的權(quán)限進(jìn)行修改;審核設(shè)置模塊具體包括畢業(yè)條件設(shè)置和畢業(yè)生資格設(shè)置兩個子模塊,其中畢業(yè)條件設(shè)置又包括畢業(yè)年份設(shè)置、畢業(yè)年級設(shè)置、等級考試條件設(shè)置等;畢業(yè)審核模塊是整個系統(tǒng)的核心模塊,除支持一鍵式審核方式外,也支持必修課、公專選學(xué)分、等級考試成績分開審核,所有結(jié)果數(shù)據(jù)都支持Excel格式的導(dǎo)出。此外系統(tǒng)同樣支持常規(guī)的查詢和統(tǒng)計分析功能,對于結(jié)業(yè)學(xué)生的換證也提供便捷式管理。
3.4 系統(tǒng)運行流程設(shè)計
目前我國高校采用的審核模式主要有課程制、學(xué)分制等。課程制指學(xué)生要修完學(xué)校指定的課程,學(xué)分制則是一種以學(xué)分為計量單位衡量學(xué)生學(xué)業(yè)完成狀況的管理制度,學(xué)分制中的學(xué)習(xí)年限不是固定的,而是彈性的[9],學(xué)生只要修完規(guī)定的學(xué)分即符合畢業(yè)條件。學(xué)校目前采用固定學(xué)習(xí)年限下,學(xué)分制與課程制相結(jié)合的審核方式,既要修滿規(guī)定的公專選學(xué)分,又要完成指定的必修課程。本系統(tǒng)在功能上也提供對完全學(xué)分制審核模式的支持,可以根據(jù)實際情況進(jìn)行相應(yīng)模式的選擇。
整個系統(tǒng)的執(zhí)行過程如圖3所示,學(xué)籍管理員先設(shè)置好畢業(yè)時間以及對應(yīng)的畢業(yè)年級,接著系統(tǒng)進(jìn)行畢業(yè)資格初審:根據(jù)當(dāng)前設(shè)置的畢業(yè)年份,自動計算對應(yīng)的畢業(yè)年級,剔除休退學(xué)等不在校的學(xué)生,生成全部畢業(yè)生名單;之后系統(tǒng)從數(shù)據(jù)庫中自動調(diào)入教學(xué)計劃,找到匹配的人才培養(yǎng)方案;然后學(xué)籍管理員進(jìn)行等級考試的條件設(shè)置,并設(shè)置好畢業(yè)審核模式后,即可直接進(jìn)行畢業(yè)審核。
4 應(yīng)用效果
該畢業(yè)審核系統(tǒng)與原有系統(tǒng)相比有3大改進(jìn):
(1)簡化了條件設(shè)置,提升了操作效率。原教務(wù)系統(tǒng)畢業(yè)審核模塊包含太多設(shè)置項,使界面過于復(fù)雜,而且只能按專業(yè)單獨設(shè)置條件,操作低效。本系統(tǒng)根據(jù)實際需求對其進(jìn)行了針對性優(yōu)化,簡化了操作方式,剔除了無用設(shè)置項,提供專業(yè)批量性設(shè)置保存以減少人工設(shè)置,提高操作效率。
(2)更詳細(xì)的結(jié)果數(shù)據(jù)展示,更強(qiáng)的實用性。原教務(wù)系統(tǒng)畢業(yè)審核的結(jié)果只包含最終結(jié)論,不能顯示具體結(jié)業(yè)原因,不支持一次性導(dǎo)出所有結(jié)業(yè)學(xué)生的詳細(xì)不合格成績。本系統(tǒng)按學(xué)校實際需求重新設(shè)計了結(jié)果數(shù)據(jù)展示方式,包含了詳細(xì)結(jié)業(yè)原因,支持一鍵導(dǎo)出到Excel,方便畢業(yè)生完成進(jìn)一步核對,大大提高了實用性。
(3)優(yōu)化了審核算法,大幅提高了審核效率。以學(xué)校2016年的3 247名普高畢業(yè)生為例,用原有教務(wù)系統(tǒng)審核一遍需要數(shù)小時,而采用優(yōu)化算法后的畢業(yè)審核系統(tǒng),全部審核一遍只需56.3s。平均到單個學(xué)生的審核,原有教務(wù)系統(tǒng)需要9.36s,而本系統(tǒng)只需17.37ms,效率提升了接近539倍。
5 結(jié)語
本畢業(yè)審核系統(tǒng)是一套界面友好、應(yīng)用靈活、操作簡便、實用性強(qiáng)的系統(tǒng)。服務(wù)器對應(yīng)的操作系統(tǒng)是Ubuntu 14.04.3 LTS,數(shù)據(jù)庫為正方教務(wù)系統(tǒng)的Oracle 10,并使用基于B/S模式的4層系統(tǒng)架構(gòu),采用Ruby On Rails作為Web開發(fā)框架,具體運行環(huán)境為Rails 4.2.6,使用的編程語言有Ruby 2.3、HTML5、CSS3、JavaScript、SQL、Less。該系統(tǒng)已于2016年4月正式投入使用,通過對2016屆畢業(yè)生資格審核的試用,效果顯著,大大提升了畢業(yè)審核的效率和準(zhǔn)確度。本系統(tǒng)在學(xué)分制審核模式中還有一些細(xì)化功能留待后續(xù)研發(fā)中逐漸完善,以便更全面地滿足將來完全學(xué)分制模式下的各類需求。
參考文獻(xiàn):
[1]李波.基于VFP的畢業(yè)資格審核系統(tǒng)設(shè)計[J].黑龍江科技信息,2010(1):87,151.
[2]肖麗花.學(xué)分制下本科學(xué)生畢業(yè)審核管理研究[J].經(jīng)營管理者,2016(10):339.
[3]倪志宏,劉紅娜,齊鴻志,等.畢業(yè)資格審核系統(tǒng)的研究與設(shè)計[J].大眾科技,2007(3):189,180.
[4]Ruby社區(qū).Ruby程序設(shè)計語言官方網(wǎng)站[EB/OL].[2016-12-25].https://www.ruby-lang.org/zh_cn.
[5]王德明,劉昕.Ruby on Rails Web開發(fā)之旅[M].北京:人民郵電出版社,2008:1-2.
[6]BIGG R,BEN O D,CHEUNG F,et al.RailsGuides[EB/OL].[2016-12-20].http://guides.ruby-china.org/getting_started.html.
[7]龔昕,張浩.征服Ruby On Rails[M].北京:人民郵電出版社,2007:287-290.
[8]呂仁琦.敏捷開發(fā)及在企業(yè)級Portal中的應(yīng)用[D].浙江:浙江大學(xué),2007:12-22.
[9]陶偉.基于VFP的畢業(yè)資格審核系統(tǒng)設(shè)計與實現(xiàn)[J].安徽農(nóng)業(yè)大學(xué)學(xué)報,2011(3):479-485.
(責(zé)任編輯:黃 健)