張肖如+陳麗婷+劉莉

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