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

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


前言

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


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

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签