【软件工程】需求分析

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的内…

点云从入门到精通技术详解100篇-基于3D点云的盘类元件识别与定位

目录 前言 2 3D视觉机器人抓取系统方案设计 2.1 系统硬件方案选型 2.1.1 相机选取方案

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

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

动态规划--(递推2(最长上升子序列,格子染色,斐波那切数列,奇数塔问题,最长子段和))

1281&#xff1a;最长上升子序列 【题目描述】 一个数的序列bi &#xff0c;当b1<b2<…<bS 的时候&#xff0c;我们称这个序列是上升的。对于给定的一个序列(a1,a2,…,aN) &#xff0c;我们可以得到一些上升的子序列(ai1,ai2,…,aiK) &#xff0c;这里1≤i1<i2<…

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

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

Docker 学习总结(81)—— 冷门而又实用的 Docker 使用技巧总结

1、docker top 这个命令是用来查看一个容器里面的进程信息的,比如你想查看一个 nginx 容器里面有几个 nginx 进程的时候,就可以这么做。 ➜ ~ docker top 3b307a09d20d UID PID PPID C STIME …

JAVA面试大全之开发基础篇

目录 1、常用类库 1.1、平时常用的开发工具库有哪些? 1.2、Java常用的JSON库有哪些?有啥注意点? 1.3、Lombok工具库用来解决什么问题?

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文件&#xff0c;相互之间通过主机名互相访问4.5.4、…

深入解析大数据Scala面试题及参考答案(持续更新)

Scala,作为一种多范式编程语言,因其强大的功能性和与Java的互操作性,在大数据和并发编程领域备受青睐。本文将深入探讨10个常见的Scala面试题,并提供详尽的参考答案,以期帮助读者在面试中展现其Scala编程的深厚功底。 目录 1. Scala的基本特性是什么? 2. 什么是函数式…

总结IP协议各类知识点

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

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

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

【LeetCode热题100】【多维动态规划】最长公共子序列

我昨天面了天美L1的游戏客户端开发&#xff0c;面了我100分钟&#xff0c;问完实习、项目、计算机图形学和C后给了我两道算法题做&#xff0c;一道是最长公共子序列&#xff0c;一道是LRU缓存&#xff0c;我知道是经典的题目&#xff0c;但是我都没敲过&#xff0c;最长公共子序…

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

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

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

el-input输入框类型为textarea时&#xff0c;如果不做数据处理&#xff0c;是不会保存换行和空格的说输入了换行&#xff0c;但是保存数据后不会进行换行&#xff0c;需要保存输入的换行。 1、效果图 输入状态&#xff1a; 显示时&#xff1a; 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是我们推荐的两款微功耗轨至轨运算放大器芯片&#xff0c;其中D8541为单运放&#xff0c; D8542为双运放&#xff0c;它特别适用于NTC温度采集电路、ADC基准电压电路、有源滤波器、电压跟随器、信号放大器等电路应用&#xff0c;在新能源充电桩、智能充电枪、…

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

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

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

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

前端开发学习笔记(1)

文章目录 基础概念VSCode常用插件和快捷键VSCode常用插件VSCode常用快捷键 常用标签和属性 基础概念 网页和网站&#xff1a; 网页&#xff1a;网站中的一页&#xff0c;通常是HTML格式的文件。网页是由网页元素组成的&#xff0c;这些元素用HTML标签描述&#xff0c;然后通过…