【软件工程】需求分析

1. 导言

1.1. 需求文档的目的

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

1.2. 产品范围

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

2. 系统定义

2.1. 系统概述

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

3. 应用环境

3.1. 系统运行网络环境

网络拓扑图如图3.1所示。

图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. 系统的环境图

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

图4.1 系统顶层数据流图

4.2. 功能需求

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

4.2.1. 功能模型

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

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

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

图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. 数据模型/对象模型

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

图4.3 类图示例

表1. 各个类的属性

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

表2. 各个类的服务

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

4.2.3. 动态模型

图4.4 登录界面的顺序图

图4.5 教师打分的状态图

5. 非功能性需求

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

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

5.1性能需求

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

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

5.2 安全性

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

5.3 可维护性与可拓展性

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

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

5.4 易用性

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

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

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

相关推荐
飞讯软件20 小时前
制造企业MES系统委外工单管理探析
软件工程
沿着路走到底1 天前
面向对象程序设计
软件工程
Dola_Zou1 天前
CodeMeter 8.20&AxProtector 11.50版本更新
安全·软件工程·软件加密
⠀One0ne3 天前
软件设计原则(Java实现/给出正例反例)
java·软件工程
茜茜西西CeCe3 天前
软件工程知识点总结(7):软件项目管理
软件工程·甘特图·软件项目管理·wbs·gantt
帅次4 天前
重塑在线软件开发新纪元:集成高效安全特性,深度解析与评估支持浏览器在线编程的系统架构设计
性能优化·重构·软件工程·软件构建·个人开发·代码规范·规格说明书
长安er4 天前
编译原理/软件工程核心概念-问题理解
java·开发语言·软件工程·编译·指针·敏捷开发·瀑布模型
z2014z5 天前
系统架构设计师教程 第5章 5.1 软件工程 笔记
笔记·系统架构·软件工程
糖拌西红柿多放醋5 天前
架构师知识梳理(七):软件工程-测试
软件工程
米粒宝的爸爸5 天前
考试:软件工程(01)
软件工程·考试