软件工程课程设计报告.docx
- 文档编号:23534203
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:29
- 大小:538.38KB
软件工程课程设计报告.docx
《软件工程课程设计报告.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计报告.docx(29页珍藏版)》请在冰豆网上搜索。
软件工程课程设计报告
课程设计报告
(2013--2014年度第二学期)
名称:
软件工程课程设计
题目:
成绩查询管理系统
院系:
计算机系
班级:
信安1101班
学号:
201109040128
学生姓名:
徐一洲
指导教师:
宋雨,陈晴,王艳
设计周数:
2周
成绩:
日期:
2014年6月27日
《软件工程》课程设计
任务书
一、目的、要求
通过该课程设计要使学生树立起强烈的工程化意识,用工程化思想和方法开发软件。
切实体会出用软件工程的方法开发系统与一般程序设计方法的不同之处,学生在对所开发的系统进行软件计划、需求分析、设计的基础上,实现并测试实际开发的系统。
通过一系列规范化软件文档的编写和系统实现,使学生具备实际软件项目分析、设计、实现和测试的基本能力。
二、主要内容
要求学生掌握软件工程的基本概念、基本方法和基本原理,为将来从事软件的研发和管理奠定基础。
每个学生选择一个小型软件项目(内容参照《计算机综合实践指导》,宋雨等编著,清华大学出版社出版),按照软件工程的生命周期,完成软件计划、需求分析、软件设计、编码实现、软件测试及软件维护等软件工程工作,并按要求编写出相应的文档。
具体的方法可以选用传统的软件工程方法或者面向对象的方法,开发环境和工具不限。
三、进度计划
序号
设计(实验)内容
完成时间
备注
1
软件计划、软件需求分析、软件设计,制定出软件测试计划,软件测试用例
第1周
要求上机前做好充分的文档准备
2
各模块录入、编码、编译及单元测试
第2周的第1、2天
3
联调及整体测试,
第2周的第3、4天
4
验收,学生讲解、演示、回答问题
第2周的第5天
四、设计成果要求
1.至少提交4个文档,包括软件计划、软件需求规格说明书、软件设计说明书、软件测试计划,要求文档格式规范、逻辑性强(可参考《计算机综合实践指导》中给出的要求及格式)、图表规范;
2.独自实现了系统的某些功能,基本达到了要求的性能,经过了测试,基本能运行。
五、考核方式
(1)提交的文档规范,工作量大,文档逻辑性强、正确,按《计算机综合实践指导》标准考核(附《软件工程课程设计》实验报告评分表)占60%
(2)系统验收、讲解、答辩占25%
(3)考勤占15%
2014年6月27日
《软件工程课程设计》实验报告评分表
姓名
专业班级
学号
题目
标准
分数
得分(√)
标准
分数
得分(√)
标准
分数
得分(√)
报告规范,符合要求
20
报告较规范,基本符合要求
17
报告不规范,不符合要求
11
10
16
9
8
19
15
7
6
14
5
4
18
13
3
2
12
1
0
工作量大,报告完整
20
工作量适中,报告较完整
17
工作量较小,报告不完整
14
19
16
13
18
15
12
文档逻辑性强、正确,语言流畅
20
文档逻辑性较强,无明显错误,文字表述较流畅
16
文档有逻辑性,有明显错误,语言表述不顺畅
12
11
19
15
10
9
18
14
8
7
17
13
6
5
实验报告成绩
评分教师签字
一、课程设计的目的与要求
1.课程设计目的
通过该课程设计要使学生树立起强烈的工程化意识,用工程化思想和方法开发软件。
切实体会出用软件工程的方法开发系统与一般程序设计方法的不同之处,在对所开发的系统进行软件计划、需求分析、设计的基础上,实现并测试实际开发的系统。
通过一系列规范化软件文档的编写和系统实现,使自己具备实际软件项目分析、设计、实现和测试的基本能力
2.课程设计要求
1.1课程设计准备
1)复习软件工程课程的主要内容,熟练掌握软件生命周期的理论以及各阶段的基本概念。
2)明确可行性分析、需求分析、设计、测试等阶段的基本任务和基本方法。
3)熟练运用规范化的描述方法和文档,描述软件开发的各个阶段。
4)熟悉开发环境和开发工具。
1.2内容要求
1)对所设计和实现的系统进行可行性分析,提交可行性分析报告;
2)对系统进行需求分析;
3)在SRS的基础上进行软件的概要设计和详细设计,提交软件设计文档;
4)遵循上述文档的要求,实现软件;
5)对所实现系统进行软件测试,完成软件测试报告
二、设计正文
1.可行性分析报告
1.1项目简介
1.1.1项目目标
完成一个功能相对完善的成绩管理系统,初步确定了四种功能,适当的调整功能是否再继续增加。
随着学校规模的扩大,和学生数量的增多,使得成绩查询的难度在增加,简单的完全人工的成绩查询方式已不能满足学校的诸多方面的需求,利用计算机管理学生成绩,提供了一种方便快捷的方式,能够接受大量的人力物力,并且能够提供有效的管理手段。
1.1.2系统的简要描述,主要功能
本系统将提供给教学管理人员和学生使用,进行日常教务工作的查询、管理和调度,提高时间的利用率和工作效率。
系统应该提供的功能包括:
1.永久存储用户输入的信息;
2.数据调度和数据查找操作简易;
3.为不同级别用户设置不同操作权限;
本项目的产品是一个独立、完整的程序,目前不提供其他系统的接口。
1.2对现有系统的分析
1.2.1处理流程和数据流程(系统流程图)
系统流程图1.2.1
1.2.2对现有系统的其他说明
随着数据库的数据的增加,数据库设计的不合理性使得数据读取,计算等时间较长,系统维护开销已经较大,系统相对老旧,运行速度较慢
1.3技术可行性分析
本系统采用C/S结构,c#windows程序设计,分为三部分:
数据连接,业务逻辑,界面设计。
在功能实现方面,结合其他程序数据库作为数据来源,利用SqlServer作为数据库支持,用加密技术实现用户密码保护。
1.4经济可行性分析
通过对现有系统进行改进,提高系统效率。
减少系统维护费用。
1.5社会因素可行性分析
1.5.1法律因素
本系统提供学生成绩查询管理功能,给学校带来方便的成绩管理,成绩不公示,学生无法查看他人成绩
1.5.2用户使用可行性
给用户提供有好的界面,使用的功能选择,并在起始页上进行产用功能,方便用户的功能选择,用户登录控制使得系统更加安全。
任何学生、管理人员看到就会使用
1.6可供选择的方案
1.对控件进行功能扩展,使sqlserver数据库,c#语言进行编写,使用数据加密技术对用户关键信息进行加密处理
1.7需求概述
1)给出软件需求的摘要和简单描述
实现学生成绩管理功能,主要功能包括:
用户登录验证,密码修改,专业调整,成绩录入,修改,打印,查询。
2)运行环境
Windows平台下,.NET3.5以上环境
1.8功能需求
1)学生成绩和学生信息查询。
功能:
查询、浏览学生信息。
可以查询单一记录,也可以浏览所有信息。
操作:
单击显示即可浏览所有学生信息或成绩信息,输入学号点击查询可查询单独记录。
教师信息查询同上。
2)学生成绩录入删除窗体
功能:
设置权限管理,管理人员可以录入删除学生成绩和信息。
操作:
在文本框处填写信息后点击添加实现录入成绩功能,输入学号点击删除实现成绩删除功能。
3)学生成绩修改
功能:
修改学生成绩信息。
操作:
填写信息后,输入新的成绩,点击修改。
1.9数据描述
学生:
学生=学号+姓名+性别+班号+入学年份
学号=入学年份+年级+系号+专业号+班级位次号
姓名=[1{英文}40|1{汉字}20]
性别=[男|女]
班号=年份+年级+系号+专业号+班级数
入学年份=”1945”..”9999”
专业:
专业=专业号+专业名+系号
专业号=”01”..”99”
专业名=2{汉字}20
系号=”01”..”99”
教师:
教师=教师号+系号+教师名+性别+教师编制号
教师号=系号+科室号+科室排名
系号=”01”..”99”
教师名=[1{英文}40|1{汉字}20]
性别=[男|女]
教师编制号=”01”..”99”
课程:
课程=课程号+课序号+开课系号+课程名+教师号+学分
课程号=”001”..”999”
课序号=”001”..”999”
开课系号=”01”..”99”
课程名=2{汉字}20
教师号=系号+科室号+科室排名
学分=”0”..”10”
1.10性能需求
1)数据精确度
数据库设计要消除数据冗余,使数据库易于扩展,查找快捷
2)时间特性
提供时间限制的功能开启,系统并不要求长时间不间断运行,当用户有功能需求,且满足一定的时间要求是进行开启
3)适应性
能够适应大量学生数据的的管理,在系统发生错误时,不会发生系统崩溃情况,提供一定的同挫能力
1.11运行需求
1)用户界面
1、用户界面要方便快捷,功能清楚,并容易查找,添加常用功能区,方便用户的使用。
2、用户需要登录后才能使用系统,登录控制要有一定的安全保证措施,密码要进行加密存储。
用户分等级登录系统,根据用户的等级确定用户能够使用的功能。
2)硬件接口
进行数据库服务器的连接
3)软件接口
连接选课系统等系统数据库获得数据
4)故障处理
提供友好的错误提示界面,方便用户进行错误查找,提供友好的用户界面
1.12其它需求
无
2.软件设计说明书
2.1文件结构和全局数据
1)数据库设计
E-R图,如图
系统E-R图结构
数据库清单,如下
表名
说明
XS
学生信息表
KC
课程信息表
XS_XC
选课,成绩信息表
Admin
管理员信息表
Teacher
教师信息表
表1Admin表
字段号
字段名
字节长度
数据类型
说明
1
Admin_ID
int
管理员ID主码
2
Admin_name
10
nchar
管理员姓名
3
Admin_pass
10
nchar
管理员密码
4
Admin_level
int
管理员级别
表2KC表
字段号
字段名
字节长度
数据类型
是否允许空值
说明
1
KCH
int
否
课程号,主码
2
KCM
10
nchar
否
课程名
3
KKXQ
4
Int
否
开课学期
4
XS
Int
否
学时
5
XF
Int
否
学分
表3XS表结构
字段号
属性名
字节长度
数据类型
是否允许空值
说明
1
XH
10
nchar
否
学号,主码
2
XM
10
nchar
否
姓名
3
ZYM
10
nchar
是
专业名
4
PASS
10
nchar
否
密码
5
XB
10
nchar
是
性别
6
CSNY
date
否
出生日期
7
XF
int
否
已修学分
8
BZ
100
nchar
是
备注
表4XS_XC表结构
字段号
属性名
字节长度
数据类型
是否允许空值
说明
1
课程号
10
nchar
否
参照KC表主键
2
学号
10
nchar
否
参照XS表主键
3
成绩
Float
是
成绩(0~100)
4
id
int
否
主码
表5Teacher表结构
字段号
属性名
字节长度
数据类型
是否允许空值
说明
1
teach_num
10
nchar
否
教工号,主码
2
teach_name
10
nchar
否
姓名
3
teach_pass
10
nchar
是
密码
4
age
10
int
否
年龄
5
sex
4
nchar
是
性别
数据库表关系图
数据库视图设计
View_Score视图
3.3模块描述
3.3.1主界面
1)功能:
提供成绩管理功能,包括成绩的录入,修改,查询功能。
能够根据学生学号对学生成绩进行管理,并能进行批量的成绩录入。
提供报表打印功能,方便用户阅读。
2)接口:
供学籍管理系统主模块调用。
3)数据:
从数据库中获得datatable,用于存放学生信息。
并用修改后的datatable更改数据库
4)处理:
能够根据学生学号对学生成绩进行管理,并能进行批量的成绩录入。
3.3.2学生信息查询
1)功能:
根据学生的学号,系别,提供学生的课程成绩,并能根据课程的类别进行不同的显示。
2)接口:
共学籍管理系统主模块调用。
3)数据:
从数据库中获得datatable,统计学生学分。
4)处理:
接受用户选择的学号,课程类别,查询数据库生成学生的学分统计表,并通过gridview进行显示,可以给用户提供分页显示功能。
3.3.3成绩录入
1)功能:
供教师使用,提供学生的成绩录入功能。
提供给用户的选择有学号,姓名,课程名,学分。
2)接口:
共学籍管理系统主模块调用。
3)数据:
使用学生信息表,学生选课表,课程信息表等数据。
4)处理:
对成绩进行查询录入。
3.3.4选课信息,成绩管理
1)功能:
根据所选课程给出学生成绩
2)接口:
共学籍管理系统主模块调用。
3)数据:
使用学生信息表,学生选课表,课程信息表等数据。
4)处理:
根据所选课程给出学生成绩供用户查看。
3.3.5教师信息管理界面
1)功能:
教师登录界面
2)接口:
共成绩管理系统主模块调用。
3)数据:
使用用户新表。
4)处理:
教师登录录入学生成绩
图3.11
3.3.6密码修改
1)功能:
供所有登录系统的用户使用,可修改用户密码。
2)接口:
供成绩管理系统主模块调用。
3)数据:
使用用户信息表。
4)处理:
根据用户输入的用户名和密码。
进行用户确认后允许进行密码修改。
并进行新密码和确认密码的一致性的验证。
当用户输入数据合法时更新用户信息数据库。
3.软件测试报告
3.1测试范围
目的:
通过对软件错误的原因和分布进行归纳,来发现并排除当前软件产品的缺陷,对在需求和设计过程中存在的问题查缺补漏,从而确保软件产品的质量。
预期结果:
找到软件中存在的漏洞,弥补不足
测试步骤:
对系统各模块进行黑盒测试,输入各种有代表性的的数据,找出不足
3.2测试计划
3.2.1测试阶段
1)单元测试:
测试每个模块(模块内的算法、接口)
保证每个模块运行正确
2)集成测试:
测试软件的总体结构,主要是模块中的接口
参照概要设计
3)确认测试
软件是否满足需求
4)系统测试
检查软件与系统中的硬件、其他软件系统、人员等是否协调工作
3.2.2测试进度:
对各模块进行黑盒测试,单元测试和集成测试由各个模块的管理人员完成。
系统测试进行总体测试,评测各模块的协调运行情况,最后进行验收测试
3.3测试项目说明
4.3.1登录模块
1)测试目的:
测试登录模块是否能够正确的读取用户信息,进行用户登录。
并能根据用户等级的不同,传递消息给主模块进行相应的功能显示。
2)测试方法:
黑盒测试
3)测试用例:
选取理由
输入
预期结果
超级用户,等级1
用户名:
zyt
密码:
123456
正确登录,并显示所有功能
等级2的用户
用户名:
wyy
密码:
123456
正确登录,并显示成绩查询
等级3的用户
用户名:
mm
密码:
123456
正确登录,并显示,成绩管理,成绩录入,密码修改功能
用户名不存在
用户名:
ee
密码:
22
不能正确登录,提示用户名或密码错误
密码错误
用户名:
jj
密码:
456123
不能正确登录,提示用户名或密码错误
用户名或密码为空
用户名:
密码:
不能正确登录,提示用户名或密码错误
4.3.2成绩管理模块
1)测试目的:
测试成绩录入模块,更具课程号,和课序号正确的显示课程列表,并能对学生成绩进行修改,录入,查询
2)测试方法:
黑盒测试
3)测试用例:
选取理由
输入
预期结果
课程号或课序号为空
课程号:
课序号:
不显示课程列表,不发生错误
正确的课程号,课序号
课程号:
2
课序号:
2
显示课程对应的任课教师的姓名。
和该课程的学生信息
录入正确的成绩在,0-100范围之内
成绩:
50
能够正确录入
录入小于0或大于100的成绩
成绩:
-1
或
成绩:
101
进行错误提示,提示成绩范围错误
录入空白程序
成绩:
信息提示有空白项录入
4.3.3学分统计模块
1)测试目的:
对学分统计模块进行测试,检验其能否根据不同的选项进行学分统计
2)测试方法:
黑盒测试
3)测试用例:
选取理由
输入
预期结果
输入空白的学号,系别,,课程类型
学号:
系别:
不进行信息显示
选择正确的年纪,系别,课程类型,课程级别
年级:
2011
系别:
计算机
课程级别:
必修
显示正确的累年信息显示,并且选择的必修课
选择正确的年级,系别,统计方式,课程类型,进行分年统计
年级:
2011
系别:
计算机
统计方式:
分年统计
课程级别:
公选
显示正确的分年信息显示,并且选择的公选课
选择正确的年级,系别,统计方式,课程类型,进行分年统计
年级:
2011
系别:
计算机
统计方式:
分年统计
课程级别:
限选选
显示正确的分年信息显示,并且选择的限选课
4.3.4排名查询模块
1)测试目的:
测试排名查询模块,检验其是否能够运用正确的选项进行学分查询,并查找程序中的BUG
2)测试方法:
黑盒测试
3)测试用例:
选取理由
输入
预期结果
选取不同的班级和方式的组合,检验是否选项能够正确的变化
级别:
班级
方式:
综合
其它选项任选
出现班级选项,正确显示班级综合查询结果
选取不同的班级和方式的组合,检验是否选项能够正确的变化
级别:
专业
方式:
单科
其它选项任选
出现科目选项,正确进行专业单科排名结果显示
选取不同的班级和方式的组合,检验是否选项能够正确的变化
级别:
班级
方式:
单科
其它选项任选
出现班级和科目选项,正确的进行班级单科排名结果显示
选取任意空白选项
选项中任意空白项
项目清单清空,并不出现错误
4.3.5密码修改模块
1)测试目的:
测试用户密码修改模块,验证其能否进行正确的密码修改
2)测试方法:
黑盒测试
3)测试用例:
选取理由
输入
预期结果
输入不存在的用户名
用户名:
aa
旧密码:
123456
新密码:
123
确认密码:
123
提示用户名或密码错误
输入正确的用户名和密码。
新密码和确认密码
用户名:
lc
旧密码:
123456
新密码:
321654
确认密码:
321654
正确修改用户密码
输入正确的用户名和密码。
输入不一致的新密码和确认密码
用户名:
qrx
旧密码:
123456
新密码:
2134
确认密码:
321
提示密码输入不一致
输入空白的用户名,密码,新密码和确认密码
用户名:
旧密码:
新密码:
确认密码:
进行相应的错误信息显示
4.4测试分析
4.4.1登录模块的的测试分析
1)实测结果数据:
实测结果与预期结果一致
2)与预期结果数据的偏差:
暂时无偏差
3)该项测试表明的事实:
该模块无差错
4)该项测试发现的问题:
无
4.4.2成绩管理的的测试分析
1)实测结果数据:
实测结果与预期结果一致
2)与预期结果数据的偏差:
暂时无偏差
3)该项测试表明的事实:
该模块无差错
4)该项测试发现的问题:
无
4.4.3专业管理的的测试分析
1)实测结果数据:
实测结果与预期结果一致
2)与预期结果数据的偏差:
暂时无偏差
3)该项测试表明的事实:
该模块无差错
4)该项测试发现的问题:
无
4.4.4学分统计模块的的测试分析
1)实测结果数据:
实测结果与预期结果一致
2)与预期结果数据的偏差:
暂时无偏差
3)该项测试表明的事实:
该模块无差错
4)该项测试发现的问题:
无
4.4.5成绩查询模块的的测试分析
1)实测结果数据:
实测结果与预期结果一致
2)与预期结果数据的偏差:
暂时无偏差
3)该项测试表明的事实:
该模块无差错
4)该项测试发现的问题:
无
4.4.6用户注册模块的的测试分析
1)实测结果数据:
实测结果与预期结果一致
2)与预期结果数据的偏差:
暂时无偏差
3)该项测试表明的事实:
该模块无差错
4)该项测试发现的问题:
无
4.4.7密码修改模块的的测试分析
1)实测结果数据:
实测结果与预期结果一致
2)与预期结果数据的偏差:
暂时无偏差
3)该项测试表明的事实:
该模块无差错
4)该项测试发现的问题:
无
课程设计总结或结论
本次实验加深了我对SQLR2的建表、查询之类的操作。
同时对代码编写导入数据库和界面设计有了一定程度的了解
本次课程设计,最主要的是完成一次较完整的软件开发,用软件开发模型中较简单的瀑布模型为参考,熟悉了软件开发的各个过程。
从前期画流程图,到数据库的设计,再到软件界面以及各个功能的设计,我体会到,如果软件开发过程不能从先整体进行把握,那设计出来的软件从功能实现到数据的存储都会相当的混乱。
同时,一个软件的开发也是一个不断更改,不断改进的过程,只有扩展性良好的系统,才能在不断改变的过程之中表现出良好的适应能力,条理清楚。
三、参考文献
[1]王珊,萨师煊《数据库系统概论》北京:
高等教育出版社,2006,12
[2]王小科C#开发实战宝典北京:
清华大学出版社,2010,01
[3]宋雨,赵文清软件工程北京:
中国电力出版社,2007,02
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 课程设计 报告