1. 导言
1.1 目的
该文档的目的是描述学生成绩管理系统的概要设计,其主要内容包括:
-
系统功能简介
-
系统结构简介
-
系统接口设计
-
数据设计
-
模块设计
-
界面设计
本文的预期读者是:
-
项目开发人员
-
项目管理人员
-
项目评测人员(老师、助教)
1.2 范围
该文档定义了系统的结构和模块的接口,没有确定单元的实现方法。
1.3 缩写说明
B-S
浏览器服务结构B/S(Browser/Server)架构,即浏览器和服务器架构模式,是随着Internet技术的兴起,对C/S架构的一种变化或者改进的架构。这种架构下,用户工作界面通过浏览器即可实现,极少部分事物逻辑在前端(Brower)实现。
DataGrip
Jetbrains公司开发的一款数据库操作工具。使用它可以很容易的编写 SQL脚本,运行SQL语句。还有方便的图形化界面直接操作数据,作为一流的商业化软件,它的功能十分强大。
1.4 术语定义
-
用户(User): 学生可以注册并登陆系统,登录后可以查看自己的成绩并且提出申诉;
-
管理员(Admin):管理员可以查看所有成绩,查看用户的信息;审核受理学生提交的申诉申请,审核完毕后转交教师处理。
-
教师(Teacher):教师可以在改卷完成后,登记并且查看每个学生的成绩:在接到管理员转达的申诉申请之后重新审卷并且修改学生成绩。
2. 界面设计
本系统的界面分为用户界面和管理员界面,用户界面分为教师和学生界面。
2.1 用户界面设计
教师用户界面主要实现以下功能:账号注册、登录、查看、编辑学生成绩、管理学生信息,查看申诉。主要界面设计如下:
-
登录界面:通过用户名和密码实现用户登录。也可通过此页面跳转到注册界面进行账号注册。
-
查看、编辑学生成绩界面:查看学生信息,包含“学生性别”、“学生成绩”等页面。
-
查看学生申诉界面:包括“申诉学生”、“修改成绩”页面。
-
编辑学生成绩界面:包括“考试成绩类型”、“编辑成绩”页面。
图 1教师界面页面流
学生用户界面主要实现以下功能:账号注册、登录、查看学生自己成绩、申诉。主要界面设计如下:
-
登录界面:通过用户名和密码实现用户登录。也可通过此页面跳转到注册界面进行账号注册。
-
查看成绩、申诉界面:包括查看“课程成绩”、“申诉成绩”页面。
图 2 学生界面页面流
2.2 管理员界面设计
管理员界面主要完成对用户信息的查看、对网站的维护、对申诉请求的审核和处理。主要界面设计如下:
-
管理员登录界面:通过管理员特有的用户名和密码实现管理员登录。
-
用户信息管理界面:包含“用户列表”、“用户成绩详情”页面。
-
网站维护界面:包含“用户列表”、“用户成绩详情”、“用户删除与添加”页面。
-
申诉审核界面:通过接受上传学生的文字、成绩信息,完成申诉审核的功能。
具体页面流如图 2 所示:
图 3管理员页面流图
3. 体系结构
系统的总体结构设计遵循如下原则:
-
系统应具有良好的适应性:能适应用户对系统的软件环境、管理内容、模式和界面的要求;
-
系统应具有可靠性:采用成熟的技术方法和软件开发平台,以保证在以后的实际应用中安全、可靠;
-
系统应具有较好的安全性:应提高完善的安全机制和用户权限限制机制, 确保数据的受限访问;
-
系统应具有良好的可维护性:系统应易于维护、安装;
-
系统应具有良好的可扩展性:系统应适应未来信息化建设的要求,能方便得进行功能扩展,以建立完善的信息集成管理体系。
本系统采用的是三层体系结构,将系统分为表示层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。在 WampServer 集成安装环境下进行开发。
3.1 体系结构
本系统采用B/S体系结构。
3.1.1 B/S体系结构
现在的信息系统平台的体系结构主要有客户机/服务器(C/S)体系和浏览器 /服务器(B/S)体系。下面简单介绍一下B/S体系结构。
B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如Chrome、Safari、Microsoft Edge、Netscape Navigator或Internet Explorer,服务器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。
在我们的系统中,我们就采用的是B/S体系结构。采用这种结构具有成本低、维护方便、 分布性强、开发简单的优势。
3.1.2 系统体系结构
B/S体系架构图如图3.1所示。
图3.1 B/S系统架构
通过上文对B/S体系架构的分析,以及对本系统需要完成的功能的分析。本系统的可分为以下三层结构:
-
用户层:在这里就是浏览器端。是直接与用户交互的部分。具体来说,用户的所有操作都是在这层进行的,用户的所有对数据的修改都会传到逻辑层进行处理。作为直接展示给用户的部分,需要具有美观和易用的特点。
-
逻辑层:在这里就是网络服务器端。接受用户输入的信息,对其进行功能要求的逻辑处理,并将处理后的数据传递给数据访问层;对于数据访问层传送的数据也进行相应的处理。作为表示层与数据层之间的信息处理接口,是前后端数据交互的桥梁。
-
数据层:在这里就是数据库服务器端。主要包含两种功能。一是完成对数据的存储,即完成数据库表的建立等功能;二是完成对数据的各种操作,具体进行何种操作取决于逻辑层的逻辑处理。
本系统的结构拓扑图如图3.2所示:
图3.2 系统结构拓扑图
用户层本系统主要用HTML+CSS+JavaScript 进行完成,完成与用户正常友好交互的任务。
逻辑层由Java代码及其相应框架编写,完成所需的逻辑处理操作。并把正常处理后的数据传递给用户层或数据层。
数据层主要是数据库系统,这里所用的数据库系统为关系数据库 MySQL, 并且使用DataGrip或idea内置的数据库工具构建需要的库和表,进行相应SQL脚本的编写。
4. 数据模型
数据模型用来描述数据、组织数据和对数据进行操作,是对现实世界数据特征的描述。
本系统的数据模型主要是数据库的设计,创建和应用。
4.1 数据库的概念结构模型设计
概念设计以反映现实世界中的实体、属性和它们之间的关系等的原始数据形式,建立数据库的每一幅用户视图。下面给出简易E-R图。
图4.1 学生成绩管理简易E-R图
在这个数据库中,管理员与教师没有明确地与其他表绑定,具有一定的独立性。而学生和成绩强绑定,并且是一对多的关系。也就是说,一个学生,可以有一个成绩,可以有零个成绩,也可以对应多个成绩。
4.2 数据库的逻辑结构模型设计
数据库的逻辑设计是将局部 E-R 图进行分解、合并后重新组织起来形程数据库全局的逻辑结构,包括所确定的关键字和属性、重新确定的记录结构、所建立的各个数据之间的相互关系。根据本系统(学生成绩管理系统)的需求分析,系统的数据库包括了教师表、学生表、管理员表、成绩表等部分。
商铺管理包括的库表:
t_admin:所有的管理员信息表
t_user:所有的教师账号信息表
t_student:所有的学生账号信息表
t_score:所有的学生成绩分数表
下面依次介绍每个表的具体结构,表 4.1 是对表 t_admin 的设计:
表4.1 t_admin表设计
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
admin_id | int | NO | PRI | auto_increment | |
admin_name | varchar(50) | YES | |||
pass_word | varchar(50) | YES |
t_admin表中包含了本系统中所需的所有管理员信息(管理员账号信息提前给出,不能自行注册),其中管理员id 作为主键,有着随数量增加自增的功能。
表4.2是对表t_user 的设计:
表4.2 t_user 表设计
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
user_id | int | NO | PRI | auto_increment | |
user_name | varchar(50) | YES | |||
pass_word | varchar(50) | YES |
t_user 表包含了所有的教师信息,其中 user_id为主键,在教师注册后自动为用户赋予,作为教师的唯一标识。作为主键同样同样是自增的。
表4.3为t_student 表的设计:
表4.3 t_student 表设计
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
student_id | int | NO | PRI | ||
student_name | varchar(20) | YES | |||
student_sex | varchar(10) | YES | |||
stu_pass | varchar(12) | YES |
t_student 表包含了所有的学生信息,其中student_id为主键,包含了学生姓名,性别,密码等信息。学生信息与它们实际的学号相绑定,因此不设置自增的功能。
表4.4为 t_score 表的设计:
表4.4 t_score 表设计
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
score_id | int | NO | PRI | auto_increment | |
score_value | int | YES | |||
score_type | varchar(255) | YES | |||
student_id | int | YES |
t_score表用于储存学生的各项成绩,主要记录了成绩id,成绩种类,成绩数值以及对应哪个学生。这张表为记录大量学生的成绩提供了极大的方便。
在确定了各个表的主键字段的基础上,依据表与表相关字段之间的联系建立了各表之间的关系,下面给出比较详细的E-R图:
图4.1 学生成绩管理系统 E-R 图
5. 模块设计
按照功能进行分解,本系统分为管理员功能、教师和学生功能。管理员功能包括: 负责后台管理以及对学生的成绩申诉进行审核,审核通过后告知教师进行成绩重审和修改;教师功能包括:登陆与注册查看成绩、登记成绩并进行修改。学生功能包括:查看成绩并且可以对自己的成绩进行申诉。
模块划分示意图如图5.1所示:
图5.1 模块划分示意图
具体各个模块功能的介绍见详细设计文档。