龍其黨

摘要:隨著信息技術的發展,學校的信息技術設施越來越完善,很多學校都建成了校園網絡并連接到互聯網上。但校園網絡設備的利用率并不高,軟件資源缺乏,大多數計算機網絡應用還只是停留在上網查資料、相互間共享文件等初級應用上,很少建設符合本校實際情況的軟件資源。本文作者結合所在學校在建設軟件資源方面的一些體會、經驗,提出了“成績管理系統”建設問題,探討在建設中需要注意的一些問題、細節。
關鍵詞:MVC模式;AJAX;成績管理系統;數據庫;軟件開發
中圖分類號:G434 文獻標識碼:A 論文編號:1674-2117(2018)21-0085-03
軟件建設需求
成績管理、分析是一所學校進行教學質量檢測、評價、分析、再提高的基礎,現階段,大多數學校使用Excel軟件對成績進行管理,其不足之處在于,信息的查詢、共享不方便;統計、分析對教師技術水平的要求比較高。而建立基于MVC模式的成績管理系統,由服務器統一管理數據,教師端可隨時查詢全校所有學生的成績,并根據系統提供的分析、統計為自己的教學提供決策依據。
軟件模式選擇
網絡特別是互聯網的發展,使B/S模式(瀏覽器/服務器模式)的軟件系統越來越流行。它有著瘦客戶機優點,即客戶機不需安裝軟件,打開瀏覽器就可以使用。這樣對教師的技術要求就降低許多,不需要復雜的安裝和設置。客戶端與服務器端交互采用AJAX方式,讓服務器專注數據處理,客戶端專注顯示及交互。這一方面減輕了服務器負載,使其可以更快做出響應;另一方面使得交互數據量變得極少,網絡傳輸量降低。
軟件開發、運行環境
服務器端的運行環境:服務器——TOMCAT8;數據庫系統——SQL SERVER2012。客戶端運行環境:瀏覽器——chrome、Firefox、Edge。系統開發軟件:Eclipse、Photoshop、Java。
軟件系統架構及模塊說明
成績管理系統主要模塊如圖1:成績管理系統中,各個頁面作為一個功能存在,在模塊設置中自由地把各個功能組合在一起成為一個菜單,實現根據需要定義菜單。
關鍵技術探索
1.數據庫規劃
系統使用的數據表較多,在系統規劃時需要全盤考慮,避免出現需要改動數據結構的情況。比如在設計學生成績表時,考慮到它的數據量大,一次考試就產生幾萬條記錄,筆者認為可有兩種設計方式:
(1)為每屆學生建立一個數據表,存儲該屆學生在校期間的所有成績,其數據表結構可設計如圖2(為方便描述,字段名用中文表示,但在應用中最好避免使用中文字段名)。(2)為每學年建立一個數據表,存儲該學年所有學生成績,其數據表結構可設計如圖3。
兩者差別并不大,主要根據系統應用偏向來決定,第一種方式可以很方便地查詢到某屆學生在校期間的所有成績,第二種方式可以方便地對當前在校生成績進行查詢、統計,本系統選擇第二種方式。無論使用何種方式,都不可只用一個數據表保存所有學生的成績數據,否則日積月累,多年的學生數據都存在一個表中,會出現如下問題:一方面已畢業學生的數據很少用到,另一方面表中數據多了影響查詢、統計性能。
針對數據表中科目的設計,上面的方式固定了每個表的科目,不夠靈活,不同年級開設科目不盡相同,因此可對上面數據表進行優化,如圖4。
使用這種方式比較靈活,統計方便;沒有參加考試的科目不必記錄,節省空間,只是在查詢時需要行列轉置。如果需要保留更詳細數據,可繼續增加一些列,方便以后統計使用,如圖5。
2.在需要的數據字段上設立索引
索引有利于提高查詢速度,但在插入或修改時卻會影響操作效率,因此需要考慮如何定義索引。但對于成績管理系統這類查詢多于更新的系統來說,可以側重考慮查詢需求,一般來說需要聯合查詢的聯合字段、查詢時的條件字段,這些是要重點考慮索引的字段,筆者在使用過程中曾經遇到過一個統計需要花費差不多十秒鐘,但在關鍵字段加了索引后,只需要一秒左右就完成的情況。因此在出現此類問題時,除了檢查代碼,不要忽視索引的作用。
3.系統權限設置
要使系統穩定有序運行,必須要分配各教師的使用權限。教師權限指派的好處是:一方面保證成績管理系統有序運行,另一方面可以簡化教師界面,讓教師清晰知道自己該做哪些工作。我們在權限分配規劃時使用了“角色與權限”的方法,即先定義一些角色,如管理員、校長、教學處、班主任、科任教師等;再定義這些角色具有哪些權限,如“管理員”應該具有一切管理權限,“班主任”具有可管理本班學生信息的權限,“科任教師”具有可錄入成績權限等;最后為每個教師定義各自具有哪些角色,一個教師可以是多重角色,如班主任可以具有“班主任”和“科任教師”兩種角色。每次請求都驗證權限,權限設置是系統良好運行的基礎,保證了在修改數據時不會產生沖突、混亂。
4.系統安全性措施
在“成績管理系統”中,系統安全主要指數據安全,為保障數據信息不被非法修改、刪除,我們在使用中應用了如下措施:
(1)對用戶密碼進行加密。采用某種加密方法對所有用戶密碼進行加密,增強用戶密碼的保護。(2)登錄時使用驗證碼。使用驗證碼,可防止用自動登錄的方法破解密碼。(3)IP地址限制。指定可使用IP地址范圍,保證數據更加安全。(4)做好日志登記工作。將教師、學生每次請求操作的時間、請求頁面、主機IP地址等信息都登記下來,有需要時可以查看記錄。同時還可被用于統計哪些模塊最常使用、用戶最關心哪些功能等。(5)數據庫備份。充分利用SQL SERVER2012的備份功能,可在數據受到破壞時恢復到指定位置;利用數據庫的自動備份功能,設置每星期一次增量備份、每月一次完整備份。
5.系統穩定性措施
良好的系統在進行時有一定的健壯性,并有良好的提示。即使發生錯誤,也可以保證數據完整以及系統狀態恢復。提高系統穩定性可以從以下幾方面考慮:
(1)對數據進行修改、增加、刪除,需要兩個或兩個以上的一組命令時,將這些操作放在事務處理范圍內,保證操作要么就整批完成,要么就整批撤消,以確保數據的完整性。(2)頁面存在輸入時,一定要對輸入數據進行合法性驗證,保證數據在提交到數據庫時符合業務要求。對輸入數據驗證應在客戶端進行,減少數據傳輸次數。(3)在輸入成績等需要較長時間完成的場合,使用間隔自動保存,避免偶發原因造成錄入丟失。(4)對所有的錯誤都應給出詳細提示,讓客戶端知道在錯誤發生時應該如何改正。對不可預知的錯誤也要進行處理,提供原始錯誤信息。(5)數據庫連接采用連接池,并根據實際使用用戶數量設置合適數值。(6)做好測試工作,每個功能開發好后,必須進行全面測試,特別是涉及到輸入的,需要輸入各種數據進行測試,除了測試正常的業務過程是否正確,還要測試對錯誤輸入數據的檢測。
6.系統可擴展性、易維護性
系統開發采用MVC架構,將業務、邏輯、數據模塊分別獨立,并把相同業務代碼抽象出來。開發過程中要隨時預見可能出現的新情況,發現有更好的優化方法,要及時處理。自始至終要考慮如何提高開發效率,如何便于維護和更新。
以上是我們在開發學校成績管理系統過程中的一些體會、經驗,系統在開發以及后期的維護過程中都在不斷出現新的問題,尤其是系統與其他管理系統的連接問題讓我們深感統一規劃的重要性和必要性。系統經過多年的運行,得到不斷的更新與增強,為學校的教學管理提供了科學依據和數據。同時,數據庫中的教師、學生信息也作為基礎數據應用到了其他系統上,提高了學校教育教學管理的信息化發展水平。