【软件工程】概要设计

1. 导言

1.1 目的

该文档的目的是描述学生成绩管理系统的概要设计,其主要内容包括:

  • 系统功能简介

  • 系统结构简介

  • 系统接口设计

  • 数据设计

  • 模块设计

  • 界面设计

本文的预期读者是:

  • 项目开发人员

  • 项目管理人员

  • 项目评测人员(老师、助教)

1.2 范围

该文档定义了系统的结构和模块的接口,没有确定单元的实现方法。

1.3 缩写说明

B-S

浏览器服务结构B/S(Browser/Server)架构,即浏览器和服务器架构模式,是随着Internet技术的兴起,对C/S架构的一种变化或者改进的架构。这种架构下,用户工作界面通过浏览器即可实现,极少部分事物逻辑在前端(Brower)实现。

DataGrip

Jetbrains公司开发的一款数据库操作工具。使用它可以很容易的编写 SQL脚本,运行SQL语句。还有方便的图形化界面直接操作数据,作为一流的商业化软件,它的功能十分强大。

1.4 术语定义

  1. 用户(User): 学生可以注册并登陆系统,登录后可以查看自己的成绩并且提出申诉;

  2. 管理员(Admin):管理员可以查看所有成绩,查看用户的信息;审核受理学生提交的申诉申请,审核完毕后转交教师处理。

  3. 教师(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 模块划分示意图

具体各个模块功能的介绍见详细设计文档。

相关推荐
人才程序员1 天前
QML z轴(z-order)前后层级
c语言·前端·c++·qt·软件工程·用户界面·界面
Theodore_10221 天前
3 需求分析
java·开发语言·算法·java-ee·软件工程·需求分析·需求
做人求其滴2 天前
GDPU软件工程习题(挖空版)
软件工程
MrFlySand_飞沙2 天前
软件工程
软件工程
jokr_2 天前
【软件工程复习】
软件工程
云空2 天前
《软件工程文档攻略:解锁软件开发的“秘籍”》
软件工程
人才程序员2 天前
【无标题】
c语言·前端·c++·qt·软件工程·qml·界面
Aderversa2 天前
关于数据流图绘制和使用上的一些个人经验
软件工程
梁辰兴3 天前
UML 建模实验
软件工程·uml·建模
shinelord明3 天前
【再谈设计模式】外观模式~复杂系统交互的简化大师
开发语言·数据结构·设计模式·软件工程