上海震旦职业学院 程茂华
我校现在对学生成绩进行管理主要是通过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架构的一种变化或者改进。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,即可通过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.