软件工程 学生信息管理系统 结构化的需求分析_软件工程需求分析报告学生信息管理系统-程序员宅基地

技术标签: 需求分析  软件工程  


前言

《软件工程》课程 实验一 结构化的需求分析 实验报告


1.实验目的

1)完成毕业生就业服务系统整个需求分析工作;
2)掌握结构化数据流分析技术;
3)进行业务需求分析、用户需求、功能需求、非功能需求分析;
4) 画出系统的数据流图(至少画到三级数据流图)

2.实验要求

根据所要开发的软件系统,利用结构化数据流分析技术分析系统的具体需求,完成详细的数据流图和数据字典,数据流图的基本处理的个数不得少于5个。

3.需求分析

3.1用户需求

通过获取用户的需求,本系统大致可分为3个子系统,分别是学生、教师、管理员。每一个子系统下面拥有若干个功能。本系统模拟教师对日常考勤信息管理过程,开发学生考勤信息管理系统。
根据访问角色的不同,在系统中应体现出对教务资源的访问的权限的不同,其中管理员权限最大,拥有增、删、改、查的权限,而教师和学生角色仅拥有查及限制性的增、改权限。
学生:由于学生是被管理的角色,因此,在这里,学生需要的应该是选课、添加考勤信息,请假信息与查询修改自我信息等功能。
教师:教师是管理的角色,因此,这类用户应该具有管理学生的权利,如:查看学生信息、添加课程信息、查看,修改考勤信息,审批请假信息等。
管理员:一个完整的管理系统应该有个拥有最高权限的角色用户,因此,这里,管理员便是该角色,管理员拥有整个项目系统的最高权限。
即:系统管理员享有最高权限,其次是教师,最后是学生。
在系统权限上完成学生用户和老师用户,系统管理员三者的功能分离,而且各自的功能操作都能得到正确数据并存入数据库中保存。

3.2功能需求分析

学校学生管理信息系统是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统。它是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。能有效的帮助学校和老师掌握学生的情况,为学生提供成绩跟课程
具体系统功能需求描述如下:

  1. 学生信息管理
    每学期都有新生与毕业生的信息加入或删除,以及各类学生信息的更新;该模块支持学生的添加、删除、信息修改,以及老师可查询学生信息的功能
  2. 课程信息管理
    每个学期都会增加(删除)一些新(旧)的科目,该模块实现课程的添加、删除,以及修改更新课程信息的功能
  3. 管理员信息管理
    管理员的信息也会偶尔更改;该模块实现管理员的添加、删除,以及修改管理员信息的功能
  4. 老师信息管理
    与学生信息相似,教师信息也需要经常的更新,该模块实现老师的添加、删除,以及修改老师信息的功能
  5. 选课信息管理
    每学期都需要进行新的选课;该模块支持学生进行选课以及退课操作的功能,支持学生对已选中与未选择课程信息的查看
  6. 成绩信息管理
    该模块支持老师录入学生的各科成绩,同时支持学生进行成绩查询以及各类成绩信息的汇总统计,如总学分、总成绩等
  7. 课程安排管理
    该模块支持学生对自己的课程安排进行查询,同时支持管理员对课程安排信息的修改更新

3.3非功能性需求

3.3.1数据精准度需求

1.在执行数据的增加、删除、修改操作时,不允许因为程序原因导致操作失败;
2.在执行数据增加时,不允许发生多增加或重复增加的情况;
3.在执行数据删除时,不允许发生多删除数据;
4.在执行数据删除时,对有关联的数据要求删除完全,如不能删除,请给予提示;
5.在执行数据修改时,也要求保持对应的准确性。

3.3.2界面需求

1.页面内容:课程信息内容准确,术语和行文格式统一、规范、明确,栏目、菜单设置和布局合理,传递的信息准确、及时。
2.导航结构:页面具有明确的导航指示,且便于理解,方便用户使用。
3.技术环境:页面大小适当,能用各种常用浏览器以不同分辨率浏览;无错误链接和空链接。
4.艺术风格:界面、版面形象清新悦目、布局合理,字号大小适宜、字体选择合理,前后一致,美观大方;色彩和谐自然,与内容相协调。

3.3.3 响应时间需求

当用户进行任何操作的时候,系统应该及时的进行反应,反应的时间在 3 秒以内。系统应能监测出各种非正常情况,如与设备的通信中断,无法连接数据库服务器等,避免出现长时间等待甚至无响应。

3.3.4 可靠性需求

系统应保证 7*24 小时内不宕机,保证 50 人以上可以同时在客户端登录,系统正常运行,正确提示相关内容。

3.3.5 可扩展性需求

系统设计要求能够体现扩展性要求,以适应将来功能扩展的需求。

3.3.6 系统安全性需求

网站有严格的权限管理功能,各功能模块需有相应的权限方能进入(如教师
和学生具有不同的访问权限)。系统需能够防止各类误操作可能造成的数据丢失,破坏。防止用户非法获取网页以及内容 。

4.实验内容

4.1数据流图

一、顶层数据流图:
在这里插入图片描述
二、1层数据流图:
在这里插入图片描述
三、2层数据流图
管理学生模块:
在这里插入图片描述

管理课程模块:
在这里插入图片描述

管理员信息模块:
在这里插入图片描述

管理老师模块:
在这里插入图片描述

选课管理与成绩管理模块:
在这里插入图片描述

课程安排管理模块:
在这里插入图片描述

4.2数据字典

数据流词条:
数据流名:查询条件
数据来源:学生登录处理
数据去向:学生信息表
说明:通过合适的查询条件,输出学生的信息
数据组成:学号+姓名
数据流量:早晨9点到中午12点,下午14点到17点数据流量大

数据流名:课程安排信息
数据来源:管理员制定的课程管理信息
数据去向:学生课程安排信息
说明:用于管理学生的课程安排信息
数据组成:课程代号+课程名+代课老师+学分+时间
数据流量:早晨9点到中午12点,下午14点到17点数据流量大

数据流名:录入成绩
数据来源:老师对课程的考核方式
数据去向:学生成绩管理
说明:录入学生的选课的成绩信息
数据组成:学号+姓名+课程名+成绩+学分
数据流量:早晨9点到中午12点,下午14点到17点数据流量大

数据流名:学生基本信息
数据来源:管理员对学生的信息的管理
数据去向:学生与老师及管理员得到学生的基本信息
说明:查询学生的基本信息
数据组成:学号+姓名+性别+出生日期+系别+专业+年级
数据流量:早晨9点到中午12点,下午14点到17点数据流量大

数据流名:选课信息
数据来源:老师输入到选课管理中的课程信息
数据去向:学生的选课信息与成绩管理
说明:查询学生的选课信息
数据组成:课程代号+课程名+学分+类别+任课老师+人数+班级
数据流量:早晨9点到中午12点,下午14点到17点数据流量大

数据流名:学生的成绩及学分
数据来源:选课管理与成绩管理
数据去向:学生的成绩与学分信息
说明:查询学生的成绩与学分
数据组成:课程名+学分+类别+考核方式+成绩+辅修标记
数据流量:早晨9点到中午12点,下午14点到17点数据流量大

数据流名:老师信息
数据来源:管理老师
数据去向:老师查询自身的信息
说明:查询老师的基本信息
数据组成:老师编号+姓名+性别+职称+出生日期+院系+电话
数据流量:早晨9点到中午12点,下午14点到17点数据流量小

数据流名:课程信息
数据来源:管理员课程管理
数据去向:学生的课程安排
说明:管理员对课程信息的管理
数据组成:课程代号+课程名+出版社+作者+专业+系别+年级
数据流量:早晨9点到中午12点,下午14点到17点数据流量大

数据流名:管理员信息
数据来源:管理员信息管理
数据去向:管理员对自身的信息查询
说明:管理员的基本信息
数据组成:姓名+性别+出生年月+电话+职称
数据流量:早晨9点到中午12点,下午14点到17点数据流量小

数据流名:学生课程安排信息
数据来源:管理课程对课程信息的录入
数据去向:学生的选课信息
说明:学生的课程安排
数据组成:课程代号+课程名+代课老师+学分+时间
数据流量:早晨9点到中午12点,下午14点到17点数据流量大

数据流名:学生成绩信息
数据来源:老师对课程考核方式
数据去向:学生对成绩信息的查询
说明:学生对选中课程的成绩查询
数据组成:课程名+学分+类别+考核方式+成绩
数据流量:早晨9点到中午12点,下午14点到17点数据流量大

数据流名:学生选课信息
数据来源:管理员对课程的制定
数据去向:学生选课管理
说明:学生查询选中的课程信息
数据组成:课程代号+课程名+学分+类别+任课老师+人数+班级
数据流量:早晨9点到中午12点,下午14点到17点数据流量大

数据流名:选课统计
数据来源:选课管理
数据去向:成绩管理
说明:对选中课程的学生做出统计
数据组成:课程代号+课程名+任课老师+人数+班级
数据流量:早晨9点到中午12点,下午14点到17点数据流量大

数据流名:选课查询
数据来源:管理元制定的课程
数据去向:学生选课管理
说明:学生查询选中的课程信息
数据组成:课程代号+课程名+学分+类别+任课老师+人数+班级
数据流量:早晨9点到中午12点,下午14点到17点数据流量大

数据流名:成绩查询
数据来源:老师对选课的考核方式
数据去向:学生成绩管理
说明:学生查询选中课程成绩信息
数据组成:课程名+学分+类别+考核方式+成绩
数据流量:早晨9点到中午12点,下午14点到17点数据流量大

数据流名:成绩信息
数据来源:老师对选课的考核方式
数据去向:学生成绩管理
说明:学生查询选中课程成绩信息
数据组成:课程名+学分+类别+考核方式+成绩
数据流量:早晨9点到中午12点,下午14点到17点数据流量大

数据存储词条:
数据存储名称:学生信息存储
编号:D1
描述:反映学生基本信息情况
定义:学生信息存储=学号+姓名+性别+出生日期+系别+专业+年级
存储方式:数据库表

数据存储名称:课程信息存储
编号:D2
描述:反映课程基本信息情况
定义:课程信息存储=课程代号+课程类型+学分+学时
存储方式:数据库表

数据存储名称:管理员信息存储
编号:D3
描述:反映管理员基本信息情况
定义:管理员信息存储=姓名+性别+出生年月+电话+职称
存储方式:数据库表

数据存储名称:老师信息存储
编号:D4
描述:反映老师基本信息情况
定义:老师信息存储=老师编号+姓名+性别+职称+出生日期+院系+电话
存储方式:数据库表

数据存储名称:选课信息存储
编号:D5
描述:反映选课基本信息情况
定义:选课信息存储=课程代号+课程名+学分+类别+任课老师+人数+班级
存储方式:数据库表

数据存储名称:成绩信息存储
编号:D6
描述:反映学生成绩基本信息情况
定义:成绩信息存储=序号+课程名+学分+类别+考核方式+成绩
存储方式:数据库表

数据存储名称:课程安排信息存储
编号:D7
描述:反映课程安排基本信息情况
定义:课程安排信息存储=年级+专业+班级+院系+周数
存储方式:数据库表

数据项名称:
数据项名称:学号
描述:学校为每一位学生分配的一个编号
类型:字符串
长度:12
定义:学号=12 {数字字符} 12

数据项名称:姓名
类型:字符串
长度:2-8
定义:姓名=2 {数字字符} 8

数据项名称:性别
类型:位数据
长度:1
定义:姓名=[男、女]

数据项名称:出生日期
类型:字符串
长度:11
定义:姓名=11 {数字字符} 11

数据项名称:院系
类型:字符串
长度:2-8
定义:姓名=2 {字符} 8

数据项名称:专业
类型:字符串
长度:2-8
定义:姓名=2 {字符} 8

数据项名称:年级
类型:字符串
长度:4
定义:姓名=4 {数字字符} 4

数据项名称:课程代号
类型:字符串
长度:6
定义:姓名=6 {数字字符} 6

数据项名称:课程类型
类型:字符串
长度:8
定义:姓名=8 字符} 8

数据项名称:学分
类型:字符串
长度:2
定义:姓名=2 {数字字符} 2

数据项名称:学时
类型:字符串
长度:2
定义:姓名=2 {数字字符} 2

数据项名称:考核方式
类型:字符串
长度:8
定义:姓名=8 {字符} 8

数据项名称:成绩
类型:字符串
长度:2
定义:姓名=2 {数字字符} 2

数据项名称:任课老师
类型:字符串
长度:2-8
定义:姓名=2 {字符} 8

数据项名称:人数
类型:字符串
长度:2-3
定义:姓名=2 {数字字符} 3

数据项名称:班级
类型:字符串
长度:6
定义:姓名=6 {字符} 6

数据项名称:老师编号
描述:学校为每一位老师分配的一个编号
类型:字符串
长度:12
定义:学号=12 {数字字符} 12

数据项名称:职称
类型:字符串
长度:6
定义:姓名=6 {字符} 6

数据项名称:电话
类型:字符串
长度:12
定义:姓名=12 {数字字符} 12

数据项名称:周数
类型:字符串
长度:2
定义:姓名=2 {数字字符} 2

基本加工词条:

加工名称:课程信息管理
描述:当有人申请查询、更改课程,返回相关数据
输入:申请查询课程、课程信息
输出:课程信息
加工逻辑:接受申请查询课程
THEN
根据课程号发送课程信息
ELSE根据课程号更改课程信息

加工名称:学生信息管理
描述:当有人申请查询、更改学生信息,返回相关数据
输入:申请查询学生信息、修改学生信息
输出:学生信息
加工逻辑:接受申请学生课程
THEN
根据学号发送学生信息
ELSE根据学号更改学生信息

加工名称:老师信息管理
描述:当有人申请查询、更改教师信息,返回相关数据
输入:申请查询、更改教师信息
输出:教师信息
加工逻辑:接受申请查询教师信息
THEN
根据教师编号发送人员信息
ELSE根据教师编号更改人员信息

加工名称:管理信息管理
描述:当有人申请查询、更改管理员信息,返回相关数据
输入:申请查询、更改管理员信息
输出:管理员信息
加工逻辑:接受申请查询管理员信息
THEN
根据管理员名称发送人员信息
ELSE根据管理员名称更改人员信息

加工名称:选课信息管理
描述:当有人申请选课、退选课程、查询选课信息,返回相关数据
输入:申请选课、退选课程、查询选课信息
输出:选课信息
加工逻辑:接受申请选课、退选课程、查询选课信息
THEN
根据学号更改选课信息
ELSE根据学号发送选课信息

加工名称:成绩信息管理
描述:当有人申请录入、修改成绩、查询成绩信息,返回相关数据
输入:申请录入、修改成绩、查询成绩信息
输出:成绩信息
加工逻辑:接受申请录入、修改成绩、查询成绩信息
THEN
根据学号录入、修改成绩信息
ELSE根据学号发送成绩信息

加工名称:课程安排信息管理
描述:当有人申请修改、查询课程安排信息,返回相关数据
输入:申请修改、查询课程安排信息
输出:课程安排信息
加工逻辑:接受申请修改、查询课程安排信息
THEN
根据课程编号修改课程安排信息
ELSE根据学号或教师编号发送课程安排信息


5.实验小结

通过这次的实验,帮助我对软件工程的结构化分析以及数据流图等知识有了更深刻的理解与认识,让我对软件工程中的需求分析部分有了更好的理解,需求分析是对需求陈述进行分析,解决其中的歧义、不一致等问题,以系统化的形式表达用户的需求,即给出问题的形式化的描述。这次的实验过程让我理解了要在用户角度思考他们的需求,同时好的系统逻辑结构的构思也相当重要。
同时这次的实验也让我明白了之前的项目制作过程的不足与不好之处,我会继续好好学习软件工程课程,帮助自己对软件制作的整体过程有更加清晰的理解和认识。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_52641692/article/details/124644245

智能推荐

FTP命令字和返回码_ftp 登录返回230-程序员宅基地

文章浏览阅读3.5k次,点赞2次,收藏13次。为了从FTP服务器下载文件,需要要实现一个简单的FTP客户端。FTP(文件传输协议) 是 TCP/IP 协议组中的应用层协议。FTP协议使用字符串格式命令字,每条命令都是一行字符串,以“\r\n”结尾。客户端发送格式是:命令+空格+参数+"\r\n"的格式服务器返回格式是以:状态码+空格+提示字符串+"\r\n"的格式,代码只要解析状态码就可以了。读写文件需要登陆服务器,特殊用..._ftp 登录返回230

centos7安装rabbitmq3.6.5_centos7 安装rabbitmq3.6.5-程序员宅基地

文章浏览阅读648次。前提:systemctl stop firewalld 关闭防火墙关闭selinux查看getenforce临时关闭setenforce 0永久关闭sed-i'/SELINUX/s/enforcing/disabled/'/etc/selinux/configselinux的三种模式enforcing:强制模式,SELinux 运作中,且已经正确的开始限制..._centos7 安装rabbitmq3.6.5

idea导入android工程,idea怎样导入Android studio 项目?-程序员宅基地

文章浏览阅读5.8k次。满意答案s55f2avsx2017.09.05采纳率:46%等级:12已帮助:5646人新版Android Studio/IntelliJ IDEA可以直接导入eclipse项目,不再推荐使用eclipse导出gradle的方式2启动Android Studio/IntelliJ IDEA,选择 import project3选择eclipse 项目4选择 create project f..._android studio 项目导入idea 看不懂安卓项目

浅谈AI大模型技术:概念、发展和应用_ai大模型应用开发-程序员宅基地

文章浏览阅读860次,点赞2次,收藏6次。AI大模型技术已经在自然语言处理、计算机视觉、多模态交互等领域取得了显著的进展和成果,同时也引发了一系列新的挑战和问题,如数据质量、计算效率、知识可解释性、安全可靠性等。城市运维涉及到多个方面,如交通管理、环境监测、公共安全、社会治理等,它们需要处理和分析大量的多模态数据,如图像、视频、语音、文本等,并根据不同的场景和需求,提供合适的决策和响应。知识搜索有多种形式,如语义搜索、对话搜索、图像搜索、视频搜索等,它们可以根据用户的输入和意图,从海量的数据源中检索出最相关的信息,并以友好的方式呈现给用户。_ai大模型应用开发

非常详细的阻抗测试基础知识_阻抗实部和虚部-程序员宅基地

文章浏览阅读8.2k次,点赞12次,收藏121次。为什么要测量阻抗呢?阻抗能代表什么?阻抗测量的注意事项... ...很多人可能会带着一系列的问题来阅读本文。不管是数字电路工程师还是射频工程师,都在关注各类器件的阻抗,本文非常值得一读。全文13000多字,认真读完大概需要2小时。一、阻抗测试基本概念阻抗定义:阻抗是元器件或电路对周期的交流信号的总的反作用。AC 交流测试信号 (幅度和频率)。包括实部和虚部。​图1 阻抗的定义阻抗是评测电路、元件以及制作元件材料的重要参数。那么什么是阻抗呢?让我们先来看一下阻抗的定义。首先阻抗是一个矢量。通常,阻抗是_阻抗实部和虚部

小学生python游戏编程arcade----基本知识1_arcade语言 like-程序员宅基地

文章浏览阅读955次。前面章节分享试用了pyzero,pygame但随着想增加更丰富的游戏内容,好多还要进行自己编写类,从今天开始解绍一个新的python游戏库arcade模块。通过此次的《连连看》游戏实现,让我对swing的相关知识有了进一步的了解,对java这门语言也有了比以前更深刻的认识。java的一些基本语法,比如数据类型、运算符、程序流程控制和数组等,理解更加透彻。java最核心的核心就是面向对象思想,对于这一个概念,终于悟到了一些。_arcade语言 like

随便推点

【增强版短视频去水印源码】去水印微信小程序+去水印软件源码_去水印机要增强版-程序员宅基地

文章浏览阅读1.1k次。源码简介与安装说明:2021增强版短视频去水印源码 去水印微信小程序源码网站 去水印软件源码安装环境(需要材料):备案域名–服务器安装宝塔-安装 Nginx 或者 Apachephp5.6 以上-安装 sg11 插件小程序已自带解析接口,支持全网主流短视频平台,搭建好了就能用注:接口是公益的,那么多人用解析慢是肯定的,前段和后端源码已经打包,上传服务器之后在配置文件修改数据库密码。然后输入自己的域名,进入后台,创建小程序,输入自己的小程序配置即可安装说明:上传源码,修改data/_去水印机要增强版

verilog进阶语法-触发器原语_fdre #(.init(1'b0) // initial value of register (1-程序员宅基地

文章浏览阅读557次。1. 触发器是FPGA存储数据的基本单元2. 触发器作为时序逻辑的基本元件,官方提供了丰富的配置方式,以适应各种可能的应用场景。_fdre #(.init(1'b0) // initial value of register (1'b0 or 1'b1) ) fdce_osc (

嵌入式面试/笔试C相关总结_嵌入式面试笔试c语言知识点-程序员宅基地

文章浏览阅读560次。本该是不同编译器结果不同,但是尝试了g++ msvc都是先计算c,再计算b,最后得到a+b+c是经过赋值以后的b和c参与计算而不是6。由上表可知,将q复制到p数组可以表示为:*p++=*q++,*优先级高,先取到对应q数组的值,然后两个++都是在后面,该行运算完后执行++。在电脑端编译完后会分为text data bss三种,其中text为可执行程序,data为初始化过的ro+rw变量,bss为未初始化或初始化为0变量。_嵌入式面试笔试c语言知识点

57 Things I've Learned Founding 3 Tech Companies_mature-程序员宅基地

文章浏览阅读2.3k次。57 Things I've Learned Founding 3 Tech CompaniesJason Goldberg, Betashop | Oct. 29, 2010, 1:29 PMI’ve been founding andhelping run techn_mature

一个脚本搞定文件合并去重,大数据处理,可以合并几个G以上的文件_python 超大文本合并-程序员宅基地

文章浏览阅读1.9k次。问题:先讲下需求,有若干个文本文件(txt或者csv文件等),每行代表一条数据,现在希望能合并成 1 个文本文件,且需要去除重复行。分析:一向奉行简单原则,如无必要,绝不复杂。如果数据量不大,那么如下两条命令就可以搞定合并:cat a.txt >> new.txtcat b.txt >> new.txt……去重:cat new...._python 超大文本合并

支付宝小程序iOS端过渡页DFLoadingPageRootController分析_类似支付宝页面过度加载页-程序员宅基地

文章浏览阅读489次。这个过渡页是第一次打开小程序展示的,点击某个小程序前把手机的开发者->network link conditioner->enable & very bad network 就会在停在此页。比如《支付宝运动》这个小程序先看这个类的.h可以看到它继承于DTViewController点击左上角返回的方法- (void)back;#import "DTViewController.h"#import "APBaseLoadingV..._类似支付宝页面过度加载页

推荐文章

热门文章

相关标签