当前位置:文档之家› 太原理工大学软件工程实验报告

太原理工大学软件工程实验报告

本科实验报告课程名称:软件工程导论实验项目:教务管理系统之子系统—学院课程安排报告实验地点:专业班级:学号:学生姓名:指导教师:2015年5 月15 日项目说明教务管理系统之子系统——学院课程安排1.系统简介每个学期的期中,学校教务处会分类向各个学院发出下各学期的教学计划,包括课程名称、课程代码、课时、班级类别(本科、专科、成人教育、研究生)、班号等;学院教学主管人员根据教学任务要求给出各门课程的相关限制(如:任课教师的职称、上课的班数、最高和最低周学时数等);任课教师自报本人授课计划,经所在教研室协调任可,将教学计划上交学院主管教学计划的人员,批准后上报学校教务处,最终由教务处给出下个学期全学院教师的教学任务书。

假设上述排课过程全部由人工操作,现要求为上述过程实现计算机自动处理过程。

2.限定条件(1)原则上,每位教师每学期主讲的课程门数不超过2门。

(2)严格限制:每位教师每年教学工作量不得低于300,不得超过600。

(3)本学期出现严重教学事故的教师不能承担下各学期的主讲任务。

(4)本系统的输入项至少包括:教务处布置的教学计划和工作量计算子系统、学院教师自报的授课计划和学院制定的有关授课限制条件。

(5)本系统的输出项至少包括:教务处最终下达全院教师的教学任务书和学院各个班级下各学期的课程表(可以不含上课地点)。

附工作量计算子系统中的课堂教学工作量计算方法(简化计算):1.单班课计划学时*1.0双班课计划学时*1.3三班课计划学时*1.6四班课计划学时*2.02.双语教学计划学时*合班系数*2.03.精品课程国家级精品课程计划学时*合班系数*1.5省级精品课程计划学时*合班系数*1.1软件需求分析1任务概述1.1目标:根据输入的各类信息及限制条件,给出教学任务书。

1.2运行环境:win7系统,java语言,SQL数据库。

1.3条件与约束:(1)原则上,每位教师每学期主讲的课程门数不超过2门。

(2)严格限制:每位教师每年教学工作量不得低于300,不得超过600。

(3)本学期出现严重教学事故的教师不能承担下各学期的主讲任务。

1.4功能描述:教务计划的录入,任课教师信息上传与查看,根据输入的数据与限制条件给出教学任务书。

2数据描述2.1输入输出:输入项至少包括:教务处布置的教学计划和工作量计算子系统、学院教师自报的授课计划和学院制定的有关授课限制条件,输出项至少包括:教务处最终下达全院教师的教学任务书和学院各个班级下各学期的课程表(可以不含上课地点)。

2.2数据流图:(a)顶层数据流图(b)0层数据流图(c)1层数据流图2.3数据字典(1)数据流条目相关限制=任课教师的职称+上课的班数+最高周学时数+最低周学时数任课教师的职称=教授+研究生教学计划=课程名称+课程代码+课时+班级类别+班号+计划学时+合班系数班级类别=本科+专科+成人教育+研究生授课计划=课程名称+班级类别+班号教学任务书=课程名称+课程代码+课时+班级类别+班号课表=课程名称+课程代码+课时+班级类别+班号教学任务=课程名称+课程代码+课时+班级类别+班号合格名单=课程名称+课程代码+课时+班级类别+班号已通过计划=教工号+课程名称+课程代码+课时+班级类别+班号未通过人员=教工号通过名单=教工号+课程名称+课程代码+课时+班级类别+班号(2)数据存储条目文件名:课程信息组成:教工号+课程名称+课程代码+课时+班级类别+班号+限制条件+计划学时+ 合班系数+{已被选择|未被选择}+{通过|未通过}组织方式:索引文件,以课程代码为关键文件名:教学任务书组成:教工号+课程名称+课程代码+课时+班级类别+班号+计划学时+合班系数组织方式:索引文件,以课程代码为关键文件名:学生信息组成:学号+班号+密码组织方式:索引文件,以学号为关键文件名:老师信息组成:教工号+密码+授课计划是否通过限定条件+是否出现严重教学事故组织方式:索引文件,以教工号为关键文件名:人员信息组成:教务号+密码组织方式:索引文件,以教务号为关键(3)数据项课程名称:别名:无类型:字符型长度:2{汉字}15课程代码:别名:无类型:整型长度:5位课时:别名:无类型:整型长度:2位(4)加工条目加工名:教务管理系统编号:无输入:授课计划,教学计划,限制条件输出:教学任务书,课表加工名:录入储存处理编号:1输入:相关限制,教学计划加工逻辑:将审查通过的教学计划添加相关限制,放入课程信息中加工名:学生查询编号:2输入:学生信息输出:课表加工逻辑:If是学生Then将教学任务书改为课表Else退出加工名:编号:3输入:授课计划、老师信息加工逻辑:if合格根据设定的条件判断是否满足为合格计划加工名:限定条件输入:授课计划、老师信息加工逻辑:If合格Then修改课程信息Else 修改老师信息为授课计划未通过限定条件加工名:老师查询编号:4输入:教工号输出:教学任务加工逻辑:If是老师Then根据教学计划书给出教学任务Else 退出加工名:教务处编号:5输入:教务号输出:教学任务书加工逻辑:if是教务人员Then if审核通过Then 下达教学计划书Else 修改课程信息Else 退出加工名:审查输入:教学计划输出:合格名单加工逻辑:将满足计划的课程变为名单加工名:再次审查编号:1.2输入:合格名单输出:课程信息加工逻辑:查看相应教学计划是否添加了限制加工名:有效性检查编号:2.1输入:学号输出:有效查询加工逻辑:检查输入的学号是否有密码对应加工名:排课系统编号:2.2输入:教学任务书输出:课表加工逻辑:将教学任务书根据班号划分课程为课表加工名:是否满足条件编号:3.1输入:授课计划、教师信息输出:已通过的计划、未通过的人员加工逻辑:if满足条件Then 输出已通过的计划Else 输出未通过的人员加工名:更新信息编号:3.2输入:已通过的计划、未通过的人员输出:{课程信息|未通过人员}加工逻辑:if是计划Then 修改课程信息Else 修改教师信息为授课计划未通过限定条件加工名:检查编号:4.2输入:教工号输出:有效值加工逻辑:检查输入的教工号是否有密码对应加工名:查询编号:4.2输入:课程信息和教学任务书输出:教学任务加工逻辑:根据课程信息和教学任务书查看教学任务加工名:审核编号:5.1输入:教务号输出:有效值加工逻辑:检查输入的教务号是否有密码对应加工名:审计编号:5.2输入:有效值,课程信息输出:通过名单加工逻辑:判断课程是否可以通过,给出通过名单加工名:更新信息编号:5.3输入:通过名单输出:课程信息、教学任务书加工逻辑:修改课程信息是否通过并给出教学任务书3数据库描述采用SQL数据库,信息放在服务器端数据库中,各种用户根据权限不同登陆系统,进行相关操作。

4其他需求接口需求:用户接口需求,软件接口需求。

用户界面需求:相对简洁易懂,好操作。

软件总体设计要求从需求分析的数据流图导出系统结构图,并进行优化,画出系统的软件结构图。

①部分②部分③部分④部分⑤部分软件详细设计1.设计③部分:是否满足条件算法名称CON对A部分细化为If y为单班课x=x+a*1If y为双班课x=x+a*1.3If y为三班课x=x+a*1.6If y为四班课x=x+a*2.0If y为双语教学x=x+a*2.0If y为国家级精品课程x=x+a*b*1.5If y为省级精品课程x=x+a*b*1.1Return x功能:判断老师提交的授课计划是否满足条件输入:授课计划和老师信息老师主讲的课程门数的课程为z老师出现严重教学事故c=1 老师未出现严重教学事故c=0 班级类别为y 计划学时为a 合班系数为b输出:已通过的计划输入到课程信息未通过的人员输入到教师信息2.设计②部分:有效性检查算法名称check1功能:判断学生输入的账号输入:学生账号和学生信息a为输入的账号b数据库中保存的学生账号C为输入的密码d数据库中保存的账号密码输出:有效信息到排课系统无效输入则退出系统附1的部分代码package详细设计代码;public class Test {public static void main(String[] args){int i=0,x=0;if(z<=2)i++;if(300<=A<=600)i++;if(c=0)i++;if(i=3)System.out.println("pass");else System.out.println("nopass");}}软件测试1.单元测试(白盒测试)第一个大模块:1.1审查:测试用例:课程名称+课程代码+课时+班级类别+班号+计划学时+合班系数依次去掉各项输入,第一轮去掉一个,第二轮去掉两个,以此类推。

1.2再次审查:测试用例:任课教师的职称+上课的班数+最高周学时数+最低周学时数依次去掉各项输入,第一轮去掉一个,第二轮去掉两个,以此类推。

第二个大模块:2.1有效性检查测试用例:学号+密码学号(是否存在)密码(是否正确)2.2排课系统测试用例:学号+课程名称+课程代码+课时+班级类别+班号依次去掉各项输入,第一轮去掉一个,第二轮去掉两个,以此类推。

第三个大模块:3.1是否满足条件测试用例:Z≤2 300≤A≤600 C=0Z>2 300≤A≤600 C=0Z≤2 A<300或A>600 C=0Z≤2 300≤A≤600 C≠0Z>2 A<300或A>600 C=0Z≤2 A<300或A>600 C≠0Z>2 300≤A≤600 C≠0Z>2 A<300或A>600 C≠03.2更新信息测试用例:教工号+课程名称+课程代码+课时+班级类别+班号依次去掉各项输入,第一轮去掉一个,第二轮去掉两个,以此类推。

第四个大模块:4.1检查测试用例:教工号+密码教工号(是否存在)密码(是否正确)4.2查询测试用例:教工号+课程名称+课程代码+课时+班级类别+班号+限制条件+计划学时+ 合班系数+{已被选择|未被选择}+{通过|未通过}依次去掉各项输入,第一轮去掉一个,第二轮去掉两个,以此类推。

第五个大模块:测试用例:5.1审核测试用例:教务号+密码教务号(是否存在)密码(是否正确)5.2审计测试用例:教工号+课程名称+课程代码+课时+班级类别+班号+限制条件+计划学时+合班系数+{已被选择|未被选择}+{通过|未通过} 依次去掉各项输入,第一轮去掉一个,第二轮去掉两个,以此类推。

5.3更新信息测试用例:教工号+课程名称+课程代码+课时+班级类别+班号依次去掉各项输入,第一轮去掉一个,第二轮去掉两个,以此类推。

2.集成测试(黑盒测试)利用自底向上集成方法,根据功能划分简略的示意图3.确认测试(黑盒测试)由专门的测试人员和用户参加进行测试。

相关主题