【软件工程】概要设计

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

算法设计与分析实验报告python实现(串匹配问题、采用分治法求解最大连续子序列和问题、用分治策略求众数问题、最近点对问题)

一、 实验目的 1.加深学生对算法设计方法的基本思想、基本步骤、基本方法的理解与掌握; 2.提高学生利用课堂所学知识解决实际问题的能力; 3.提高学生综合应用所学知识解决实际问题的能力。 二、实验任务 1、串匹配问…

Docker安装mysql并且设置主从

Docker安装部署mysql 下载镜像 docker pull mysql:5.7.35查看镜像 docker images启动 直接启动不挂载文件 docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD123456 -d mysql:5.7.35挂载文件 docker run -p 3306:3306 --name mysql \ -v /usr/local/docker/m…

正则表达式与JSON序列化:去除JavaScript对象中的下划线键名

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

【Java EE】关于Maven

文章目录 🎍什么是Maven🌴为什么要学Maven🌲创建⼀个Maven项目🌳Maven核心功能🌸项目构建🌸依赖管理 🍀Maven Help插件🎄Maven 仓库🌸本地仓库🌸私服 ⭕总结 …

STM32G系 编程连接不上目标板,也有可能是软件不兼容。

由于一直用的老版本STM32 ST-LINK Utility 4.20 ,找遍了所有问题,SWD就是连不上目标板。 电源脚 VDDA 地线,SWD的四条线,还是不行,浪费了一天,第二天才想起,是不是G系升级了 SWD协议。结果下载…

从汇编看函数调用

文章目录 函数调用流程栈相关寄存器及的作用简介寄存器功能指令功能 栈函数的括号{}正括号反括号 参数传递传值,变量不可改传指针,变量可改C 传引用 函数调用实例 函数调用流程 目标:函数调用前后栈保持不变 保存main函数的寄存器上下文移…

【HTML】简单制作一个3D动画效果重叠圆环

目录 前言 开始 HTML部分 CSS部分 效果图 总结 前言 无需多言,本文将详细介绍一段代码,具体内容如下: 开始 首先新建文件夹,创建两个文本文档,其中HTML的文件名改为[index.html],CSS的…

Tensorflow2.0笔记 - 自定义Layer和Model实现CIFAR10数据集的训练

本笔记记录使用自定义Layer和Model来做CIFAR10数据集的训练。 CIFAR10数据集下载: https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz 自定义的Layer和Model实现较为简单,参数量较少,并且没有卷积层和dropout等,最终准确率…

Java—抽象方法与接口

声明:以下内容是根据B站黑马程序员的Java课程+博主自己的理解整理而成,课程很好,适合初学者学习。 关于此类题目,重要的是识别出用什么来实现,到底是接口还是抽象方法,还是共有的属性等等&…

医用三维影像PACS系统源码 一套成熟的PACS系统应具备哪些核心要素?

医用三维影像PACS系统源码 一套成熟的PACS系统应具备哪些核心要素? PACS及影像存取与传输系统”( Picture Archiving and Communication System),为以实现医学影像数字化存储、诊断为核心任务,从医学影像设备(如CT、CR、DR、MR、…

ZZS-7/1G212分合闸电源综合控制装置 220VAC 板前接线 JOSEF约瑟

系列型号: ZZS-7G/1分闸、合闸、电源监视综合控制装置; ZZS-7G/11分闸、合闸、电源监视综合控制装置; ZZS-7G/23分闸、合闸、电源监视综合控制装置; ZZS-7G/24分闸、合闸、电源监视综合控制装置; ZZS-7/1G11分闸、合闸…

21.兼容性测试

考试频率低; 一般考兼容性测试会结合web测试;(兼容性矩阵) 主要议题: 1.兼容性测试概述 2.硬件兼容性测试 最低配置不讲究工作负载,意思是软件能够运行的最低要求环境; 推荐配置&#xff0c…

修复503 Service Unavailable Error问题

近期我们网网站经常出现503 Service Unavailable Error,在此之前我们的网站从未出现过这种问题,我们向虚拟主机提供商Hostease咨询后,了解到503 Service Unavailable错误是指服务器暂时无法处理请求,通常是由于服务器过载、维护、…

Python数据结构与算法——数据结构(链表、哈希表、树)

目录 链表 链表介绍 创建和遍历链表 链表节点插入和删除 双链表 链表总结——复杂度分析 哈希表(散列表) 哈希表介绍 哈希冲突 哈希表实现 哈希表应用 树 树 树的示例——模拟文件系统 二叉树 二叉树的链式存储 二叉树的遍历 二叉搜索树 插入 查询 删除 AVL树 …

路由Vue-Router使用

Vue Router 是 Vue.js 的官方路由。它与 Vue.js 核心深度集成,让用 Vue.js 构建单页应用变得轻而易举。 介绍 | Vue Router (vuejs.org) 1. 安装 npm install vue-router4 查看安装好的vue-router 2. 添加路由 新建views文件夹用来存放所有的页面,在…

初入职,如何用好 git 快速上手项目开发

前言 介绍在工作中使用 git 工具 文章目录 前言一、git 简介1、是什么作用操作3、用途 二、基本概念1、工作区2、暂存区3、版本库4、操作过程 三、基本命令操作 一、git 简介 1、是什么 git 是一个方便管理代码版本的工具,用一个树结构来维护和管理所有的历史版本…

数据结构记录

之前记录的数据结构笔记,不过图片显示不了了 数据结构与算法(C版) 1、绪论 1.1、数据结构的研究内容 一般应用步骤:分析问题,提取操作对象,分析操作对象之间的关系,建立数学模型。 1.2、基本概念和术语 数据&…

Finite Element Procedures K.J.Bathe 【教材pdf+部分源码】|有限元经典教材 | 有限元编程

专栏导读 作者简介:工学博士,高级工程师,专注于工业软件算法研究本文已收录于专栏:《有限元编程从入门到精通》本专栏旨在提供 1.以案例的形式讲解各类有限元问题的程序实现,并提供所有案例完整源码;2.单元…

flask的使用学习笔记1

跟着b站学的1-06 用户编辑示例_哔哩哔哩_bilibili flask是一个轻量级,短小精悍,扩展性强,可以扩展很多组件,django大而全 编程语言它们的区别: (这些语言都很了解,java和python是高级语言,都…

动手做一个最小Agent——TinyAgent!

Datawhale干货 作者:宋志学,Datawhale成员 前 言 大家好,我是不要葱姜蒜。在ChatGPT横空出世,夺走Bert的桂冠之后,大模型愈发地火热,国内各种模型层出不穷,史称“百模大战”。大模型的能力是毋…