吴昊品工程级别软件项目 Round 2(附加)之(一个标准的DBMS系统的需求分析+数据库设计)(PS:感谢王露珠妹纸)...

本文主要是介绍吴昊品工程级别软件项目 Round 2(附加)之(一个标准的DBMS系统的需求分析+数据库设计)(PS:感谢王露珠妹纸)...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.   需求分析

1.1. 引言

1.1.1.    编写目的

由于近几年来由于我国高等 院校的扩招,导致教学管理,学生管理方面受到很大的冲击。管理的困难主要在于数据量大,涉及的人员多,数据及时更新困难等。如果依靠人工管理则需要投入的 精力多,不便维护,且容易出现错误。因此我们考虑使用计算机进行管理。计算机管理相比人工管理而言拥有无与伦比的优势,能大大减少人力物力的投入,减少出 错,提高效率,实现对学生信息管理的规范化,信息化,自动化。

       为明确软件需求、安排项目规划与进度、组织软件开发与测试,撰写本文档。

       本文档供项目经理、设计人员、开发人员参考。

1.1.2.    项目背景

  1. 待开发的系统名称:学生信息管理系统
  2. 项目的提出者:辜希武
  3. 项目的开发者:戴政、李东阳、常思頔、王露珠
  4. 用户:高效内的学生、教师以及教务处

1.1.3.    定义

Microsoft SQL Server 2000:所用的数据库管理系统

---:所用的开发工具

1.1.4.    参考资料

《软件工程导论》,张海藩 编著,清华大学出版社.

魏蓉,常青青,学生信息管理系统的设计与探讨,价值工程,2011

1.2. 任务概述

1.2.1.    目标

要求设计一个学生信息管理系统供学生、教师以及管理员使用。本系统面向用户的输入接口有:登陆界面、信息添加界面、信息修改界面、信息查询界面、出错提示界面,力求在满足用户需求的基础上精细设计,给用户带来更大的方便。

1.2.2.    运行环境

操作系统:Microsoft Windows 2000 Advanced Server

支持环境:IIS 5.0

数 据 库:Microsoft SQL Server 2000

1.3. 数据描述

进行数据描述一般可以将数据分为静态数据和动态数据。静态数据指的是运行过程中不会发生变化或较长时间不会发生变化的数据。动态数据是指运行过程中要发生变化的数据或者需要输入、输出的数据。下面分别给出各类数据的具体定义。

1.3.1.    静态数据

本学生信息管理系统以Microsoft SQL Server 2000为工具,在数据库中建立如下表格:

学生基本信息表:Student_info

字段

字段名

类型

宽度

强制

1

学号

字符型

20

主键

2

姓名

字符型

12

 

3

性别

字符型

2

 

4

出生日期

字符型

12

 

5

名族

字符型

12

 

6

所在系

字符型

12

 

7

所在班级

字符型

12

 

8

联系电话

字符型

12

 

9

联系邮箱

字符型

20

 

10

联系地址

字符型

20

 

表格 2学生基本信息表

教师基本信息表:Teacher_info

字段

字段名

类型

宽度

强制

1

教师编号

字符型

12

主键

2

姓名

字符型

12

 

3

性别

字符型

2

 

4

出生日期

字符型

12

 

5

名族

字符型

12

 

6

所在系

字符型

12

 

7

联系电话

字符型

12

 

8

联系邮箱

字符型

20

 

9

联系地址

字符型

20

 

表格 3教师基本信息表

学生课程信息表:Student_Course

字段

字段名

类型

宽度

强制

1

课程名

字符型

12

主键

2

任课教师

字符型

12

 

3

课程学分

整型

 

 

4

上课地点

字符型

12

 

5

课程开始时间

字符型

12

 

6

课程结束时间

字符型

12

 

表格 4学生课程信息表

教师课程信息表:Teacher_Course

字段

字段名

类型

宽度

强制

1

课程名

字符型

12

主键

2

上课班级

字符型

12

 

3

课程学分

整型

 

 

4

上课地点

字符型

12

 

5

课程开始时间

字符型

12

 

6

课程结束时间

字符型

12

 

表格 5教师课程信息表

学生个人成绩表:Student_Grade

字段

字段名

类型

宽度

强制

1

学科名

字符型

12

主键

2

学科学分

整型

 

 

3

成绩

整型

 

 

4

加权成绩

整型

 

 

表格 6学生个人成绩表

账号管理: Admin

字段

字段名

类型

宽度

强制

1

账号

字符型

12

主键

2

密码

字符型

12

非空

表格 7账号管理表

班级成绩管理:Teacher_Admin

字段

字段名

类型

宽度

强制

1

系名

字符型

12

 

2

班号

字符型

12

 

3

学生人数

整型

 

 

4

平均成绩

整型

 

 

5

及格人数

整型

 

 

6

优秀人数

整型

 

 

表格 8班级成绩信息表

1.3.2.    动态数据

数据输入:用户名、密码、新建记录项

数据输出:用户查询的输出记录

整个系统E-R图为:

1.2.1.    数据流图

   系统顶层数据流图为:

学生总数据流图:

 教师总数据流图:

管理员总数据流图:

1.2.1.    数据库介绍

所使用的数据库为:Microsoft SQL Server 2000

1.2.2.    数据词典

数据字典内容如下:

名字:账户

内容描述:系统中标志用户的名字

使用地点与方式:用户登录时需要输入账户信息

补充信息:学生的账户为其学号,教师的账户为其编号

名字:密码:

内容描述:用户设置的为了正确登录的字母数字后其他符号

使用地点和方式:用户登录时需要输入正确的密码

名字:学生基本信息表

来源:学生录入信息或修改信息时生成

使用地点和方式:供学生和管理员查询

名字:教师基本信息表:

来源:教师录入或修改信息时生成

使用地点和方式:供教师和管理员查询

名字:学生课程信息表

来源:由管理员录入和修改

使用地点和方式:提供学生查看课程信息

名字:教师课程信息表

来源:由管理员录入和修改

使用地点和方式:提供教师查看课程信息

名字:账户信息表

来源:由管理员增添或删除

使用地点和方式:用户登录时据此验证

名字:学生成绩表

来源:由老师录入或修改

使用地点和方式:供学生查询成绩信息

名字:班级成绩表

来源:根据老师录入的成绩信息统计而成

使用地点和方式:供管理员查询班级成绩信息

名字:账户验证操作

流入信息流:账户信息表

处理流程:用户从界面输入账户和密码信息,如果如果输入的账户和密码信息和账户信息表中的一条记录匹配则登录成功,否则登录失败

名字:学生成绩查询操作

流入数据流:学生成绩信息表

处理流程:学生选择成绩查询操作,数据库匹配出与学生学号对应的记录并在界面上显示学生各门课程的成绩

名字:班级成绩查询操作

流入数据流:学生成绩信息表

处理流程:管理员选择需要查询的班级,数据库从学生成绩表中匹配出该班级的所有学生的成绩信息,并统计出平均成绩、及格人数、优秀人数等信息。

名字:课程查询操作

流入数据流:课程信息表

处理流程:数据库通过学生学号或教师编号匹配出该学生或者教师的课程记录并显示在界面上

名字:成绩添加操作

输出流:学生成绩信息表

处理流程:教师通过界面输入学生成绩,数据库获取该信息后将信息保存在学生成绩信息表中

名字:成绩修改操作

输入流:学生成绩信息表

输入流学生成绩信息表

处理流程:数据库根据教师选取的班号,从数据库中匹配出该班级的所有学生的成绩信息,教师修改信息并点击保存后数据库获取修改后的信息并保存在成绩信息表中。

名字:课程添加操作

输出流:课程信息表

处理流程:管理员从界面中录入课程信息,数据库获取信息并将信息保存在课程信息表中

名字:课程修改操作

输入流:课程信息表

输出流:课程信息表

处理流程:通过管理员选择的系与班级,数据库匹配出该班级的课程信息并显示在课程信息表中,管理员修改该信息并点击保存后数据库获取信息并将信息保存在课程信息表中

名字:账户添加操作

输出流:账户信息表

处理流程:管理员输入新添加的账户和密码,点击保存后,数据库获取该信息并保存在账户信息表中

名字:账户查询操作

输入流:账户信息表

处理流程:数据库将账户信息表中的所有记录显示在界面中

1.2.3.    数据采集

数据的来源主要是来自数据库中原有的数据,数据的相应的操作会对数据进行更新。数据的输入采用统一的键盘输入,只有合法的登陆后才能向系统中输入数据。数据的输出主要是以表格的形式通过界面输出。

1.3. 功能需求

1.3.1.    功能划分

各模块功能情况如下:

 

1.2.1.    功能描述

各子模块功能描述如下:

学生信息录入模块:点击进入学生信息录入模块后,显示学生信息录入框,点击提示后面的方框可录入信息,点击下面的保存信息按钮可将信息存入数据库。

学生信息修改模块:点击进入学生信息修改模块后,显示学生信息修改界面,每个提示后面的方框中都存有原来录入的信息,可以在原有信息的基础上修改,修改结束后点击保存信息按钮即可将信息存入数据库。

学生信息查询模块:点击进入学生信息查询模块后显示学生的所有个人信息,且用户无法在该界面修改信息。

学生课程信息查询模块:点击进入学生课程信息查询模块后显示学生该学期课程信息表格,表格内的数据无法修改。

学生成绩信息查询模块:点击进入学生信息查询模块后显示学生该学期所学课程的成绩的表格,如果该门成绩未出则显示为空。表格内的数据无法修改。

教师信息录入模块:点击进入教师信息录入模块后,显示教师信息录入框,点击提示后面的方框可录入信息,点击下面的保存信息按钮可将信息存入数据库。

教师信息修改模块:点击进入教师信息修改模块后,显示教师信息修改界面,每个提示后面的方框中都存有原来录入的信息,可以在原有信息的基础上修改,修改结束后点击保存信息按钮即可将信息存入数据库。

教师信息查询模块:点击进入教师信息查询模块后显示教师的所有个人信息,且用户无法在该界面修改信息。

学生成绩录入模块:点击进入学生成绩录入模块后可通过下拉框选择授课班级,再跳出该班级的所有学生的学号,姓名信息,在提示符后的方框中可录入学生成绩,点击保存后则学生成绩被存入数据库,如果输入非法字符或者越界则报错。

学生成绩修改模块:点击进入学生成绩录入模块后可先通过下拉框选择授课班级,再跳出该班级的所有学生的学号,姓名以及现有成绩,成绩可通过该界面修改,修改结束后点击保存则学生成绩被存入数据库,如果输入非法字符或越界则报错。

学生成绩查询模块:点击进入学生成绩录入模块后可先通过下拉框选择授课班级,再跳出该班级的所有学生的学号,姓名以及现有成绩,成绩在该界面不可修改。

教师课程查询模块:点击进入教室课程查询模块后显示教师所教的所有课程和班级以及上课时间地点等信息的表格。表格在该界面不可修改。

账号添加模块:管理员进入账号添加模块后可在提示后的方框中输入新用户的账号和密码,如果输入的账号在数据库中已存在则报错,提示用户重新输入,输入结束后保存则信息被录入数据库中。

账号查询模块:管理员进入账号查询模块之后所有用户的账号和密码信息以表格的形式显示,且表格在该界面中无法修改。

课程表录入模块:管理员进入课程表录入模块后根据提示在后面的方框中键入课程名,授课老师,上课班级,授课时间地点等信息,如果录入非法信息例如所选择的授课老师不存在则系统报错,录入完毕之后点击保存按钮保存以上信息。

课程表修改模块:管理员进入课程表修改模块,通过下拉框选择具体的系与班级,跳出的另一个界面中给出了该班级已有的课程信息,每个课程信息的内容可以修改,修改完毕后点击保存按钮保存以上信息。

课程表查询模块:管理员进入课程表查询模块,通过下拉框选择具体的系与班级,跳出的另一个界面中给出了该班级已有的课程信息,每个课程信息的内容不可修改

学生基本信息查询模块:管理员进入学生信息查询模块,通过输入系与班级可显示该班级所有学生的基本信息,信息无法再该模块修改。

教师基本信息查询模块:管理员进入教师信息查询模块,通过输入系名可以显示该系所有老师的基本信息,信息无法再该模块修改。

班级成绩查询模块:管理员进入班级成绩查询模块,可以查看到全校所有班级的成绩信息表格,该表格不能再该界面修改。

1.3. 性能需求

1.3.1.    数据精确度

1)        要求按照严格的格式输入,否则系统报错或不响应

2)        要求数据查询不能遗漏任何一条记录,要查全

3)        不能出现数据不一致的情况

1.3.2.    时间特性

       要求响应时间维持在5秒内,数据的更新、计算、传输时间也在用户的可接受的时间内完成。

1.3.3.    适应性

能满足学校使用的要求,且方便学生、教师的使用,且能维持一定的年限。

1.4. 运行需求

1.4.1.    用户界面

用户界面需要是图形界面,界面清晰简洁,一目了然,操作简单,视图优美。有明确的提示和报错信息,力图使用户操作更方便。

1.4.2.    硬件接口

       本系统不需要特等的硬件或硬件接口支撑。

1.4.3.    软件接口

       运行于Windows95及更高版本具有WIN32 API的操作系统之上。

 

1.4.4.    故障处理

正常运行时不应该报错,如果出现错误运行可采取如下故障处理方法:

输入错误:如果用户查询的某条记录或某个信息不存在或登录不成功,系统应报错并给出出错原因。

系统错误:如果出现系统错误例如无法连接到数据库,系统应提示报错信息且管理员应尽快修复。

为了规避各种故障对系统的影响,系统应定期备份数据或生成日志。使系统尽快还原,减少因系统故障带来的损失。

1.5. 其它需求

1)系统的功能实现情况: 用户可在本系统下实现各种用户要求的功能

2)系统的一致性: 定期对数据库进行维护,保持数据的一致性

3)系统的容错性: 用户输错数据都有提示信息,具有较好的容错性能。

4)系统的封闭性: 用户的封闭性较好,用户基本上在提示信息下输数据。

转载于:https://www.cnblogs.com/tuanzang/archive/2013/02/28/2937271.html

这篇关于吴昊品工程级别软件项目 Round 2(附加)之(一个标准的DBMS系统的需求分析+数据库设计)(PS:感谢王露珠妹纸)...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/832599

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方