太原理工大学软件工程实验报告Word格式.docx
《太原理工大学软件工程实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《太原理工大学软件工程实验报告Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
![太原理工大学软件工程实验报告Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/14/087bc3f2-0a90-4034-b114-e8640549c971/087bc3f2-0a90-4034-b114-e8640549c9711.gif)
教务处最终下达全院教师的教学任务书和学院各个班级下各学期的课程表(可以不含上课地点)。
附工作量计算子系统中的课堂教学工作量计算方法(简化计算):
1.单班课计划学时*1.0
双班课计划学时*1.3
三班课计划学时*1.6
四班课计划学时*2.0
2.双语教学
计划学时*合班系数*2.0
3.精品课程
国家级精品课程计划学时*合班系数*1.5
省级精品课程计划学时*合班系数*1.1
软件需求分析
1任务概述
1.1目标:
根据输入的各类信息及限制条件,给出教学任务书。
1.2运行环境:
win7系统,java语言,SQL数据库。
1.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是教务人员
Thenif审核通过
Then下达教学计划书
Else修改课程信息
审查
1.1
教学计划
合格名单
将满足计划的课程变为名单
再次审查
1.2
查看相应教学计划是否添加了限制
有效性检查
2.1
学号
有效查询
检查输入的学号是否有密码对应
排课系统
2.2
将教学任务书根据班号划分课程为课表
是否满足条件
3.1
授课计划、教师信息
已通过的计划、未通过的人员
if满足条件
Then输出已通过的计划
Else输出未通过的人员
更新信息
3.2
{课程信息|未通过人员}
if是计划
Then修改课程信息
Else修改教师信息为授课计划未通过限定条件
检查
4.2
有效值
检查输入的教工号是否有密码对应
查询
课程信息和教学任务书
根据课程信息和教学任务书查看教学任务
审核
5.1
检查输入的教务号是否有密码对应
审计
5.2
有效值,课程信息
通过名单
判断课程是否可以通过,给出通过名单
5.3
课程信息、教学任务书
修改课程信息是否通过并给出教学任务书
3数据库描述
采用SQL数据库,信息放在服务器端数据库中,各种用户根据权限不同登陆系统,进行相关操作。
4其他需求
接口需求:
用户接口需求,软件接口需求。
用户界面需求:
相对简洁易懂,好操作。
软件总体设计
要求
从需求分析的数据流图导出系统结构图,并进行优化,画出系统的软件结构图。
①部分
②部分
③部分
④部分
⑤部分
软件详细设计
1.设计③部分:
算法名称CON
对A部分细化为
Ify为单班课
x=x+a*1
Ify为双班课
x=x+a*1.3
Ify为三班课
x=x+a*1.6
Ify为四班课
x=x+a*2.0
Ify为双语教学
Ify为国家级精品课程
x=x+a*b*1.5
Ify为省级精品课程
x=x+a*b*1.1
Returnx
功能:
判断老师提交的授课计划是否满足条件
输入:
授课计划和老师信息
老师主讲的课程门数的课程为z
老师出现严重教学事故c=1老师未出现严重教学事故c=0
班级类别为y计划学时为a合班系数为b
输出:
已通过的计划输入到课程信息
未通过的人员输入到教师信息
2.设计②部分:
算法名称check1
判断学生输入的账号
学生账号和学生信息
a为输入的账号b数据库中保存的学生账号
C为输入的密码d数据库中保存的账号密码
有效信息到排课系统
无效输入则退出系统
附1的部分代码
package详细设计代码;
publicclassTest{
publicstaticvoidmain(String[]args){
inti=0,x=0;
if(z<
=2)i++;
if(300<
=A<
=600)i++;
if(c=0)i++;
if(i=3)System.out.println("
pass"
);
elseSystem.out.println("
nopass"
}
}
软件测试
1.单元测试(白盒测试)
第一个大模块:
1.1审查:
测试用例:
课程名称+课程代码+课时+班级类别+班号+计划学时+合班系数
依次去掉各项输入,第一轮去掉一个,第二轮去掉两个,以此类推。
1.2再次审查:
任课教师的职称+上课的班数+最高周学时数+最低周学时数
第二个大模块:
2.1有效性检查
学号+密码学号(是否存在)密码(是否正确)
2.2排课系统
学号+课程名称+课程代码+课时+班级类别+班号
第三个大模块:
3.1是否满足条件
Z≤2300≤A≤600C=0
Z>2300≤A≤600C=0
Z≤2A<300或A>600C=0
Z≤2300≤A≤600C≠0
Z>2A<300或A>600C=0
Z≤2A<300或A>600C≠0
Z>2300≤A≤600C≠0
Z>2A<300或A>600C≠0
3.2更新信息
教工号+课程名称+课程代码+课时+班级类别+班号
第四个大模块:
4.1检查
教工号+密码教工号(是否存在)密码(是否正确)
4.2查询
第五个大模块:
5.1审核
教务号+密码教务号(是否存在)密码(是否正确)
5.2审计
教工号+课程名称+课程代码+课时+班级类别+班号+限制条件+
计划学时+合班系数+{已被选择|未被选择}+{通过|未通过}
5.3更新信息
2.集成测试(黑盒测试)
利用自底向上集成方法,根据功能划分简略的示意图
3.确认测试(黑盒测试)
由专门的测试人员和用户参加进行测试。
4.系统测试
验证功能是否满足需求,考虑安全性,可靠性,性能等多方面因素。
实验心得:
花了很多时间去参考书上和网上的例子,最终选定用面向过程的方法来做项目,前期花了很多时间画图,初步构建了一个项目的模型出来,然而其实只是简单的做了做,因为sql才刚开设课程,只能实现部分的代码编写,自己还有很多需要学习的地方。
如果有机会下次要试试用面向对象的方法,用UML来做做项目,增强自己的能力。