【软件工程】概要设计

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 模块划分示意图

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

相关推荐
鸭鸭鸭进京赶烤18 小时前
计算机工程:解锁未来科技之门!
人工智能·科技·opencv·ai·机器人·硬件工程·软件工程
艾思科蓝 AiScholar1 天前
【连续多届EI稳定收录&出版级别高&高录用快检索】第五届机械设计与仿真国际学术会议(MDS 2025)
人工智能·数学建模·自然语言处理·系统架构·机器人·软件工程·拓扑学
A_cainiao_A2 天前
【软考】【2025年系统分析师拿证之路】【啃书】第七章 软件工程(八)
软件工程
开开心心就好2 天前
极速、免费、体积小,一款PDF转图片软件
人工智能·智能手机·eclipse·pdf·软件工程·软件需求
夏旭泽3 天前
软件工程的基本原理
软件工程
夏旭泽3 天前
软件工程的本质特征
软件工程
風落3 天前
《告别复杂PDF编辑,PDF Eraser开启便捷办公新体验》
pdf·软件工程·软件需求
计软考研大C哥3 天前
【25考研】考清华的软件工程专业的研究生需要准备什么?
经验分享·考研·软件工程
诗和远方ya4 天前
visual studio连接sql server数据库
数据库·sqlserver·软件工程·visual studio
犬余6 天前
漫话架构师|什么是系统架构设计师(开篇)
架构·软件工程·软考·系统架构设计师