有帮助请点赞+收藏
总体设计
目录
作用范围
成绩管理系统的范围适用于西安中学在类的初高中教务方面的成绩管理
1.1系统目标
(1).显示学生信息
(2).查询个人成绩
(3).单科成绩排名
(4).全班成绩排名
(5).成绩分析表生成
1.2主要的系统功能描述
系统需要实现如表2.1所示的主要功能。
表2.1 系统主要功能列表
功能名 | 简要描述 | 优先级 |
身份注册 | 录入学生信息 | H |
登录系统 | 验证学生合法身份 | H |
学生信息管理 | 管理员登录系统可添加、查询、修改、删除学生信息 | H |
教师信息管理 | 管理员登录系统可添加,查询,修改,删除教师信息 | H |
成绩管理 | 教师通过自己的帐号密码登录系统,可查询自己的课程,并对学生的成绩进行打分。 | H |
成绩信息查询 | 学生通过自己的帐号密码登录系统,可查询自己不同科目的成绩情况 | H |
用户的登陆界面是对整个系统的权限控制的最初的控制,同时也是非常重要的一步,它在整个系统运行之初对登陆用户的用户名和登陆口令进行检测,使得非法用户无法进入系统。
用户在输入自己的用户名和密码后,进入自己的页面查询。
1)添加班级:对整个学校添加班级年级;
2)教务管理员管理:给各个班级进行添加、修改、删除、教务管理员;
3)教务管理员查询:是对整个系统的各个年级教务管理员进行查询;
4)修改密码:是对该用户的登录密码进行修改;
5)退出系统:是对该用户登录时记录的SESSION进行清除。
1)成绩管理:可以对所教科目的学生成绩的添加、删除、修改;
2)成绩查询:实现对学生成绩的查询;
3)修改密码:对该用户的登录密码进行修改;
4)退出系统:对该用户登录时记录的SESSION进行清除。
1)班级管理:对各个班级的班级添加、删除、修改;
2)教师管理:对本年级的教师添加、删除、修改;
3)学生管理:对学生的添加、删除、修改、详细信息的查看;
4)成绩管理:可以对各个班级的学生成绩的添加、删除、修改;
5)成绩查询:实现对本院系学生成绩的查询;
6)修改密码:对该用户的登录密码进行修改;
7)退出系统“对该用户登录时记录的SESSION进行清除。
1)成绩查询:实现对本班级学生的成绩查询;
2)修改密码:对该用户的登录密码进行修改;
3)退出系统:对该用户登录时记录的SESSION进行清除。
学生成绩管理系统其主要功能就是对学生成绩的录入和查询。而查询功能又是该系统使用频率最高的功能,教务管理员、教师和学生都要用到这一功能,为了使论文简明扼要,特此把这一功能单独详细分析。
(1)按关键字查询:可以用科目、班级名称、任课老师、学生姓名、学号作为关键字进行查询;
(2)对查询结果排序:可以按照学生成绩、学号、班级、进行升序、降序排序。
(3)筛选查询结果:可以对查询结果进行筛选,如不及格、及格、大于90分等;
(4)对查询结果分组:可以按照学生姓名、学号、班级、科目进行分。
1.3系统模块的层次图
2设计描述
2.1数据流细化和复审
数据流程图(Data Flow Diagram,DFD/Data Flow Chart),是一种能全面描述系统数据流程的主要工具,它用一组符号来描述整个系统中信息的全貌,综合地反映出信息在系统中的流动、处理和存储情况。
系统的0层数据流图(顶层数据流图)如图4.1所示。
图4.1 系统0层数据流图
根据用户提出的需求,将图4.1的系统分成两个子处理,如图4.2所示。
图4.2 系统1层数据流图
将子处理1(“查询学生成绩”)继续分解,可再分3个子处理,如图4.3所示。
图4.3 “查询学生成绩”子处理的2层数据流图
第1步 复查学生成绩管理系统模型。复查的目的是确保系统的输入数据和输出数据符合实际。
第2步 复查并精华数据流图。应该对需求分析阶段得出的数据流图认真复查,并且必要时进行精化。不仅要确保数据流图给出了目标系统的正确的逻辑模型,而且应该使数据流图中每个处理都代表一个规模适中相对独立的子功能。
需求分析阶段产生的西安中学学生成绩管理系统的数据流图如下图所示:
该顶层数据流图对于软件结构设计的第一次分割已经够详细的了,然后进入下一个阶段。
第三步 确定数据流图具有变化特性还是事务特性数据沿着两条输入通路进入系统,没有明显的事务中心,因此这个信息为交换流。
第四步 确定输入流和输出流的边界,从而孤立出交换中心。
第五步 完成第一级分解
我们采用对控制的自顶向下的分配。输入信息处理控制教务管理,协调对所有输入数据的接收。变换中心控制数据交换,管理对内部形式的所有操作。输出信息处理控制成绩单的打印,协调输出信息的产生过程。得出第一级分解的结构如图。
第6步完成第二级分解。
第七步使用设计度量和启发式规则进一步得到软件结构。
如图:
3程序复杂程度的度量
4 测试准备(单元测试设计)
4.1测试指南
应用环境和负载测试主要是模拟系统实际运行环境,模拟平台在真实环境下与操作系统、数据库、jre等环境和插件的兼容性,以及平台在大数据量或大并发的情况下,其性能和容错机制是否足够健壮。因此,在完成功能和逻辑测试后,还需要进行应用环境和负载的测试。该系统在阿里云租赁了一个云服务器,该服务器属于中低端配置,安装了包括Apache tomcat 服务、SQLServer服务以及系统的服务器运行文件,需要验证该系统在某个时间节点突然激增的大量访问用户是否会导致系统卡顿或崩溃,检验其最大负载以及各种负载需要的服务器硬件、软件条件制程。还要验证在多用户同时进行付款等关键性操作时,是否会出现数据错误、返回超时或服务崩溃等异常情况。
通过多个账号同时登陆进行数据访问、修改等操作的方式,进行系统的负载测试,测试系统在多用户大并发的情况下系统的负载能力,测试是否会在负载压力大的情况下出现系统卡顿、数据异常或者服务器系统资源占用过大的情况。同时各个用户在访问系统的时候采用校园内网和校外网络同时访问的方式已测试系统的访问稳定性。
测试过程大体上分为3步进行测试的。
1、用不同的用户名和密码登录,在权限范围和权限设置进行测试,查看在使用过程中是否存在不合理的或者权限不当的现象。另外,我们还需要查看一下个人信息是否能在系统中找到。
2、用超级管理员的身份登陆系统,在服务器上进行一些常规操作。如导入学生信息、系统性能的优化等操作是否能正常进行。
3、用一般管理员的身份登陆系统,在浏览器上进行学生信息的查询、用户的添加、用户的权限设置等常规管理工作的操作,检测这些操作是否都能正常进行。
系统采用的是 B/S的结构,用户登录要有一个统一的界面。所以在设计过程中界面也是非常重要的内容。一个好的界面,让客户在使用过程中会觉得很舒服。所以我们也对系统的界面进行了测试。
在系统的界面上主要测试界面的整体布局是否合理。在整个测试过程中,对每个最终用户都进行调查的过程。我们在调查中,采用的是在网页上以调查问卷的形式来进行的,最后根据用户反馈回来的信息进行修改;
对页面上的信息、图形等进行测试。页面上的信息是否准确,这个准确主要是看一下我们在上传信息的时候是否会发生误传的现象。还要测试一下信息的相关性,不同页面之间的链接。
在测试过程中我们使用具体的测试技术对页面在没有屏幕分辨率的情况下的显示情况,假如出来的效果不理想或着有问题,要提出具体的解决方案。在解决过程中结合界面按钮、界面展示图片、界面导航、界面线条等信息。
开发这个系统主要是为学校服务的,测试过程中根据不同的用户、不同用户权限进行测试和界面设置。对页面中各个元素的显示是否符合要求、数据验证、网页的链接是否正确等,通过测试,基本上能达到用户的要求。
4.2集成策略
把单独的软件模块结合在一起作为整体接受测试,其目标是利用已通过单元测试的构件建立设计中描述的程序结构。2
集成测试的主要任务:
1.将各模块连接起来,检查模块相互调用时,数据经过接口是否丢失。
2.将各个子功能组合起来,检查能否达到预期要求的各项功能。
3.一个模块的功能是否会对另一个模块的功能产生不利的影响。
4.全局数据结构是否有问题,会不会被异常修改。
5.单个模块的误差积累起来,是否被放大,从而达到不可接受的程度。
依据需求规格说明书、概要设计文档和开发计划,拟定软件集成测试计划;
设计阶段:
依据被测对象的结构、待集成模
实现阶段:
块、接口、集成测试策略、测试工具等进行分析,拟定集成测试设计方案。
主要进行集成测试用例设计和集成测试代码设计4
执行阶段:
执行测试,生成测试报告
目的:从顶层控制(主控模块)开始,采用同设计顺序一样的思路对被测系统进行测试,来验证系统的稳定性。
定义:自顶向下的集成测试就是按照系统层次结构图,以主程序模块为中心,自上而下按照深度优先或者广度优先策略,对各个模块一边组装一边进行测试。
4.3特殊考虑
管理员可以拥有完全的权限管理系统,而学生只拥有查询信息的权限
管理员或学生在用户名框输入单引号时系统会出现错误,这是因为数据库对它敏感,所以文本框内禁止输入单引号。
校园网与外部数据不同,查询信息时须链接校园网进行查询。
为了信息安全,学生和教师首次登录后,系统会提示其修改密码保护信息安全。
详细设计
1.关键的数据结构设计
、
概念结构设计模型(CDM图)
逻辑结构设计模型(LDM图)
物理结构设计模型(PDM图)
2数据库设计
数据库系统设计是建立一个操作的数据环境,一般是从某一个或某些具体应用出发来进行数据库设计,将数据库的概念结构转化为数据库所支持的实际数据模型,也就是数据库的逻辑结构,进一步形成数据库的表格以及各个表格之间的关系。下面列出了系统的部分表逻辑设计:
用户信息:(用户编号,密码,用户姓名)。
教师信息:教师(工号,姓名,密码,性别,出生年月,主讲课程,电话)。
学生信息:学生(学号,密码,姓名,性别,出生年月,班级,电话)。
(4)课程信息:课程(课程号,课程名称,学时,学生课程成绩)。
数据库中用到的表
创建数据库 database,数据库中新建用户信息表、教师 信息表、学生信息表、课程信息表、专业信息表、学生成绩 表等数据库表,数据库表与数据库表名、关系模式名称对应。
数据库表名 | 关系模式名称 | 备注 |
user | 用户 | 用户信息表 |
Teacher | 教师 | 教师信息表 |
Student | 学生 | 学生信息表 |
Course | 课程 | 课程信息表 |
数据库逻辑结构设计:
学生信息:包括学生(学号,密码,姓名,性别,出生年月,班级,电话)。
教师信息:包括教师(工号,姓名,密码,性别,出生年月,主讲课程,电话)。
课程信息:包括课程(课程号,课程名称,学时,学生课程成绩)。
2.1 程序界面
用户界面设计主要采用CSS编码以满足以下要求
直观性:用户界面应该直观易用,避免过于复杂和混乱。学生和教师能够快速掌握基本操作和功能。
用户友好:用户界面应该提供清晰、一致的反馈和提示,避免用户感到困惑或无法完成任务。
适应性:用户界面应该能够适应不同的用户需求和习惯,包括不同的显示分辨率、字体大小等。
响应性:用户界面应该能够快速响应用户的操作和输入,避免用户长时间等待或出现卡顿现象。
教师端学生信息页面设计
教师端学生成绩管理页面设计
学生端成绩信息查询页面
3 模块描述(针对每个模块给出)
3.1处理过程陈述
管理员用户模块
学生信息管理:在该模块后可对学生信息进行添加、修改、删除与查询。
成绩信息管理:在该模块可以实现对学生成绩综合查询以及异议成绩处理。
教师信息管理:此模块可实现教师基本信息的修改、录入、添加与查询。
学生用户模块
选课:学生可以根据课程信息表选修课程,提交成功后,选课信息(包括学号,课程号)存入学生选课信息表中。
成绩查询:学生按学期、学年查询自己的成绩信息(包括某学年、学期,某门类型的课程分数)。
异议成绩反馈:如对成绩有异议可填写相应的课程与成绩,提交成功后保存至异议成绩申请表中。
教师用户模块
课程成绩管理:教师登录此模块后,只能浏览自己所带的课程成绩信息并进行课程成绩添加,修改与删除操作,成绩提交后则锁定无法再修改。
成绩分析:通过条形统计图查看所带课程的成绩段分布,便于进行教学效果评价和分析。
成绩异议处理:教师登录此模块后只能浏览自己所带的课程的详细成绩,可通过学号快速查询某位同学的成绩信息,或填写异议成绩修改意见给管理员或与学生当面交流告知原因。
3.2接口描述
该系统共有16个窗口以及一个模块。如下图。
(1)在工程中新添加一个窗体,并将窗体名称修改为Frm_main,将窗体Caption属性设置为“学生信息”。
(2)使用菜单编辑器设置主窗体菜单。在工程菜单中选择“工具”→“菜单编辑器”命令,打开菜单编辑器。也可以在工具栏上单击菜单编辑器按钮图标,调用菜单编辑器。
表单
名称 | 标题 |
User | 用户管理 |
Useradd | 添加管理员 |
Usermodify | 修改管理员 |
Exit | 退出系统 |
Stu | 学生管理 |
Stuadd | 添加学生信息 |
Stumodify | 修改学生信息 |
Stuadm | 学生信息管理 |
Course | 课程管理 |
Coadd | 添加课程 |
Comodify | 修改课程 |
Cou | 管理课程 |
Result | 成绩管理 |
Resadd | 添加成绩 |
Resmodify | 修改成绩 |
Resquery | 查询成绩 |
Help | 帮助 |
About | 关于 |
(3)选择“工程”→“部件”菜单项命令,打开“部件”对话框,在“部件”对话框的列表中选中Microsoft ADO Date Control 6.0(SP6)、 Microsoft DataGridControl 6.0 (SP6)和 Microsoft Windows Common Control 6.0 (SP6)3个项目,这样相应的控件就添加到工具箱中了。
(4)在主窗体上添加一个ToolBar控件,用于主窗体的按钮控件。在这个控件上单击右键,从弹出的快捷菜单里单击“属性”命令,打开属性窗口。在属性窗口中选择“按钮”选项卡,为ToolBar控件添加按钮。在窗体上添加一个lmageList控件,并打开 ImageList 控件的“属性”窗口,为其添加图片。打开ToolBar控件的“属性”窗口,将图像列表设置为 ImageList1,并设置每个按钮对应的图像索引。
(5)在主窗体上添加一个 Image控件,并设置 Picture属性,为其加载一个图片。
(6)在主窗体上添加一个Panel控件,并在该控件上使用右击,在弹出的快捷菜单中选择“属性”,然后弹出“属性”对话框,通过选项卡“窗格”设置状态栏的信息。
(7)添加一个Timer控件,并设置其Interval属性值为1000。此控件用于在状态栏中显示系统时间。
3.3软件过程以及数据结构设计
盒图制作
登录模式盒图
学生登录模块盒图:
教师登录模块盒图:
教师功能模块盒图:
3.4引用的模块
(1)系统登录与退出模块。学生、教师和管理员设置 相应的权限,使用用户名和密码登录,并随机生成验证码。 用户名采用学生的学号,用户名和密码统一上传到系统。
(2)用户管理模块。能够实现对普通管理员、学生、 教师等信息的管理,也可以对系部、班级、专业等信息进行 添加、修改、删除、查询等操作。
(3)教师管理模块。能够修改自己的个人信息和登录 密码,实现上传课程成绩,成绩上传可以采用单个学生录入和批量录入两种方式。可以查询、修改和删除上传自己讲授课程的成绩。
(4)学生管理模块。能够实现自己个人信息和登录密码的修改,可以对自己的成绩进行查询,实现按条件成绩单的下载。
3.5数据组织
该系统采用数组类型的数据组织,在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在java语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
数组是可以再内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组的下标从0开始。
优点:
1、按照索引查询元素速度快。
2、按照索引遍历数组方便。
缺点:
1、数组的大小固定后就无法扩容了。
2、数组只能存储一种类型的数据。
3、添加,删除的操作慢,因为要移动其他的元素。
适用场景:
频繁查询,对存储空间要求不大,很少增加和删除的情况。