【软件工程】需求分析

1. 导言

1.1. 需求文档的目的

该文档是关于用户对于“学生成绩管理系统”的功能和性能的要求,重点描述了“学生成绩管理系统”的设计需求,将作为对该工具在概要设计阶段的设计输入。编写本文档的目的在于说明软件工程管理系统的业务需求内容,包括功能需求及非功能需求,并为系统设计提供基础。

1.2. 产品范围

本产品适用于普通学校的普通的期中考试以及期末考试,可以很方便地对学生成绩进行管理和查询。

2. 系统定义

2.1. 系统概述

本系统的主要功能如下:本系统分为三个用户类型——教师、学生、管理员。其中教师可以查看成绩、登记成绩并进行修改,学生可以查看成绩并且可以对自己的成绩进行申诉,管理员负责后台管理以及对学生的成绩申诉进行审核,审核通过后告知教师进行成绩重审和修改。

3. 应用环境

3.1. 系统运行网络环境

网络拓扑图如图3.1所示。

img

图3.1 网络拓扑图

3.2. 系统运行硬件环境

  • CPU:1.8GHz

  • 存储空间:450GB

  • 内存:256MB以上

3.3. 系统运行软件环境

  • 操作系统:Windows 11 家庭版

  • 数据库:MySQL 8.0

  • 集成开发环境:IntelliJ IDEA 2023.1

  • 开发工具包:JDK Version 21

  • 浏览器:Edge 浏览器或 Chrome 浏览器

4. 功能规格(功能性需求)

4.1. 需求概述

4.1.1. 角色定义

教师:教师可以查看所教学生的成绩、登记所教科目的成绩并进行修改。

管理员:负责后台管理以及对学生的成绩申诉进行审核,审核通过后告知教师进行成绩重审和修改。维护服务器 、收集用户反馈、管理用户账号的人员。

学生:可以查看自己的成绩并且可以对自己的成绩进行申诉。

4.1.2. 系统功能概述

简单介绍本系统的功能。本系统是为了辅助学校实现众多学生的成绩管理,方便学校和老师的教学开展。本系统分为三个用户类型——教师、学生、管理员。其中教师可以登记成绩并进行修改,学生可以查看成绩并且可以对自己的成绩进行申诉,管理员负责后台管理以及对学生的成绩申诉进行审核,审核通过后告知教师进行成绩重审和修改。

4.1.3. 系统功能详细描述

学生:作为学生成绩管理系统的主体用户,需要使用学号(作为账号),密码进行注册或登录,登陆后可以查看自己各门课的成绩。如果对成绩有很大异议,可以在写好申诉理由后向管理员申诉(申诉理由需要足够充分)。

教师:需要使用工号(作为账号),密码进行注册或登录,登录后可以看到自己所教授的这门课的学生基本信息,可以打分并上传,交由管理员审核。也可以选择修改、撤回分数。

管理员:拥有系统的最高权限,可以允许查看、删除和添加老师和学生的账户信息。其账号和密码事先给定,不允许普通用户自由注册。负责系统的日常管理与运营。可以审核老师提交的成绩信息,审核通过就正式发布,不通过就打回,顺便给出理由。可以审核学生提交的申诉信息,通过则通知老师再次核实成绩,不通过则驳回。

4.1.4. 系统的环境图

以下是系统的环境图(顶层数据流图)。

img

图4.1 系统顶层数据流图

4.2. 功能需求

采用SA方法或OOA方法建立系统的分析模型。

4.2.1. 功能模型

(1)管理员用例图如图4.2所示:

img

图4.2 系统管理员用例图

用例表1-1

用例名称:登录执行者:管理员
1.1前置条件:计算机接入互联网
1.2后置条件:如果用例执行成功,系统进入初始界面
1.3主事件流:
1)管理员打开登陆界面,此用例开始。
2)管理员输入账号密码。
3)进入初始界面,此用例结束。

用例表1-2

用例名称:审核内容执行者:管理员
1.1前置条件:老师上传了学生成绩
1.2后置条件:审核完成后,将学生成绩发布到各个账号
1.3主事件流:
1)管理员点击审核成绩,此用例开始。
2)审核完成后,点击发布,此用例结束。

用例表1-3

用例名称:账号管理执行者:管理员
1.1前置条件:登陆成功并进入管理员界面
1.2后置条件:输出相应操作
1.3主事件流:
1)点击账号管理,此用例开始。
2)点击操作类型,进行操作。
3)操作成功后,此用例结束。

(2)教师用例图如图4.3所示:

img

图4.3 教师用例图

用例表2-1

用例名称:登录注册执行者:教师
1.1前置条件:计算机连上互联网
1.2后置条件:如果此用例成功,则系统提示“注册成功”。如果执行不成功,系统状态不变,提示“注册失败”。
1.3主事件流:
1)教师登录网页点击注册,此用例开始。
2)填写自己的教工号,设置密码。
3)点击注册,系统提示操作成功,此用例结束。

用例表2-2

用例名称:查看学生成绩执行者:教师
1.1前置条件:学生账号存在,成绩已录入。
1.2后置条件:如果此用例成功,则此教师可以看到成绩界面。如果执行不成功,系统状态不变。
1.3主事件流:
1)教师点击查看学生成绩,此用例开始。
2)查看成功,此用例结束。

用例表2-3

用例名称:查看申诉执行者:教师
1.1前置条件:有学生申诉
1.2后置条件:如果此用例成功,则此教师可以看到学生申诉界面。如果执行不成功,系统状态不变。
1.3主事件流:
1)教师点击查看成绩申诉,此用例开始。
2)查看成功,根据实际情况调用编辑学生成绩用例,此用例结束。

用例表2-4

用例名称:编辑学生成绩执行者:教师
1.1前置条件:登录教师账号
1.2后置条件:无
1.3主事件流:
1)教师点击编辑学生成绩,此用例开始。
2)填写完毕,此用例结束。

(3)学生用例图如图4.4所示:

img

图4.4 学生用例图

用例表3-1

用例名称:登录注册执行者:学生
1.1前置条件:计算机接入互联网
1.2后置条件:如果此用例成功,则系统提示“注册成功”。如果执行不成功,系统状态不变,提示“注册失败”。
1.3主事件流:
1)学生登录网页点击注册,此用例开始。
2)填写自己的学号,设置密码。
3)点击注册,系统提示操作成功,此用例结束。

用例表3-2

用例名称:申诉执行者:学生
1.1前置条件:学生对成绩有异议
1.2后置条件:无
1.3主事件流:
1)学生点击申诉,此用例开始。
2)点击申诉的科目。
3)系统提示操作成功,此用例结束。

用例表3-3

用例名称:查看成绩执行者:学生
1.1前置条件:学生成绩已存在于数据库中
1.2后置条件:如果此用例成功,则此学生可以查看到自己的成绩界面。如果执行不成功,系统状态不变。
1.3主事件流:
1)学生点击“查看成绩”,此用例开始。
2)系统提示操作成功,此用例结束

4.2.2. 数据模型/对象模型

创建的系统类图如图所示:

img

图4.3 类图示例

表1. 各个类的属性

类与对象属性
teacher(教师)教工号,姓名
student(学生)学号,姓名,性别
administrator(管理员)管理员工号,姓名

表2. 各个类的服务

类与对象服务
teacher(教师)查询、编辑学生成绩,查看申诉情况
student(学生)查询成绩,申诉成绩
administrator(管理员)管理账号,审核成绩,维护系统

4.2.3. 动态模型

img

图4.4 登录界面的顺序图

img

图4.5 教师打分的状态图

5. 非功能性需求

逐项叙述系统的各项非功能性需求。

登陆界面:在成绩管理系统中,学生更喜欢简洁、直观的呈现方式。因此我们并没有选择美观的图案,而是采取了极简风格,不给用户增加使用时的烦赘体验。同时,我们采取用户的学号以及教职工号作为用户名,以此来和学校的学生管理相匹配。根据登陆时的用户名,将用户自动分为“教师”、“学生”和“管理员”,此后根据每个用户身份会有不同的使用界面。

5.1性能需求

  1. 响应时间:基于现实考虑,因为大于3秒的响应时间会很影响使用者的使用体验,因此我们对软件的响应时间进行了约束,在本机测试中所有功能最迟响应时间为1.387秒。

  2. 吞吐量:考虑到每个班级人数,我们设定为同一时间最大访问人数为50人,即允许50人同时访问网站。

5.2 安全性

权限控制:本项目的最高权限设置给管理员,此下为老师,学生权限只有查看。且未完成登记的人员不会有使用本程序的权限。

5.3 可维护性与可拓展性

模块性: 本项目所涉及的所有功能均由各个文件打包完成,整个系统被分成独立的版块,并且每个版块独立实现功能。

可复用性:在系统中我们把很多的代码进行了优化,这使得在实现各个功能时,我们可以依靠之前的代码模板,高效的进行功能的拓展。

5.4 易用性

易操作性:将系统的每个版块设计得很直观,并且系统的功能通过不同的按键来表达,直观高效,操作简单。

易学习性:系统的所有功能表达直接,并且均设置在用户容易看见的位置,使得用户并不需要使用手册也可以迅速使用系统。

用户错误防御机制:当用户错误登陆或者其他错误操作时,会有“哭脸”和提示出现,指明用户的错误操作,并且提示给用户正确做法。

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

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

相关文章

30-3 越权漏洞 - 水平越权(横向越权)

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、定义 攻击者可以访问和操作与其拥有同级权限的用户资源。 示例: 学生A在教务系统上正常只能修改自己的作业内容,但由于不合理的权限校验规则等原因,学生A可以修改学生B的内…

记录C++中,vector的迭代器在push_back以后扩容导致迭代器失效的问题

前言 vector是我们用到最多的数据结构,其底层数据结构是单端动态数组,由于数组的特点,vector也具有以下特性: ①O(1)时间的快速访问; ②顺序存储,所以插入到非尾结点位置所需时间复杂度为O(n),删…

uniapp开发微信小程序设置分包,简单易学

文章目录 前言一、在 manifest.json文件中的源码试图中配置二、配置pages.json 前言 我们使用uniapp开发微信小程序的时候,当我们的包体积过大的时候,无法真机模拟。 因为小程序单个包只支持2MB(现已支持预览4MB),所以…

AI:155-基于深度学习的股票价格预测模型

本文收录于专栏:精通AI实战千例专栏合集 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 每一个案例都附带关键代码,详细讲解供大家学习,希望可以帮到大家。正在不断更新中~ 一.基于深度学习的股票价格预测模型 …

基于k8s的web服务器构建

文章目录 k8s综合项目1、项目规划图2、项目描述3、项目环境4、前期准备4.1、环境准备4.2、ip划分4.3、静态配置ip地址4.4、修改主机名4.5、部署k8s集群4.5.1、关闭防火墙和selinux4.5.2、升级系统4.5.3、每台主机都配置hosts文件,相互之间通过主机名互相访问4.5.4、…

总结IP协议各类知识点

前言 本篇博客博主将详解IP协议中的各类知识点,坐好板凳发车啦~ 一.IP协议格式 1.1 4位版本号(version) 指定IP协议的版本,对于IPv4来说,就是4。 1.2 4位头部长度(header length) IP头部的…

HarmonyOS像素转换-如何使用像素单位设置组件的尺寸。

1 卡片介绍 基于像素单位,展示了像素单位的基本知识与像素转换API的使用。 2 标题 像素转换(ArkTS) 3 介绍 本篇Codelab介绍像素单位的基本知识与像素单位转换API的使用。通过像素转换案例,向开发者讲解了如何使用像素单位设…

大数据-Hadoop---基础配置案例

VMware17创建新虚拟机: 1.静态设置与关闭防火墙 在终端命令行依次输入: 1)cd /etc 2) ls 3) cd sysconfig/ 4) cd network-scripts/ 5) ls 6) vi ifcfg-nes33 在cmd命令栏输入:ncpa.cpl,是找网络适配器的命令 IPADDR&qu…

elementui el-input输入框类型为textarea时,将输入的数据保存换行和空格,并展示换行和空格

el-input输入框类型为textarea时,如果不做数据处理,是不会保存换行和空格的说输入了换行,但是保存数据后不会进行换行,需要保存输入的换行。 1、效果图 输入状态: 显示时: 2、实现代码 2.1、html部分&am…

在jupyter notebook中使用conda环境

在jupyter notebook中使用conda环境 1. 环境配置 conda activate my-conda-env # this is the environment for your project and code conda install ipykernel conda deactivateconda activate base # could be also some other environment conda install nb_cond…

在新能源充电桩、智能充电枪、储能等产品领域得到广泛应用的两款微功耗轨至轨运算放大器芯片——D8541和D8542

D8541和D8542是我们推荐的两款微功耗轨至轨运算放大器芯片,其中D8541为单运放, D8542为双运放,它特别适用于NTC温度采集电路、ADC基准电压电路、有源滤波器、电压跟随器、信号放大器等电路应用,在新能源充电桩、智能充电枪、…

网络编程--高并发服务器(二)

这里写目录标题 线程池高并发服务器UDP服务器TCP与UDP机制的对比TCP与UDP优缺点比较UDP的C/S模型实现思路模型分析实现思路(对照TCP的C/S模型) 二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二…

【跟着CHATGPT学习硬件外设 | 05】I2C

本文根据博主设计的Prompt由CHATGPT生成,形成极简外设概念。 🚀 1. 概念揭秘 I2C(Inter-Integrated Circuit),也被称为IIC或双线接口,是一种用于微控制器(Microcontrollers)和外设…

用navicat进行mysql表结构同步

用navicat进行mysql表结构同步 前言新增一个列然后进行表结构同步删除一个列然后进行表结构同步把Int列转成TinyInt列,看数字溢出的情况下能不能表结构同步总结 前言 从同事那边了解到还能用navicat进行表结构同步,他会在发布更新的时候,直接…

Python基础之Class类的定义、继承、多态

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、class类1.类属性操作(增删改)2.类方法操作 二、类的继承1、语法2、方法重写 二、类的多态 一、class类 、三部分组成 1、类名&#xff…

MySQl on和where条件的区别?

MySQ L on和where条件的区别? on会生成临时表,不满足条件会置空 where 过滤数据,不满足的数据不会显示

木地板 VS 瓷砖,不同风格应该怎么选?福州中宅装饰,福州装修

不同装修风格应该怎么选择地板铺贴材质?是选择木地板还是瓷砖?以下分点阐述: ①现代简约风格 推荐使用瓷砖。因为瓷砖的表面光滑,能反射出灯光的倒影,营造出简洁明亮的视觉效果。同时,瓷砖耐磨、易清洁&am…

算法——动态规划:01背包

原始01背包见下面这篇文章:http://t.csdnimg.cn/a1kCL 01背包的变种:. - 力扣(LeetCode) 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 简化一…

Mysql从0到1 —— CRUD/索引/事务

文章目录 1 预备知识1.1 安装1.2 登录 & 退出1.3 配置文件my.cnf 2 基础知识2.1 链接服务器2.2 什么是数据库2.3 基本使用2.3.1创建表2.3.2 插入数据 2.4 服务器、数据库、表的关系2.5 SQL分类2.6 存储引擎 3 Mysql数据库的操作3.1 创建和删除3.2 字符集和校验规则3.3 查看…

javaScript之递归

什么是递归? 递归函数是在一个函数内通过名字调用自身的情况下构成的。 递归的优点 递归可以用来处理循环解决起来比较麻烦的问题 方法: 1,函数自己调用自己 2,找规律,找出这一次和上一次的关系 2,需…