《华科_软件工程_学生成绩信息管理系统实验报告.pdf》由会员分享,可在线阅读,更多相关《华科_软件工程_学生成绩信息管理系统实验报告.pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程课程设计软件工程课程设计学生成绩管理系统学生成绩管理系统院系_计算科学与技术_专业班级_姓名_学号_ _2015 年 11 月 20华 中 科 技 大 学 毕 业 设 计(论 文)2页码目目录录摘要摘要. 1 问题定义及可行性分析问题定义及可行性分析. 11.1 系统的问题定义系统的问题定义. 11.2 系统环境系统环境. 21.3 系统的可行性分析系统的可行性分析. 22 需求分析需求分析. 43 概要设计与详细设计概要设计与详细设计. 74 测试报告测试报告.115 项目管理项目管理. 145 体会与建议体会与建议. 17参考文献参考文献. 1华 中 科 技 大 学 毕 业 设 计
2、(论 文)3页码华 中 科 技 大 学 毕 业 设 计(论 文)1页码1 问题定义及可行性分析问题定义及可行性分析1.1 系统的问题定义系统的问题定义通过设计一个有效的学生成绩管理系统,不仅可以节省大量的人力物力,减少投资和在填写,登记过程中可能出现的错误,而且极大的提高了查询效率和更新效率,并且是成绩管理变得系统化和自动化。随着学校规模的不断扩大,专业、班级、学生的数量急剧增加,有关学生各门课程的成绩的各种信息量也成倍增长, 由于传统学生成绩管理模式仍停留在复杂的人工操作上,重复工作较多,工作量大,效率低,因此,迫切需要开发基于互联网的课程信息管理系统来提高管理工作的效率。学生成绩管理系统,
3、在学生成绩的规范管理、科学统计和快速查询方面具有较大的实用意义。它提高了信息的开放性,大大地改善了学生、教师对其最新信息查询的准确性。本学生成绩管理系统模块是为了实现学校人力资源的优化和学生成绩管理的科学管理而设计的,通过本系统,可以有效的管理学生成绩信息,能针对不同的用户分别设置了不同的功能,其中包括学生的基本信息,成绩信息并且具有信息的增加,查询,修改等功能,而且能快速统计学生成绩的相关数据。手工学生成绩管理是一种原始的工作方法, 由于手工操作出现错误的概率比较大,其工作量大,工作程序复杂,消耗大量的人力、物力、财力和时间。而且随着 时间的推移,由于人员的增加,科目的增多以及调整的频繁,在
4、这种情况下单靠人工来处理学生的成绩不但显得力不从心,而且极容易出错。手工条件下,学生的成绩分为以下一些工作: (1)建立学生相关档案,包括学生的基本信息和所学课程的信息。 (2)根据学生基本信息中的班级和学号及课程,统计并编写出每一个课程的学生。 (3)根据学生的课程学习情况和课程成绩创建原始的学生课程成绩档案。 (4)根据学生的加权分数,统计学生的排名信息并编写统计档案。能针对不同的用户分别设置了不同的功能:1.管理员能够方便的对信息进行添加.修改.删除.查询.汇总.统计等操作。2.课程教师可以在所教课程内对学生信息进行添加.修改.删除.查询.汇总.华 中 科 技 大 学 毕 业 设 计(论
5、 文)2页码统计等操作。3.学生可以在自己的权限内对信息进行访问,即时查询相关信息。1.2 系统环境系统环境本系统是基于 64 位 windows10 专业版,硬件基于 cpu i5-3230m,内存 4GB,硬盘 750GB,显卡 nvdia 720M。程序将基于 python3.5,数据库基于 MySQL5.6,运用 python 完成整体开发,数据及数据结构基于数据库语言 sql 进行开发。1.3 系统的可行性分析系统的可行性分析学生成绩管理系统需要有软件工程,数据库技术,相应软硬件支持,经济支持,人才要求等。软件工程是指导计算机软件开发和维护的一门工程科学, 用当前最好的管理解释和方法
6、,经济的开发出高质量的软件并能够有效的维护它。他从六十年代末开始发展到现在已经有半个世纪的历史,研究范围广泛,包括各种新技术方法、工具和管理各方面,是一个异常活跃的研究领域。到现在已经形成了一套系统规范的知识体系,严格遵循软件工程方法可以大大提高软件开发成功的几率,显著减少软件开发维护的问题,为系统的开发和维护提供指导。数据库技术 从诞生到现在,在不到半个世纪的时间里,形成了坚实的理论基础、成熟的商业产品和广泛的应用领域,吸引越来越多的研究者加入。数据库的诞生和发展给计算机信息管理带来了一场巨大的革命。 随着应用的扩展与深入,数据库的数量和规模越来越大,数据库的研究领域也已经大大地拓广和深化了
7、。数据库是一个充满活力和创新精神的领域。 现在的数据库技术既能进行数据的集中和共享,又能有效的保持数据的独立性和抽象性,非常适合进行数据的管理。而且随着面向对象数据库的出现,是数据库的设计更加人性化,能更好的符合用户的要求,为系统设计提供了基础。本系统的构建运用 python, Python 是纯粹的自由软件, 源代码和解释器CPython 遵循 GPL(GNU General Public License)协议 。Python 语法简洁清晰,具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是 C/C+)很轻松地联结在一起。常见的一种应用情形是,使用 Python
8、快速生成程序的原型(有时甚至是程序的最终界面) ,然后对其中有特别要求的部分,用更合适的语言改写,需要注意的是在您使用扩展类库时可能需要考虑平华 中 科 技 大 学 毕 业 设 计(论 文)3页码台问题,某些可能不提供跨平台的实现。所以由 python 构建的学生成绩管理系统,能有高效的处理效率,而且小巧易行,开发容易。学生成绩管理系统的人员要求:系统分析人员,开发人员,数据库管理人员,系统测试人员。采用 python 实现,依靠强大的数据库控件和数据库管理系统和其他语言相结合,两个月内开发出系统。现在有很多专门的机构用来培养计算机人才,各大高校也设置了很多的相应课程,现在的社会优秀的 IT
9、人才层出不穷,为系统的开发提供了强有力的智力支持。华 中 科 技 大 学 毕 业 设 计(论 文)4页码2.2.需求分析需求分析学生成绩管理系统主要涉及到学生的基本信息、 成绩信息和学校的课程信息的管理。主要功能实现对学生的成绩进行收集和修改。具体包括学生成绩录入、修改、增加、删除、查询。成绩录入需要分班级、分年级以及某个时间考试的各门功课的成绩。修改要与成绩录入相对应。增加、删除是对基本表的操作。查询条件设置应该齐全, 可以班级查询, 年级查询, 也可以姓名查询, 学号查询等等。学生成绩管理系统应区分查询的用户, 教师可以查询其所任课程的所有信息,包括课程的学生相关信息, 可以对课程内学生的
10、成绩信息进行修改, 添加, 录入,可以查询课程能学生成绩排名。学生用户可以查询本人的所有信息,可以查询其所学课程的成绩。管理员用户拥有修改,添加,录入所有学生基本信息,可以查询任何学生的基本信息,可以根据课程或班级查询学生信息和排名,可以修改,添加,录入所有课程信息,但不能对学生的成绩信息进行修改。系统的各个用户的与数据的关系为一对多,详细 E-R 关系见图 2-5。学生成绩管理系统的数据处理的基本结构为: 根据用户的种类和其对学生管理系统的请求,查询学生信息库,根据返回的信息对用户输出结果,数据流图见2-1,根据用户种类分为三个部分,每个部分的结构分别为:学生查询、教师管理和管理员管理,其中
11、学生查询的结构,见图 2-2,为根据学生用户的登录和学生查询信息的查询学生基本信息数据和学生成绩信息数据, 然后系统处理查询后的数据,并将其返回给学生用户;而教师用户管理的结构,见图 2-2,为根据教师用户的登录和课程查询信息, 查询教师课程信息数据, 或者学生成绩信息数据,系统可根据课程数据信息查询返回查询学生相关的数据, 将学生数据处理并返回教师用户,也可直接查询学生成绩信息数据并返回教师用户;管理员用户管理的结构,见图 2-2,为根据管理员登录信息和管理员处理信息,或者以课程信息对课程信息数据进行管理,或者以学生信息对学生基本信息数据进行管理,或者以学生成绩信息对学生成绩信息数据进行管理
12、,最后将相关信息返回管理员用户。对于学生基本信息的存放数据,以图 2-3 的数据字典表示其中保存的数据:学生姓名、学生编号、学生性别、学生年龄;对于学生成绩信息的存放数据,以图 2-4 的数据字典保存,其中的数据为:学生姓名、学生编号、学生所修课程、学生所修课程成绩、学生所修课程学分、学生的总学分、学生加权成绩;对于课华 中 科 技 大 学 毕 业 设 计(论 文)5页码程信息的存放数据,以图 2-5 的数据字典表示:任课教师姓名、课程名、课程学分、修课学生姓名、修课学生编号、修课学生成绩。图 2-1 系统 0 级数据流图图 2-2 系统 1 级详细数据流图图 2-3 学生基本信息字典华 中
13、科 技 大 学 毕 业 设 计(论 文)6页码图 2-4 学生成绩信息字典图 2-5 教师课程信息字典图 2-6 系统 E-R 图华 中 科 技 大 学 毕 业 设 计(论 文)7页码3 概要设计与详细设计概要设计与详细设计系统的数据主要为字符串数据, 而且对于不同数据在同一数据信息结构中存在对应的关系,如:每一个学生编号唯一对应一位学生及其相关信息,学生编号也唯一对应学生的成绩等。所以,可以用键值对来保存数据,而 python 自有的数据结构-字典,字典的键可以是数字,字符串或者元组,而键可以是字符串,数字,元组,列表或者字典,而唯一的键对应唯一的值,所以利用字典建立学生基本信息数据结构、学
14、生成绩信息数据结构、课程信息数据结构。对于学生基本信息数据结构的字典命名为 stubifo 可以表述为:以每一学生的学生编号构建构建一个键, 对应一个值为以该学号为学生的学生个人信息的字典,该字典有 5 各键值对:键为学生姓名 name 对应值为该学生姓名信息,键为学生性别 sex 对应值为该学生性别信息,键为学生班级 class 对应值为该学生班级信息,键为学生年龄 old 对应值为该学生年龄信息,键 snumber 为该学生登录的密码信息。对于学生成绩信息数据结构的字典命名为 stugifo 可以表述为:以每一学生的学生编号构建一个键,对应一个值为以该学号为学生的学生成绩信息的字典,该字典
15、有 3 个键值对, 该字典中键为 total_credit 对应值为该学生总学分信息, 键weighted_score 加权成绩对应值为该学生加权成绩信息,键 course 课程成绩对应值为该学生所修所有课程和其成绩一一对应的字典, 该值字典中该学生每一所修课程名为一个键对应一个字典,该字典有 2 个键一个为 greed 课程成绩的键对应值为学生该课程的成绩信息,另一个为 credit 课程学分的键对应值为该课程的学分信息。对于课程信息数据结构的字典命名为 tchcifo 可以表述为:以每一教师的教师编号为一个健,对应一个值为以该教师课程信息数据的字典,该字典有 2 个键值对,一个健为 nam
16、e 教师姓名对应值为该教师姓名信息,另一个健为 course 教师任课课程对应值为教师所任课程信息的字典, 该值字典以每一教师所任课程名为键对应一个所修学生信息的字典, 该值字典以每一所修该课程学生的编号为键对应值为该学生该课程的成绩信息, 该值字典存在键为 course_credit 课程学分的健对应值为该课程学分信息。华 中 科 技 大 学 毕 业 设 计(论 文)8页码由上述数据结构的分析可知,学生编号以 8 位字符串组成其中第一位为 U,其它位为数字字符串,学生姓名以任意位字符串表示,学生性别以数字表示 0 代表男性,1 代表女性,学生班级为任意字符串,学生年龄为任意二位数字,学生登录
17、的密码为任意位数字字符串,学生总学分为数字,学生加权成绩为数字,课程成绩为数字,课程学分为数字,教师编号以 8 位字符串组成其中第一位为 T,其它位为数字字符串,教师姓名为任意字符串,教师任课课程名为任意字符串,系统的基本模块分为用户登录模块,学生查询模块,教师课程管理模块,管理员管理模块,见图 3-1。用户登录模块,由用户选择用户登录模式,再通过用户登录确认用户,根据用户类型和登录类型产生用户功能选择界面。学生查询模块, 根据学生用户登录和选择的查询方式和内容查询学生基本信息或者学生成绩信息,并通过界面返回查询信息与学生用户并等待事件。教师查询模块, 根据教师用户登录选择的查询方式或者管理方
18、式对教师课程信息进行查询,并通过界面返回查询信息与教师用户并等待事件。见图 3-2。管理员管理模块,根据管理员用户登录选择对学生基本信息的添加、删除和修改,教师课程信息的添加、删除和修改,学生成绩信息的添加、删除和修改,并通过界面返回查询信息与教师用户并等待事件。见图 3-3。系统的用户登录模块流程图见图 3-4。系统各个基本功能模块大致流程为:先根据用户类型和选择的功能,获取用户的处理条件输入,判断输入合法后,然后用输入的相关关键字查询需要处理的字典信息,如查询失败,再换用其他输入关键字遍历查询该字典信息,然后根据查找结果和功能选择,对字典中的数据进行处理,然后将处理后的信息保存。然后根据用
19、户选择进行下一步工作以模块更新修改教师课程信息为例,其流程图见图 3-5,其他信息的修改、添加、删除相似。华 中 科 技 大 学 毕 业 设 计(论 文)9页码图 3-1 系统的基本模块图 3-2 教师查询模块图 3-3 管理员管理模块华 中 科 技 大 学 毕 业 设 计(论 文)10页码图 3-4 用户登录模块流程图华 中 科 技 大 学 毕 业 设 计(论 文)11页码图 3-5 修改教师课程信息模块流程图华 中 科 技 大 学 毕 业 设 计(论 文)12页码4 测试报告测试报告黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,
20、在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。黑盒测试主要发现以下类型错误:(1)功能不对或遗漏,(2)接口错误,(3)数据结构或外部数据库访问错误,(4)性能错误,(5)初始化盒终止错误。在此次实验中我采用黑盒测试的方式,来实现对系统功能的测试,由于篇幅有限,我仅仅列举重要功能的测试截图。根据等价划分方法,将该测试的几个模块单独测试,及运用集成测试的测试策略进行测试。在用户登录模块的测试中
21、有效输入的等价类有:1.在学生登录模式下用户名为 8 位字符串组成其中第一位为 U,其它位为数字字符串,密码为任意位字符串;在教师登录模式下用户名为 8 位字符串组成第一位为 T,其它位为数字字符串,密码为任意位字符串;管理员用户登录模式下用户为任意字符串,密码为任意位字符串有效输出为 1.如果输入的用户名在相关信息字典中为健且对应值字典中健 snumber 的值字符串与输入的密码字符串相等则登录界面销毁, 进入用户功能界面 2.否则登录界面弹出对话框,继续进入消息循环。所以根据如上叙述,设置如下测试数据:学生登录模式,用户名 U222222,密码 123456学生用户查询模块的测试中, 有效
22、输入的等价类有单击主菜单下拉菜单的查询功能按键有效输出为:弹出选择功能信息的对应的消息界面。教师课程查询管理模块的测试中有效输入的等价类有: 单击主菜单下拉菜单的查询与管理功能按键, 有效输出为: 弹出选择功能信息的对应的消息界面。管理员管理模块的测试中有效输入的等价类有: 单击主菜单下拉菜单的各数据的添加、修改、删除按键,有效输出为:弹出选择功能信息的对应的消息界面。主要对管理员管理模块学生数据添加模块进行测试, 对于学生基本信息数据华 中 科 技 大 学 毕 业 设 计(论 文)13页码的添加有效输入的等价类有:学生编号为 8 位字符串组成其中第一位为 U,其它位为数字字符串,密码为任意位
23、字符串,其他为任意字符串,有效输出为:显示添加成功对话框。所以选择对用户登录模块进行测试,测试用例为:选择学生用户登录,输入 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,弹出提示对话框,表示进入失败。由测试结果和测试
24、预期相符,表示该功能模块达到预期设计。其他测试结果与预期一一相符。图 4-1 测试结果 1图 4-2 测试结果 2图 4-3 测试结果 3华 中 科 技 大 学 毕 业 设 计(论 文)14页码图 4-4 测试结果 4华 中 科 技 大 学 毕 业 设 计(论 文)15页码5 项目管理项目管理本程序采用功能点技术估算软件规模及工作量,根据系统的设计:输入的项数为 26,其中简单级为 5 项,平均级为 10 项,复杂级为 11 项;输出项数为 53,其中简单级为 10,平均级为 30,复杂级为 13 项;查询项数为 49 项,其中简单级为 13 项,平均级为 21 项,复杂级为 15 项;主文件
25、项数为 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 的计算公式估算系统的 T
26、CF 为 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 个月,原型开发以模
27、块开发为主系统分为 4 个模块,系统测试 1.5 个月,文档写作 0.5 个月等。系统 gnatt 图见图 5-1华 中 科 技 大 学 毕 业 设 计(论 文)16页码图 5-1 系统 gantt 图华 中 科 技 大 学 毕 业 设 计(论 文)17页码6 体会与建议软件工程的这次实验让我了解到一个完整的软件设计及实现流程, 通过对学生成绩管理信息系统的分析、设计、编写、测试、管理等过程,使我更加理解现代软件的生产流程, 了解到对于一个软件从分析到最后完成出产的过程是非常复杂的,不是仅仅只有编写代码才是重要的,包括对代码的注释,和相关文档工作也是十分重要的,甚至重要性和完成难度要比一个完整的代码编写还要高。所以本次软件工程的实验对我写代码的风格、相关文档的分析工作,及软件测试能力有了很多的提高,对于相关的知识也有了更深的理解。对于软件工程的课程,我觉得对于我们开设还是时间上早了一些,第一没有学面向对象的程序设计,所以没有办法完成软件工程更为重要的面向对象设计,第二也没有学数据库技术,所以对于数据的处理也不是很复杂,其他还有就是没有团队合作,没有体现出项目管理能力的培养,然后就没有什么其他的意见及建议了。华 中 科 技 大 学 毕 业 设 计(论 文)18页码参考文献参考文献1张海潘,倪宁等.软件工程(第三版).人民邮电出版社.2008,2:1-294
限制150内