首页 > 其他分享 >【软件工程】需求分析

【软件工程】需求分析

时间:2024-04-03 13:04:00浏览次数:24  
标签:需求 分析 此用例 教师 系统 学生 用例 软件工程 成绩

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 易用性

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

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

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

标签:需求,分析,此用例,教师,系统,学生,用例,软件工程,成绩
From: https://blog.csdn.net/Wait_Godot/article/details/137136597

相关文章

  • 战略分析or策略分析(Strategy Analysis)
    背景很多人觉得谈战略离自己挺远,特别是一些在大厂或者大企业工作的人,但是,战略分析和部署对于每个人都戚戚相关,每个人都是大趋势下的浪花,所以看好战略才更好随波逐流。当然对于创业者,战略分析价值极大,即使对于小公司或者个人都要有自己的战略规划和部署,这是从宏观角度把握未来......
  • 一个优秀的Android程序员应该侧重于技术还是业务需求?
    前言一个优秀的程序员应该侧重于技术还是业务需求?这是要一个值得探讨的问题…刚入社会时,相信很多朋友都会思考这个问题。有人觉得:“技术当然重要,没有技术根本做不了事。技术高,还可以炫耀,出去找工作轻轻松松,是不是很cool?”也有人觉得:“对程序员来说,业务就是做某一个......
  • MySQL的多层SP中Cursor的m_max_cursor_index相关BUG分析
    源码分析丨MySQL的多层SP中Cursor相关BUG一、问题发现在一次开发中在sp中使用多层cursor的时候想知道每层的m_max_cursor_index值分别是多少,以用来做后续开发。于是做了以下的试验,但是发现第一个level=2那层的m_max_cursor_index的值有点问题。注:本次使用的MySQL数据库版本为......
  • 试井分析系统简介及基础功能介绍
    试井分析是油气田勘探开发中广泛使用的方法,在试油(试气)或油气田开发测试的基础上,通过测试分析井底压力资料,对储层进行分析评价,对油气田的勘探开发有着重要的指导作用。试井分析软件在已有辰工试井分析系统V6.0基础上功能进行了升级优化,采用全新Ribbon界面设计,界面友好,操作方便......
  • Machine Learning机器学习之文本分析的知识图谱(详细讲解)
    目录前言历史:概念思想:知识图谱主要发展历程:知识图谱重要组成部份和特征:知识图谱案列(关于学院、课程、学生):一、知识图谱的存储 二、知识图谱的构建过程 数据层:模式层(构建模式与概念本体设计):三、知识图谱的分析四、知识图谱应用 基于知识图谱应用于电商领域:1.......
  • Machine Learning机器学习之文本分析的词法分析、句法分析、语义分析(详细讲解)
    目录前言词法分析:词义消歧:句法分析:语义分析:文本分析应用1、文本分类:设计过程:代码实现:完整代码: 2、情感分析:总结博主介绍:✌专注于前后端、机器学习、人工智能应用领域开发的优质创作者、秉着互联网精神开源贡献精神,答疑解惑、坚持优质作品共享。本人是掘金/腾讯......
  • 如何利用爬虫与数据分析指导选择首篇小说类型:第三章通过免费代理网站建立ip池
    如何利用爬虫与数据分析指导选择首篇小说类型:第三章通过免费代理网站建立ip池第三章通过免费代理网站建立ip池文章目录如何利用爬虫与数据分析指导选择首篇小说类型:第三章通过免费代理网站建立ip池前言一、获取免费ip1.封装requests请求网址方法2.获取代理ip—开心代......
  • Python套索回归lasso、SCAD、LARS分析棒球运动员薪水3个实例合集|附数据代码
    全文链接:https://tecdat.cn/?p=35585原文出处:拓端数据部落公众号在数据科学和机器学习领域,回归分析是一种强大的工具,用于探索变量之间的关系并预测未来的结果。其中,套索回归(LassoRegression)是一种线性回归方法,特别适用于解决高维数据和过拟合问题。它通过引入正则化项来限制模......
  • C++虚继承原理与类布局分析
    C++虚继承原理与类布局分析引言在开始深入了解虚继承之前,我们先要明白C++引入虚继承的目的。C++有别于其他OOP语言最明显的特性就是类的多继承,而菱形继承结构则是多继承中最令人头疼的情况。我们都知道,当派生类继承基类时,派生类内部会保存一份基类数据的副本。在D->B|C,B|C->A......
  • UVC(1)-v4l2框架分析
    此节是韦东山第三期学习资料 当插入一个网上买的UVC时,内核UVC驱动会打印出下面的Log信息出来对应的UVC驱动位于:/drivers/media/usb/uvc 当插入的UVC与uvc_ids匹配了,就会调用uvc_probe函数枚举设备structuvc_driveruvc_driver={.driver={......