【软件工程】概要设计

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 用户界面设计

教师用户界面主要实现以下功能:账号注册、登录、查看、编辑学生成绩、管理学生信息,查看申诉。主要界面设计如下:

  • 登录界面:通过用户名和密码实现用户登录。也可通过此页面跳转到注册界面进行账号注册。

  • 查看、编辑学生成绩界面:查看学生信息,包含“学生性别”、“学生成绩”等页面。

  • 查看学生申诉界面:包括“申诉学生”、“修改成绩”页面。

  • 编辑学生成绩界面:包括“考试成绩类型”、“编辑成绩”页面。

img

图 1教师界面页面流

学生用户界面主要实现以下功能:账号注册、登录、查看学生自己成绩、申诉。主要界面设计如下:

  • 登录界面:通过用户名和密码实现用户登录。也可通过此页面跳转到注册界面进行账号注册。

  • 查看成绩、申诉界面:包括查看“课程成绩”、“申诉成绩”页面。

img

图 2 学生界面页面流

2.2 管理员界面设计

管理员界面主要完成对用户信息的查看、对网站的维护、对申诉请求的审核和处理。主要界面设计如下:

  • 管理员登录界面:通过管理员特有的用户名和密码实现管理员登录。

  • 用户信息管理界面:包含“用户列表”、“用户成绩详情”页面。

  • 网站维护界面:包含“用户列表”、“用户成绩详情”、“用户删除与添加”页面。

  • 申诉审核界面:通过接受上传学生的文字、成绩信息,完成申诉审核的功能。

具体页面流如图 2 所示:

img

图 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所示。

img

图3.1 B/S系统架构

通过上文对B/S体系架构的分析,以及对本系统需要完成的功能的分析。本系统的可分为以下三层结构:

  • 用户层:在这里就是浏览器端。是直接与用户交互的部分。具体来说,用户的所有操作都是在这层进行的,用户的所有对数据的修改都会传到逻辑层进行处理。作为直接展示给用户的部分,需要具有美观和易用的特点。

  • 逻辑层:在这里就是网络服务器端。接受用户输入的信息,对其进行功能要求的逻辑处理,并将处理后的数据传递给数据访问层;对于数据访问层传送的数据也进行相应的处理。作为表示层与数据层之间的信息处理接口,是前后端数据交互的桥梁。

  • 数据层:在这里就是数据库服务器端。主要包含两种功能。一是完成对数据的存储,即完成数据库表的建立等功能;二是完成对数据的各种操作,具体进行何种操作取决于逻辑层的逻辑处理。

本系统的结构拓扑图如图3.2所示:

img

图3.2 系统结构拓扑图

用户层本系统主要用HTML+CSS+JavaScript 进行完成,完成与用户正常友好交互的任务。

逻辑层由Java代码及其相应框架编写,完成所需的逻辑处理操作。并把正常处理后的数据传递给用户层或数据层。

数据层主要是数据库系统,这里所用的数据库系统为关系数据库 MySQL, 并且使用DataGrip或idea内置的数据库工具构建需要的库和表,进行相应SQL脚本的编写。

4. 数据模型

数据模型用来描述数据、组织数据和对数据进行操作,是对现实世界数据特征的描述。

本系统的数据模型主要是数据库的设计,创建和应用。

4.1 数据库的概念结构模型设计

概念设计以反映现实世界中的实体、属性和它们之间的关系等的原始数据形式,建立数据库的每一幅用户视图。下面给出简易E-R图。

img

图4.1 学生成绩管理简易E-R图

在这个数据库中,管理员与教师没有明确地与其他表绑定,具有一定的独立性。而学生和成绩强绑定,并且是一对多的关系。也就是说,一个学生,可以有一个成绩,可以有零个成绩,也可以对应多个成绩。

4.2 数据库的逻辑结构模型设计

数据库的逻辑设计是将局部 E-R 图进行分解、合并后重新组织起来形程数据库全局的逻辑结构,包括所确定的关键字和属性、重新确定的记录结构、所建立的各个数据之间的相互关系。根据本系统(学生成绩管理系统)的需求分析,系统的数据库包括了教师表、学生表、管理员表、成绩表等部分。

商铺管理包括的库表:

t_admin:所有的管理员信息表

t_user:所有的教师账号信息表

t_student:所有的学生账号信息表

t_score:所有的学生成绩分数表

下面依次介绍每个表的具体结构,表 4.1 是对表 t_admin 的设计:

表4.1 t_admin表设计

FieldTypeNullKeyDefaultExtra
admin_idintNOPRIauto_increment
admin_namevarchar(50)YES
pass_wordvarchar(50)YES

t_admin表中包含了本系统中所需的所有管理员信息(管理员账号信息提前给出,不能自行注册),其中管理员id 作为主键,有着随数量增加自增的功能。

表4.2是对表t_user 的设计:

表4.2 t_user 表设计

FieldTypeNullKeyDefaultExtra
user_idintNOPRIauto_increment
user_namevarchar(50)YES
pass_wordvarchar(50)YES

t_user 表包含了所有的教师信息,其中 user_id为主键,在教师注册后自动为用户赋予,作为教师的唯一标识。作为主键同样同样是自增的。

表4.3为t_student 表的设计:

表4.3 t_student 表设计

FieldTypeNullKeyDefaultExtra
student_idintNOPRI
student_namevarchar(20)YES
student_sexvarchar(10)YES
stu_passvarchar(12)YES

t_student 表包含了所有的学生信息,其中student_id为主键,包含了学生姓名,性别,密码等信息。学生信息与它们实际的学号相绑定,因此不设置自增的功能。

表4.4为 t_score 表的设计:

表4.4 t_score 表设计

FieldTypeNullKeyDefaultExtra
score_idintNOPRIauto_increment
score_valueintYES
score_typevarchar(255)YES
student_idintYES

t_score表用于储存学生的各项成绩,主要记录了成绩id,成绩种类,成绩数值以及对应哪个学生。这张表为记录大量学生的成绩提供了极大的方便。

在确定了各个表的主键字段的基础上,依据表与表相关字段之间的联系建立了各表之间的关系,下面给出比较详细的E-R图:

img

图4.1 学生成绩管理系统 E-R 图

5. 模块设计

按照功能进行分解,本系统分为管理员功能、教师和学生功能。管理员功能包括: 负责后台管理以及对学生的成绩申诉进行审核,审核通过后告知教师进行成绩重审和修改;教师功能包括:登陆与注册查看成绩、登记成绩并进行修改。学生功能包括:查看成绩并且可以对自己的成绩进行申诉。

模块划分示意图如图5.1所示:

img

图5.1 模块划分示意图

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/791695.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VS2022使用属性表快速设置OpenCV工程属性

1.创建C++控制台应用 2.配置工程 3.打开工程后,为工程添加属性表 打开属性管理器窗口,选择Debug|x64 然后右击选择添加新的项目属性表 并命名为opencv490_debug_x64 点击添加 Debug版本属性表添加成功 使用相同方法添加Release版本属性表

Windows通过git配置github代码仓库全流程

git git是代码的版本控制工具 git安装和github注册 这个默认弄过了 通过git和github之间的SSH配置 在github上面新建仓库,做好配置 git绑定GitHub账号 先cd到上传的文件所在的目录 git config --global user.name "你的github用户名"git config -…

网络原理 - HTTP / HTTPS(3)——http响应

目录 一、认识 “状态码”(status code) 常见的状态码 (1)200 OK (2)404 Not Found (3)403 ForBidden (4)405 Method Not Allowed (5&…

基于java实现的弹幕视频网站

开发语言:Java 框架:ssm 技术:JSP JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclip…

基于STC12C5A60S2系列1T 8051单片机的带字库液晶显示器LCD12864数据传输并行模式显示自定义字符应用

基于STC12C5A60S2系列1T 8051单片机的带字库液晶显示器LCD12864显示自定义字符应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍液晶显示器LCD12864简单介绍一、LCD…

使用ffmpeg将视频解码为帧时,图像质量很差

当使用ffmpeg库自带的ffmpeg.exe对对视频进行解帧或合并时,结果质量很差。导致这种原因的是在使用ffmpeg.exe指令进行解帧或合并时使用的是默认的视频码率:200kb/s。 如解帧指令: ffmpeg.exe -i 600600pixels.avi -r 2 -f image2 img/%03d.…

深度学习arm cache系列--一篇就够了

快速链接: 【精选】ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈 1. cache的基本概念介绍 1.1、为什么要用cache? ARM 架构刚开始开发时,处理器的时钟速度和内存的访问速度大致相似。今天的处理器内核要复杂得多,并且时…

【基于HTML5的网页设计及应用】——-正则表达式.

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

ctf_show笔记篇(web入门---SSRF)

ssrf简介 ssrf产生原理: 服务端存在网络请求功能/函数,例如:file_get_contens()这一类类似于curl这种函数传入的参数用户是可控的没有对用户输入做过滤导致的ssrf漏洞 ssrf利用: 用于探测内网服务以及端口探针存活主机以及开放服务探针是否存…

C语言交换二进制位的奇数偶数位

基本思路 我们要先把想要交换的数的二进制位给写出来假如交换13的二进制位,13的二进制位是 0000 0000 0000 0000 0000 0000 0000 1101然后写出偶数位的二进制数(偶数位是1的) 1010 1010 1010 1010 1010 1010 1010 1010然后写出奇数位的二进…

uniapp切换中英文

一、安装 npm install uni-i18n --save 二、创建中英文切换的文件 1.英文en.js文件 2.中文zh_CN.js文件 三、 main.js中引用 // Vue i18n 国际化 import VueI18n from /common/vue-i18n.min.js; Vue.use(VueI18n);// i18n 部分的配置,引入语言包,注意路…

Linux :进程的程序替换

目录 一、什么是程序替换 1.1程序替换的原理 1.2更改为多进程版本 二、各种exe接口 2.2execlp ​编辑 2.2execv 2.3execle、execve、execvpe 一、什么是程序替换 1.1程序替换的原理 用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往…

0基础安装配置Linux-ubuntu环境

Vmtools的安装参见 0基础教你安装VM 17PRO-直接就是专业许可证版_vm17许可证-CSDN博客 在vmtools中安装ubuntu 等待安装 这时候发现没有继续按钮,我们关闭这个界面,进入系统中,先更改分辨率 点击这个三角,因为还么有安装成功&am…

【Canavs与艺术】绘制蓝白绶带大卫之星勋章

【图例】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>用Canvas绘制蓝白绶带大卫之星勋章</title><style type&quo…

从 MongoDB 到 PostgreSQL 的大迁移

Infisical&#xff0c;一家做密钥管理的开源商业公司&#xff0c;主要对标的是 HashiCorp Vault Infisical 在过去一年里迅速发展&#xff0c;平台现在每天处理超过 5000 万个密钥&#xff0c;将应用程序配置和私密数据发送给需要的团队、CI/CD 流水线以及服务器 / 应用程序。 …

基于JSP的农产品供销服务系统

背景 互联网的迅猛扩张彻底革新了全球各类组织的运营模式。自20世纪90年代起&#xff0c;中国的政府机关和各类企业便开始探索利用网络系统来处理管理事务。然而&#xff0c;早期的网络覆盖范围有限、用户接受度不高、互联网相关法律法规不完善以及技术开发不够成熟等因素&…

Python如何解决“滑动拼图”验证码(8)

前言 本文是该专栏的第67篇,后面会持续分享python爬虫干货知识,记得关注。 做过爬虫项目的同学,或多或少都会接触到一些需要解决验证码才能正常获取数据的平台。 在本专栏之前的文章中,笔者有详细介绍通过python来解决多种“验证码”(点选验证,图文验证,滑块验证,滑块…

汽车EDI:如何与奔驰建立EDI连接?

梅赛德斯-奔驰是世界闻名的豪华汽车品牌&#xff0c;无论是技术实力还是历史底蕴都在全球汽车主机厂中居于领先位置。奔驰拥有多种车型&#xff0c;多元化的产品布局不仅满足了不同用户画像的需求&#xff0c;也对其供应链体系有着极大的考验。 本文将为大家介绍梅赛德斯-奔驰乘…

在s390x架构机器上构建frps/frpc镜像 —— 筑梦之路

源码&#xff1a;GitHub - fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. # 克隆代码git clone https://github.com/fatedier/frp.git# 切换目录cd frp# 构建frps服务端docker build -t frps:s390x -f …

目标检测——车牌数据集

一、重要性及意义 交通安全与管理&#xff1a;车牌检测和识别技术有助于交通管理部门快速、准确地获取车辆信息&#xff0c;从而更有效地进行交通监控和执法。例如&#xff0c;在违规停车、超速行驶等交通违法行为中&#xff0c;该技术可以帮助交警迅速锁定违规车辆&#xff0…