当前位置:文档之家› 华科_软件工程_学生成绩信息管理系统实验报告

华科_软件工程_学生成绩信息管理系统实验报告

华科_软件工程_学生成绩信息管理系统实验报告
华科_软件工程_学生成绩信息管理系统实验报告

软件工程课程设计学生成绩管理系统

院系___计算科学与技术____

专业班级____ _____

姓名_____________

学号___ _________

2015年11月20

目录

摘要 (Ⅰ)

1问题定义及可行性分析 (1)

1.1系统的问题定义 (1)

1.2系统环境 (2)

1.3系统的可行性分析 (2)

2需求分析 (4)

3概要设计与详细设计 (7)

4测试报告 (11)

5项目管理 (14)

5体会与建议 (17)

参考文献 (1)

1 问题定义及可行性分析

1.1系统的问题定义

通过设计一个有效的学生成绩管理系统,不仅可以节省大量的人力物力,减少投资和在填写,登记过程中可能出现的错误,而且极大的提高了查询效率和更新效率,并且是成绩管理变得系统化和自动化。

随着学校规模的不断扩大,专业、班级、学生的数量急剧增加,有关学生各门课程的成绩的各种信息量也成倍增长,由于传统学生成绩管理模式仍停留在复杂的人工操作上,重复工作较多,工作量大,效率低,因此,迫切需要开发基于互联网的课程信息管理系统来提高管理工作的效率。学生成绩管理系统,在学生成绩的规范管理、科学统计和快速查询方面具有较大的实用意义。它提高了信息的开放性,大大地改善了学生、教师对其最新信息查询的准确性。

本学生成绩管理系统模块是为了实现学校人力资源的优化和学生成绩管理的科学管理而设计的,通过本系统,可以有效的管理学生成绩信息,能针对不同的用户分别设置了不同的功能,其中包括学生的基本信息,成绩信息并且具有信息的增加,查询,修改等功能,而且能快速统计学生成绩的相关数据。

手工学生成绩管理是一种原始的工作方法,由于手工操作出现错误的概率比较大,其工作量大,工作程序复杂,消耗大量的人力、物力、财力和时间。而且随着时间的推移,由于人员的增加,科目的增多以及调整的频繁,在这种情况下单靠人工来处理学生的成绩不但显得力不从心,而且极容易出错。

手工条件下,学生的成绩分为以下一些工作:(1)建立学生相关档案,包括学生的基本信息和所学课程的信息。(2)根据学生基本信息中的班级和学号及课程,统计并编写出每一个课程的学生。(3)根据学生的课程学习情况和课程成绩创建原始的学生课程成绩档案。(4)根据学生的加权分数,统计学生的排名信息并编写统计档案。

能针对不同的用户分别设置了不同的功能:

1.管理员能够方便的对信息进行添加.修改.删除.查询.汇总.统计等操作。

2.课程教师可以在所教课程内对学生信息进行添加.修改.删除.查询.汇总.统

计等操作。

3.学生可以在自己的权限内对信息进行访问,即时查询相关信息。

1.2系统环境

本系统是基于64位windows10专业版,硬件基于cpu i5-3230m,内存4GB,硬盘750GB,显卡nvdia 720M。程序将基于python3.5,数据库基于MySQL5.6,运用python完成整体开发,数据及数据结构基于数据库语言sql进行开发。

1.3系统的可行性分析

学生成绩管理系统需要有软件工程,数据库技术,相应软硬件支持,经济支持,人才要求等。

软件工程是指导计算机软件开发和维护的一门工程科学,用当前最好的管理解释和方法,经济的开发出高质量的软件并能够有效的维护它。他从六十年代末开始发展到现在已经有半个世纪的历史,研究范围广泛,包括各种新技术方法、工具和管理各方面,是一个异常活跃的研究领域。到现在已经形成了一套系统规范的知识体系,严格遵循软件工程方法可以大大提高软件开发成功的几率,显著减少软件开发维护的问题,为系统的开发和维护提供指导。

数据库技术从诞生到现在,在不到半个世纪的时间里,形成了坚实的理论基础、成熟的商业产品和广泛的应用领域,吸引越来越多的研究者加入。数据库的诞生和发展给计算机信息管理带来了一场巨大的革命。随着应用的扩展与深入,数据库的数量和规模越来越大,数据库的研究领域也已经大大地拓广和深化了。数据库是一个充满活力和创新精神的领域。现在的数据库技术既能进行数据的集中和共享,又能有效的保持数据的独立性和抽象性,非常适合进行数据的管理。而且随着面向对象数据库的出现,是数据库的设计更加人性化,能更好的符合用户的要求,为系统设计提供了基础。

本系统的构建运用python,Python是纯粹的自由软件,源代码和解释器CPython遵循 GPL(GNU General Public License)协议。Python语法简洁清晰,具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python 快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,需要注意的是在您使用扩展类库时可能需要考虑平

台问题,某些可能不提供跨平台的实现。所以由python构建的学生成绩管理系统,能有高效的处理效率,而且小巧易行,开发容易。

学生成绩管理系统的人员要求:系统分析人员,开发人员,数据库管理人员,系统测试人员。采用python实现,依靠强大的数据库控件和数据库管理系统和其他语言相结合,两个月内开发出系统。现在有很多专门的机构用来培养计算机人才,各大高校也设置了很多的相应课程,现在的社会优秀的IT人才层出不穷,为系统的开发提供了强有力的智力支持。

2.需求分析

学生成绩管理系统主要涉及到学生的基本信息、成绩信息和学校的课程信息的管理。主要功能实现对学生的成绩进行收集和修改。具体包括学生成绩录入、修改、增加、删除、查询。成绩录入需要分班级、分年级以及某个时间考试的各门功课的成绩。修改要与成绩录入相对应。增加、删除是对基本表的操作。查询条件设置应该齐全,可以班级查询,年级查询,也可以姓名查询,学号查询等等。

学生成绩管理系统应区分查询的用户,教师可以查询其所任课程的所有信息,包括课程的学生相关信息,可以对课程内学生的成绩信息进行修改,添加,录入,可以查询课程能学生成绩排名。学生用户可以查询本人的所有信息,可以查询其所学课程的成绩。管理员用户拥有修改,添加,录入所有学生基本信息,可以查询任何学生的基本信息,可以根据课程或班级查询学生信息和排名,可以修改,添加,录入所有课程信息,但不能对学生的成绩信息进行修改。

系统的各个用户的与数据的关系为一对多,详细E-R关系见图2-5。

学生成绩管理系统的数据处理的基本结构为:根据用户的种类和其对学生管理系统的请求,查询学生信息库,根据返回的信息对用户输出结果,数据流图见2-1,根据用户种类分为三个部分,每个部分的结构分别为:学生查询、教师管理和管理员管理,其中学生查询的结构,见图2-2,为根据学生用户的登录和学生查询信息的查询学生基本信息数据和学生成绩信息数据,然后系统处理查询后的数据,并将其返回给学生用户;而教师用户管理的结构,见图2-2,为根据教师用户的登录和课程查询信息,查询教师课程信息数据,或者学生成绩信息数据,系统可根据课程数据信息查询返回查询学生相关的数据,将学生数据处理并返回教师用户,也可直接查询学生成绩信息数据并返回教师用户;管理员用户管理的结构,见图2-2,为根据管理员登录信息和管理员处理信息,或者以课程信息对课程信息数据进行管理,或者以学生信息对学生基本信息数据进行管理,或者以学生成绩信息对学生成绩信息数据进行管理,最后将相关信息返回管理员用户。

对于学生基本信息的存放数据,以图2-3的数据字典表示其中保存的数据:学生姓名、学生编号、学生性别、学生年龄;对于学生成绩信息的存放数据,以图2-4的数据字典保存,其中的数据为:学生姓名、学生编号、学生所修课程、

学生所修课程成绩、学生所修课程学分、学生的总学分、学生加权成绩;对于课程信息的存放数据,以图2-5的数据字典表示:任课教师姓名、课程名、课程学分、修课学生姓名、修课学生编号、修课学生成绩。

图2-1系统0级数据流图

图2-2 系统1级详细数据流图

图2-3学生基本信息字典

图2-4学生成绩信息字典

图2-5教师课程信息字典

图2-6系统E-R图

3 概要设计与详细设计

系统的数据主要为字符串数据,而且对于不同数据在同一数据信息结构中存在对应的关系,如:每一个学生编号唯一对应一位学生及其相关信息,学生编号也唯一对应学生的成绩等。所以,可以用键值对来保存数据,而python自有的数据结构-----字典,字典的键可以是数字,字符串或者元组,而键可以是字符串,数字,元组,列表或者字典,而唯一的键对应唯一的值,所以利用字典建立学生基本信息数据结构、学生成绩信息数据结构、课程信息数据结构。

对于学生基本信息数据结构的字典命名为stubifo可以表述为:以每一学生的学生编号构建构建一个键,对应一个值为以该学号为学生的学生个人信息的字典,该字典有5各键值对:键为学生姓名name对应值为该学生姓名信息,键为学生性别sex对应值为该学生性别信息,键为学生班级class对应值为该学生班级信息,键为学生年龄old对应值为该学生年龄信息,键snumber为该学生登录的密码信息。

对于学生成绩信息数据结构的字典命名为stugifo可以表述为:以每一学生的学生编号构建一个键,对应一个值为以该学号为学生的学生成绩信息的字典,该字典有3个键值对,该字典中键为total_credit对应值为该学生总学分信息,键weighted_score加权成绩对应值为该学生加权成绩信息,键course课程成绩对应值为该学生所修所有课程和其成绩一一对应的字典,该值字典中该学生每一所修课程名为一个键对应一个字典,该字典有2个键一个为greed课程成绩的键对应值为学生该课程的成绩信息,另一个为credit课程学分的键对应值为该课程的学分信息。

对于课程信息数据结构的字典命名为tchcifo可以表述为:以每一教师的教师编号为一个健,对应一个值为以该教师课程信息数据的字典,该字典有2个键值对,一个健为name教师姓名对应值为该教师姓名信息,另一个健为course教师任课课程对应值为教师所任课程信息的字典,该值字典以每一教师所任课程名为键对应一个所修学生信息的字典,该值字典以每一所修该课程学生的编号为键对应值为该学生该课程的成绩信息,该值字典存在键为course_credit课程学分的健对应值为该课程学分信息。

由上述数据结构的分析可知,学生编号以8位字符串组成其中第一位为U,其它位为数字字符串,学生姓名以任意位字符串表示,学生性别以数字表示0代表男性,1代表女性,学生班级为任意字符串,学生年龄为任意二位数字,学生登录的密码为任意位数字字符串,学生总学分为数字,学生加权成绩为数字,课程成绩为数字,课程学分为数字,教师编号以8位字符串组成其中第一位为T,其它位为数字字符串,教师姓名为任意字符串,教师任课课程名为任意字符串,系统的基本模块分为用户登录模块,学生查询模块,教师课程管理模块,管理员管理模块,见图3-1。

用户登录模块,由用户选择用户登录模式,再通过用户登录确认用户,根据用户类型和登录类型产生用户功能选择界面。

学生查询模块,根据学生用户登录和选择的查询方式和内容查询学生基本信息或者学生成绩信息,并通过界面返回查询信息与学生用户并等待事件。

教师查询模块,根据教师用户登录选择的查询方式或者管理方式对教师课程信息进行查询,并通过界面返回查询信息与教师用户并等待事件。见图3-2。

管理员管理模块,根据管理员用户登录选择对学生基本信息的添加、删除和修改,教师课程信息的添加、删除和修改,学生成绩信息的添加、删除和修改,并通过界面返回查询信息与教师用户并等待事件。见图3-3。

系统的用户登录模块流程图见图3-4。

系统各个基本功能模块大致流程为:先根据用户类型和选择的功能,获取用户的处理条件输入,判断输入合法后,然后用输入的相关关键字查询需要处理的字典信息,如查询失败,再换用其他输入关键字遍历查询该字典信息,然后根据查找结果和功能选择,对字典中的数据进行处理,然后将处理后的信息保存。然后根据用户选择进行下一步工作

以模块更新修改教师课程信息为例,其流程图见图3-5,其他信息的修改、添加、删除相似。

图3-1系统的基本模块

图3-2教师查询模块

图3-3 管理员管理模块

图3-4 用户登录模块流程图

图3-5 修改教师课程信息模块流程图

4 测试报告

黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

黑盒测试主要发现以下类型错误:(1)功能不对或遗漏,(2)接口错误,(3)数据结构或外部数据库访问错误,(4)性能错误,(5)初始化盒终止错误。

在此次实验中我采用黑盒测试的方式,来实现对系统功能的测试,由于篇幅有限,我仅仅列举重要功能的测试截图。

根据等价划分方法,将该测试的几个模块单独测试,及运用集成测试的测试策略进行测试。

在用户登录模块的测试中①有效输入的等价类有:1.在学生登录模式下用户名为8位字符串组成其中第一位为U,其它位为数字字符串,密码为任意位字符串;在教师登录模式下用户名为8位字符串组成第一位为T,其它位为数字字符串,密码为任意位字符串;管理员用户登录模式下用户为任意字符串,密码为任意位字符串②有效输出为 1.如果输入的用户名在相关信息字典中为健且对应值字典中健snumber的值字符串与输入的密码字符串相等则登录界面销毁,进入用户功能界面2.否则登录界面弹出对话框,继续进入消息循环。③④⑤⑥所以根据如上叙述,设置如下测试数据:学生登录模式,用户名U222222,密码123456学生用户查询模块的测试中,①有效输入的等价类有单击主菜单下拉菜单的查询功能按键②有效输出为:弹出选择功能信息的对应的消息界面。

教师课程查询管理模块的测试中①有效输入的等价类有:单击主菜单下拉菜单的查询与管理功能按键,②有效输出为:弹出选择功能信息的对应的消息界面。

管理员管理模块的测试中①有效输入的等价类有:单击主菜单下拉菜单的各数据的添加、修改、删除按键,②有效输出为:弹出选择功能信息的对应的消息界面。

主要对管理员管理模块学生数据添加模块进行测试,对于学生基本信息数据的添加①有效输入的等价类有:学生编号为8位字符串组成其中第一位为U,其它位为数字字符串,密码为任意位字符串,其他为任意字符串,②有效输出为:显示添加成功对话框。

所以选择对用户登录模块进行测试,测试用例为:①选择学生用户登录,输入U2222222,密码输入123456,输入U78998789444,密码输入123456,②选择教师用户登录输入U2222222,密码输入123456,输入U78998789444,密码输入123456,测试预期为仅:学生用户登录,输入U2222222密码输入123456成功登入,其它失败。

测试结果见图4-1,4-2,4-3,4-4,可以看出只有4-1为系统进入功能界面,图4-2,4-3,4-4,弹出提示对话框,表示进入失败。

由测试结果和测试预期相符,表示该功能模块达到预期设计。

其他测试结果与预期一一相符。

图4-1 测试结果1

图4-2 测试结果2

图4-3 测试结果3

图4-4 测试结果4

5 项目管理

本程序采用功能点技术估算软件规模及工作量,根据系统的设计:输入的项数为26,其中简单级为5项,平均级为10项,复杂级为11项;输出项数为53,其中简单级为10,平均级为30,复杂级为13项;查询项数为49项,其中简单级为13项,平均级为21项,复杂级为15项;主文件项数为4项,其中简单级为2项,平均级为2项,复杂级为0项;外部接口数为4项简单级为4项,平均级为0项,复杂级为0项。根据功能点UFP计算公式,计算出本程序的UFP=669。

根据对系统技术因素的分析,数据通信F1=2,分布式数据处理F2=0,性能标准F3=3,高负荷的硬件F4=0,高处理率F5=2,联机数据输入F6=1,终端用户效率F7=4,联机更新F8=0,复杂的计算F9=1,可重用性F10=0,安装方便F11=3,操作方便F12=3,可移植性F13=5,可维护性F14=3。根据技术复杂因子TCF的计算公式估算系统的TCF为0.92。

所以系统的功能点数FP=669*0.92=615.48。

对于系统工作量的估算,运用静态单变量模型中的Kemerer模型计算,综合上述FP数据,

根据获得了的项目历史生产率数据,其中平均生产率为50FP/PM,平均生产工资为30元/ FP,平均工资成本为1000元/人。

所以工作量的估算为E=12.30PM,3人完成,工期为4.5个月,总成本的估算为21464.4元

项目人员分配为民主分权式。软件资源小粒度复用,开发环境为Python3.5.1,win10,联机环境。硬件资源为计算机2台。

项目任务有:算法设计1.5个月,原型开发以模块开发为主系统分为4个模块,系统测试1.5个月,文档写作0.5个月等。

系统gnatt图见图5-1

图5-1 系统gantt图

6体会与建议

软件工程的这次实验让我了解到一个完整的软件设计及实现流程,通过对学生成绩管理信息系统的分析、设计、编写、测试、管理等过程,使我更加理解现代软件的生产流程,了解到对于一个软件从分析到最后完成出产的过程是非常复杂的,不是仅仅只有编写代码才是重要的,包括对代码的注释,和相关文档工作也是十分重要的,甚至重要性和完成难度要比一个完整的代码编写还要高。

所以本次软件工程的实验对我写代码的风格、相关文档的分析工作,及软件测试能力有了很多的提高,对于相关的知识也有了更深的理解。

对于软件工程的课程,我觉得对于我们开设还是时间上早了一些,第一没有学面向对象的程序设计,所以没有办法完成软件工程更为重要的面向对象设计,第二也没有学数据库技术,所以对于数据的处理也不是很复杂,其他还有就是没有团队合作,没有体现出项目管理能力的培养,然后就没有什么其他的意见及建议了。

相关主题
文本预览
相关文档 最新文档