上海震旦職業學院 程茂華
我?,F在對學生成績進行管理主要是通過Excel軟件實現的。每次期末考試完畢,學校規定任課教師必須在一周內將紙質成績單、紙質試卷分析報告、電子版(Excel形式)成績表等交到教務處負責這方面工作的老師那里,然后再由教務處分別發放給各班主任,各班主任接到本班級學生的各門成績后,填寫紙質成績報告單及評語,并裝入信封郵寄給學生家長。此過程工作量之大、步驟之繁瑣有時候實在讓人無奈,而且極其容易出錯,主要的原因是沒有一個采用先進技術開發的在線成績管理系統。因此,開發一個基于B/S架構的、適合我校目前教學管理現狀的學生成績管理系統是十分必要的。
開發本系統的最終目的是為了提高我校的學生成績管理水平、減輕相關教學管理人員的勞動強度以及減少在學生成績管理工作中的疏失。在與相關人員的多次討論下,確定系統主要需求如下:
(1)系統可以實現成績的錄入、查詢、修改等基本管理手段,且可以根據操作人員在學校崗位職責的不同而授予不同的操作權限,比如:對于學生,系統只應賦予其成績查詢的權限,而對于教師,系統除了應賦予其查詢權限外,還應賦予其成績錄入和修改的權限。這樣不僅可以將原來集中在教學管理人員處的工作合理地分攤到其他人員處,而且從系統的安全角度來說,也是十分必要的。
(2)系統除了可以對學生提供針對本人成績的查詢外,還應對教學管理人員提供綜合查詢手段,并利用查詢結果生成不同的報表,為學校的各項工作安排提供依據。比如,系統可以查詢某學生在校期間的各門課程成績,并打印成績證明以供其在校外辦理各種手續時使用;再如,可以在每年畢業前夕利用系統查詢還有功課不及格的學生,并安排畢業前的補考,甚至可以讓系統自動查詢并向教務管理人員發出提醒,以免耽誤學生畢業前補考工作,影響學生畢業。
(3)對于系統的操作不應只限于校園內,而是要充分利用計算機網絡技術,實現哪里能聯網哪里就能操作。因為高校的教師很多不一定坐班,他們在家里改完試卷后,要能夠在家里就可以將成績錄入進系統。對于學生來說,放假回家,利用家里的電腦和寬帶就可以查詢自己的成績。
(4)系統的實現不應過分復雜,開發周期不應過長,特別是對于系統的用戶來說,不應使他們為了使用此系統而在自己的電腦上額外安裝其他軟件,比如客戶端等。
(5)系統的界面應該相當友好、操作簡便、易于上手。高校里除了有對計算機操作較為熟練的年輕教師外,還有相當一部分因時代局限而對計算機操作不是特別熟悉的老教師,對于他們來說,不應使他們額外投入過多精力學習系統的使用。
(6)系統的部署、升級和維護不應過分復雜且對用戶來說最好是透明的。任何一個軟件系統都可能存在一定的缺陷,在使用過程中有的會逐漸暴露出來,這時候對系統進行維護和修正是必然的。對系統的升級、維護不應大幅度改變用戶的操作習慣,而且實現要簡單、不應對系統結構做大的改動,以免影響系統的穩定性。
(7)系統要有較好的安全性和穩定性。此系統一旦投入使用,所面對的用戶幾乎是學校的所有人員,包括教師、學生、各級管理人員等。因此,在安全和穩定方面需要充分考慮,盡量杜絕各種安全隱患。
上一小節較為詳細地分析了系統的主要需求,接下來要根據對系統的需求分析,進行系統功能的設計。
該學生成績管理系統的使用人員主要包括:學生、教師、教學管理人員。每類人員其在學校的身份和崗位職責有所不同,因此,從信息安全的角度出發,系統針對每類人員所提供的功能應有所不同。具體如下:
(1)學生:本人成績查詢功能;
(2)教師:所教課程成績錄入功能、成績查詢功能、成績修改功能、成績統計分析功能;
(3)教學管理人員:成績綜合查詢功能、成績統計分析功能、報表生成打印功能、基本信息管理功能(比如對課程信息、班級信息的添加和修改等);
該系統的主要功能模塊框圖如圖1所示。
數據庫設計(Database Design)是指根據系統的需求,在某一具體的數據庫管理系統之上,設計數據庫的結構并建立數據庫的過程。數據庫是學生成績管理系統的核心和基礎,數據庫設計是該系統開發的重要組成部分,可以這么說,數據庫設計的好壞是該系統成敗的關鍵所在。
數據庫的設計一般分為以下幾個階段:需求分析、概念設計、邏輯設計、物理設計、數據庫實施、數據庫運行與維護。本文僅就前三個階段,對學生成績管理系統數據庫的設計做一個簡要的分析。
在前文系統需求分析和功能模塊設計的基礎上,本學生成績管理系統的數據庫在概念設計上采用E-R模型的方法進行。在需求分析的基礎上,概念設計階段確定數據庫中存在如下實體:學生、學院、系、專業、班級、教師、課程,并對這些實體的屬性以及實體之間的關系進行了分析。概念設計完畢以后,接著就是邏輯設計。在邏輯設計階段,需要將E-R模型轉換為關系模型,E-R模型中的實體的屬性就是轉換后關系的屬性。
在將E-R模型轉換為關系模型后,就可以考慮數據庫基本表的設計了。限于篇幅,本文只討論基本表中所應包含的字段(根據各校實際情況而有所不同)。根據轉換后的關系模型,可知本學生成績管理系統應包含如下基本表:
學生信息表(學號#,姓名,性別,出生年月,身份證號,家庭住址,家庭電話,政治面貌,班級代碼*,專業代碼*)
學院信息表(學院代碼#,學院名稱)
系信息表(系代碼#,系名稱,所屬學院代碼*)
專業信息表(專業代碼#,專業名稱,所屬學院代碼*)
班級信息表(班級代碼#,班級名稱,所屬學院代碼*)
教師信息表(教師工號#,教師姓名,所屬學院代碼*)

圖1 系統功能模塊框圖

圖2 系統架構示意圖
課程信息表(課程代碼#,課程名稱,所屬專業代碼*,學分)
學生成績表(學號#,課程代碼#,課程性質,學期,成績,成績性質#)
在以上基本信息表的字段中,字段名后帶“#”的為主鍵,帶“*”的為外鍵,即其他表的主鍵。如果同一個表中有多個字段帶“#”,說明主鍵是由這幾個字段共同組成,即聯合主鍵。“學生成績表”中的“課程性質”字段取值:“必修”or“選修”,“成績性質”字段取值:“期末”or“補考”or“畢業前補考”。
為了較好地滿足需求分析中的第(3)、(4)、(5)、(6)項,本系統采用目前較 為先進的B/S架構。B/S架構,即Browser/Server(瀏覽器/服務器)架構,是隨著Web技術的興起,對C/S架構的一種變化或者改進。這種模式統一了客戶端,將系統功能實現的核心部分集中到服務器上,簡化了系統的開發、維護和使用??蛻魴C上只要安裝一個瀏覽器,即可通過Web技術與服務器端進行交互。而在Windows操作系統大行其道的今天,由于Windows操作系統內置瀏覽器,因此客戶機軟件幾乎是零安裝、零維護。
本學生成績管理系統的服務器端采用兩種服務器:一種是應用服務器,絕大部分事物邏輯由此服務器實現,是直接為客戶端提供服務的服務器;另一種是數據庫服務器,為應用服務器提供數據庫服務。客戶端即為各類使用本系統的人員平常所用的電腦。本學生成績管理系統的架構示意圖如圖2所示。
系統的關鍵實現技術主要指編程語言和具體的DBMS。
本學生成績管理系統采用B/S架構,故而開發工作主要集中在服務器端的動態頁面的實現上。目前開發動態網頁的語言有很多種,國內主要流行兩種,一種以微軟公司的技術為代表,主要有ASP、ASP.NET等,另一種是PHP。鑒于微軟技術在國內的使用更加普遍及ASP.NET面向對象的編程技術,本系統采用ASP.NET作為開發工具。在系統的部署上,采用了微軟公司的IIS技術。
由于本系統選用微軟的ASP.NET做程序開發,因此在DBMS上也選擇微軟的產品是比較合適的。微軟的數據庫產品除了有OFFICE系列的ACCESS,還有SQL SERVER。這里選擇ACCESS顯然是不合適的,因為ACCESS是面向小型數據庫的,對大中型數據庫來說,ACCESS不管是在性能上還是在穩定性上均有所欠缺。故對于本系統的DBMS來說,選擇SQL SERVER系列比較合適,SQL SERVER支持大型數據庫,經過微軟公司多年的完善,其一些經典版本還是比較穩定的,比如SQL SERVER 2005等。
值得一提的是,不管采用何種技術實現本系統,安全問題都是至關重要的。由于程序員的疏忽或經驗的缺乏,在系統的開發過程中,常會留下各種漏洞,比如:跨站腳本漏洞、SQL注入攻擊等,這些在系統的開發過程中需要引起高度重視,系統在正式投入使用前,需要做包括安全在內的各種嚴格測試。
本文討論了我院學生成績管理系統的開發。本系統采用了目前流行的B/S架構,使用了ASP.NET、SQL SEREVR、IIS等較為先進的技術。該系統的使用將使我院的學生成績管理水平邁上一個新的臺階,有關工作人員將從繁重、易錯的管理工作中解放出來,這是十分具有價值和意義的。
[1]張躍庭,貫偉.ASP.NET程序開發范例寶典[M].北京:人民郵電出版社,2009.
[2]文龍,張自輝,胡開勝,等.SQL Server 2005入門與提高[M].北京:清華大學出版社,2007.