第四章 系统分析与总体设计
4.1 系统结构设计
按照不同用户等级来划分,管理员具有系统管理,学生信息管理的权限,教师具有成绩信息管理,成绩统计和授课信息管理的权限,而学生具有成绩及相关信息查询的权限,在管理员对系统进行管理时,可以添加,删改用户,并且对系统信息和功能进行修改,而学生等级的用户,可以查询自身相关信息,不能查看别人信息,也不能修改自己的信息。图 4-1 为学生成绩管理系统结构图。
4.2 系统功能模块设计
在功能模块设计中,用户被分为普通用户和超级用户,超级用户就是之前我们所说的系统管理员,这个等级的用户可以进行系统管理,包括信息发布和系统功能的删改,而普通用户可以是学生或者老师,学生可以查看自己的系统信息,查询成绩,老师可以完成成绩录入,更改,查询成绩,统计成绩信息并打印,管理所教课程等工作。每一个等级的用户都需要进行身份验证进入系统,但系统内部不针对普通用户开放,内部的管理与维护也将由超级用户来完成,且普通用户没有权利更改系统信息[12].
在系统管理员,教师和学生中,用户分级显得尤为重要,且对于教育管理系统,数据管理和查看是很重要的,不同等级的用户只能查看或者更改一部分数据数据的更改对于管理员是没有限制权限的,管理员作为超级用户具有所有权限,教师对部分成绩具有更改权限。
4.3 系统流程设计
流程设计是指模拟不同等级的用户进入系统,根据设定好的步骤来对系统进行使用,按照要求测验系统可能被使用到的每一项功能,并考虑可能出现的所有情况,成功的或者失败的[13].流程模拟过程需要设定好进入系统的用户等级,本次系统中用户等级可以简单地分为普通用户(教师,学生)和超级用户(管理员),接着进入系统后,需要在每一个信息输入环节进行一次判定。流程设计应当遵循“进入系统-----退出系统”的黑盒测试原理[14],模拟这期间发生的所有动作,本节将分别对普通用户和超级用户两个等级给出具体的流程设计[15].
4.3.1 普通用户流程设计
普通等级用户包括教师和学生,他们的系统使用流程分为以下几个步骤,首先是系统登录,验证身份信息,如果验证成功则进入系统,分别进入系统设定的教师页面和学生页面,若验证失败则返回上一步,进入系统后,系统显示菜单栏,教师选择将要执行的功能,开始功能使用过程,使用完毕后可以选择注销本次登陆,然后退出系统[16].
图 4-5 为大家详细描述了普通用户的功能使用流程。
4.3.2 超级用户流程设计
管理员用户的系统登录流程与普通用户相同,进入系统后,直接跳入管理员界面,管理员选择将会要执行的功能,然后系统调用功能模块,功能执行完毕后退出系统。与普通用户不同,系统将会对管理员的登录信息进行记录,比如管理员的登录系统时间,登陆 IP 地址和登录之后的行为等,这是因为管理员用户具有更改系统和升级系统的权限,如果系统出现错误需要对上一层的维护记录进行查看,方便系统维护,而且因为管理员可以发布系统信息,为了对这一行为进行监管,需要对其发布信息的时间,内容进行记录[17].图 4-6 是超级用户的流程图。
4.4 数据库设计
所谓实体联系模型,指的是在这种关系模拟方式中,我们首先选取好需要统计和录入的信息,根据信息的数量和彼此之间的关系画出 ER 图,接着转换为需要保存的数据模型[18].这样做的好处是,ER 图完全由开发人员设置,这样就充分的体现了人性化的思想,数据库的存储契合于人类的理解,也就方便存储和升级,以后也可以在这个基础上轻松添加或删除数据,还有一点是 ER 图与计算机存储结构无关,设置的时候较为简单,不需要考虑数据结构如何建立在系统中,如何去存储。
但 ER 图也有它的不足,那就是 ER 图本身是由工作人员人工绘制的,他只是说明了数据与数据,结构与结构之间的关系,这种模拟化的数据存储流程非常不利于计算机运算,很可能会浪费存储资源,而且有很多信息是人类需要的,但计算机并不需要存储,如果存储太多这样的的冗余信息,会使得数据库系统运行非常缓慢,计算机处理过程也十分盲目,如果一开始的 ER 图设计不合理,数据存储关系不明确,后期更改将会非常困难[19].
首先根据系统设定制作出开发数据库系统的 ER 图,每一部分都设置主键,教师 ID,管理员 ID 和课程号是三大主类的主键,另外的数据元素包括教师和管理员的姓名,以及登录密码等。学生信息储存在学籍信息部分,这样设计主要是便于整个系统的管理,在学籍信息中,学生姓名,学号等信息也是需要记录的,而对于成绩信息,成绩所属课程,课程号和成绩是需要被记录的,设置班级信息主要是统计班级人数后,便于教师统计一门学科的班级总分或者平均分,也就方便输出这门成绩的其他相关信息,其他信息都包括在绘制的 ER 图中,图 4-7 是本次系统的 ER 图。
上图仅仅是本系统中的总数据 ER 图,还有许多分类的实体 ER 图,在这里不多做解释,ER 图的展示目的是说明数据的存储关系。
根据 ER 图可以很明显的看出个部分数据之间的关系,我们知道管理员具有管理功能模块的权限,但是这一特性在数据设定中无法体现,所以管理员的数据实体仅仅是单独出来的一块,管理员权限的独立性同样体现在他对数据的操作的权限上,因为我们可以确定管理员可以查看所有信息,也正因为如此管理员的身份验证才需要进一步加强,避免有人利用管理员的身份进入系统,恶意篡改信息。
所以在实现过程中应当确定管理员的数据是独立的,完备的,不受其他数据限制,这样才能最大程度上保证管理员身份的安全[20],也就最大程度上保证系统的安全性。下面给出数据库表格的具体设计方案,根据之前列出的属性管理,我们可以设计六个数据实体,分别是教师,课程,学籍,成绩,班级和管理员,数据实体将构成整个数据库结构,是数据库表格的目录,同时要知道实体的属性应该是简介而且说明问题的,表 4-1 是本系统的实体属性表。
根据实体属性,创建实体的信息表,下表 4-2 至表 4-7 分别是这六个实体的具体信息设置表格。在这里需要对各个实体信息表中的主键确认进行说明,我们分别明确了教师ID,课程号,管理员 ID 等信息作为各个实体表的主键,这不仅仅是因为这些信息相对其他信息比较重要,在后期数据库建立和数据库维护中我们知道,数据库的连接十分重要,有时候一项信息的更改会导致与这项信息相关联的许多信息发生变化,比如在教室实体信息表中,我们确立的主键是教师姓名,那么当这名教师改了名字,或者学校里有同名同姓的教师,数据库就需要进行大面积的更改和维护,因为教师信息变化后课程信息也变了,而这种变化所带来的工作量将是巨大的。所以通过上面的描述大家可以知道,所确立的主键应当是轻易不会发生改变的,简单明了的,并且与其他表格有着唯一的联系的,比如个人编号,编号极少出现重复,而且储存简便,易于分解和传递,最重要的是根据序号的排列和择选可以很好地区分学生团体的各种级别,事实证明在数据库建立中编号是最好的主键选择。
数据库关系图形象的描述了实体之间的联系,其中的钥匙代表的就是各实体的主键,而实体与实体之间的钥匙代表了通过上一个实体信息来确认下一个实体的主键,这种确认由于存在层级关系,便于管理,也便于工作人员分级掌握人员情况,实现信息的节制与保密,最终得到的系统中的数据关系图如下图 4-8.
4.5 本章小结
在这一章节中,我们着重介绍了本次开发的结构,功能模块,事务处理流程和数据库的设计,开发结构明确了开发的具体部署,并且根据开发结构来设定功能模块,在事务处理流程中我们分为普通等级用户和超级用户两个层面,分别给出具体的流程图来分析程序的运行过程。最后给出了全面的数据库设计,首先从ER 图的设定,再到具体实体及属性的确定,再到确认每一个实体的具体信息表,最后给出实现数据库文件的 SQL 语句,并展示了系统的数据关系表。