软件工程课程设计在线考试系统.docx
- 文档编号:9278735
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:36
- 大小:736.29KB
软件工程课程设计在线考试系统.docx
《软件工程课程设计在线考试系统.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计在线考试系统.docx(36页珍藏版)》请在冰豆网上搜索。
软件工程课程设计在线考试系统
(2012--2013年度第2学期)
课程设计报告
名称:
软件设计与实践
题目:
在线考试系统
内容:
软件计划、需求分析、
软件设计、系统测试
院系:
计算机系
班级:
学号:
学生姓名:
指导教师:
宋雨、陈晴、王德文
设计周数:
2
成绩:
日期:
2013年6月19日
一、课程设计的目的与要求
1.课程设计目的
软件工程课程设计是学习软件工程课程后所进行的实践环节,目的是培养学生用工程化的思想和标准文档化的思想进行软件开发。
本次课程设计通过开发一个小型实用的软件系统,亲身体验软件生命周期中的各个环节,以加深对软件工程课程的深入理解、锻炼独立分析、解决问题的能力。
2.课程设计要求
2.1课程设计准备
1)复习软件工程课程的主要内容,熟练掌握软件生命周期的理论以及各阶段的基本概念。
2)明确可行性分析、需求分析、设计、测试等阶段的基本任务和基本方法。
3)熟练运用规范化的描述方法和文档,描述软件开发的各个阶段。
4)熟悉开发环境和开发工具。
2.2内容要求
1)对所设计和实现的系统进行可行性分析,提交可行性分析报告;
2)对系统进行需求分析,可以选择传统的分析方法或者面向对象的分析方法,提交软件需求规格说明书(SRS);
3)在SRS的基础上进行软件的概要设计和详细设计,提交软件设计文档;
4)遵循上述文档的要求,实现软件;
5)对所实现系统进行软件测试,完成软件测试报告。
二、设计正文
1.可行性分析报告
1.1项目简介
1.1.1项目目标
1)开发背景
在现实世界,竞争越来越激烈,知识的重要性也随之越发凸显。
在人们接受教育的过程中,不可避免的要接受各种各样的考试,传统的考试方式对人们往往有这样和那样的限制,例如在传统考试方式下,组织一次完整的考试至少要经历教师出卷、试卷印刷、学生考试、教师改卷、成绩统计等5个步骤。
传统考试方法存在以下几方面的弊端:
(1)试题单一,容易泄题。
(2)试卷一样,易作弊。
(3)误判、漏判、统错分。
(4)成绩上网,不易操作。
(5)纸质考试成本高,也不方便管理。
这对参考者造成了很大的影响,小的说可能拿不到某些证件,往大的方面说就可能涉及到个人的工作等等。
目前随着考试类型的不断增加和考试要求的不断提高,组织考试的工作量越来越大;管理人员和教师在组织考试的过程中需要花费较多的时间和精力,人为错误率也较高;另外,当考生数量比较大时,对学生成绩统计及分析十分烦琐且容易出错;而且,成绩公布之前学生为查看成绩给教师和教务部门带来的麻烦也不少,考试管理工作效率逐渐降低。
可以说,传统的考试方式已经不能适应目前考试的需要。
为了适应现在考试的要求,软件开发工作者经过长时间的积累、研究开发出了在线考试系统,使考生能够远程登录,系统能够自动判卷。
不管在哪方面,在线考试系统都优于传统的考试方式。
2)相关内容
使用在线考试系统,便于管理人员管理考试人员信息与考试成绩,管理人员可以根据考生信息管理考试科目以及考试时间等等。
参加网络考试的考生使用考试管理人员分配的账号登录考试系统,然后选择需要考试的科目,并开始答题。
交卷后,系统自动阅卷,并给出考试结果,这样即节省判卷时间,也可以在最短时间内告诉考生自己的成绩。
3)目标概述
开发一个适合用于学校的一个在线考试系统(简单、全面、通用、易用),力求软件界面友好美观、功能较为全面(例如有关数据库的增、删、改、查等等)、操作要简单统一。
1.1.2系统的简要描述,主要功能
在线测试系统的基本功能是管理员对试题和学生进行管理,学生可以答题。
具体如下:
1)管理员:
管理科目(增加科目、修改科目信息、删除科目)、试题(向题库中增加试题、修改试题、删除试题)、生成试卷,管理学生信息(添加学生包括登录账号、密码、姓名,删除学生)、学生成绩管理(查询、录入、管理)、管理员修改密码
2)学生:
修改密码、重新登录、选择考试科目、成绩查询、查询考务公告、进行考试、重新登录
等
1.2对现有系统的分析
1.2.1处理流程和数据流程(系统流程图)
开发的在线测试系统的系统流程图如下图所示:
管理员系统流程图:
考生系统流程图:
1.2.2对现有系统的其他说明
1)维护:
在系统交付之后的两年期限之内,系统的维护只要由开发单位提供维护;
2)人员:
开发人数较少,管理员数目一定,参加考试的人员必须是数据库中的存在人员,所以在每进行一次考试之前,管理人员都要确定可以参加考试的考生。
3)开发者需要的环境:
硬件环境:
(1)处理器(CPU):
双核I5
(2)内存容量(RAM):
4G
软件环境:
(1)操作系统:
MicrosoftWindows7
(2)数据库管理系统:
MYSQL,配置TCP/IP协议
(3)myeclipse集成开发环境
(4)Jtest等软件测试工具
1.3技术可行性分析
基于浏览器的在线考试系统,关键技术在于网页的动态显示和管理,即从数据库中取得相应的试卷数据,并收集用户输入数据,能够对考试过程进行控制。
采用最新的web与SQL技术开发,管理端和考生界面全部采用B/S模式构建,系统的部署、应用、维护更加方便。
同时,大型数据库mysql提供了数据库管理的能力,因此技术方案是成熟的和可行的。
1.4经济可行性分析
此软件开发周期一般为2-3个月,开发所需硬件软件设施目前大多数PC机系统能够承担,开发费用不高。
然而,实际上我们做的只是真正的考试系统的一小部分,所以我们的开发时间为2周。
目前,大多数单位都拥有高性能微机和局域网,该软件系统的安装、部署、运行和维护,都不会给单位增加太高的费用。
所以该系统在经济上是可行的。
1.5社会因素可行性分析
1.5.1法律因素
开发本系统时,使用的都是正版软件,所有的技术资料都是由开发单位保管的允许范围内;本项目不涉及在社会上或政治上引起侵权、破坏或其他责任问题。
设计本项目的一切活动都在国家法律允许范围内。
系统开发和运行与国家的政策法规不存在任何冲突和抵触之处。
因此,此在线考试系统在法律方面是可行的。
1.5.2用户使用可行性
在线考试系统是针对各行各业要对学者进行考核的需求进行开发的一个在线系统。
从管理者角度来看,纸质的考试不仅物质成本高,而且消耗大量的人力资源;此外,纸质的考试不够灵活,使得考试变得不够人性化,不能体现出考试的这是目的。
另外,本系统操作较为简单,容易上手,和传统纸质考试在本质方面没有大的区别。
操作人员要求具有一定的计算机接触即可。
在用户使用方面,本系统的开发是可行的。
1.6可供选择的方案
1.6.1采用C/S模式其与B/S模式基本一样,只是需要安装。
但是其设计对于画面的设计要求较高,所以其费用较高。
1.6.2选用B/S模式自行开发一个在线考试系统,系统主要分为两部分:
考生部分和管理员部分,考生部分实现的功能有:
参加考试,查询考务公告,成绩查询;管理员部分实现的主要功能有:
考生管理,考试管理,试题试卷管理,自动判卷功能等。
该方案的优点和选择该方案的原因:
(1)在用户接口方面B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流;
(2)开发难度减低,减低开发成本;
(3)在系统维护方面,B/S构件组成,方面构件个别的更换,实现系统的无缝升级.系统维护开销减到最小;
(4)在硬件要求方面,B/S建立在广域网之上的,不必是专门的网络硬件环境。
2.
软件需求规格说明书(SRS)
2.1需求概述
1)给出软件需求的摘要和简单描述
传统的考试方式对人们往往有这样和那样的限制,这对参考者造成了很大的影响。
相对于传统的考试方式,网络在线考试可以给考试者和管理者带来很大的方便:
第一,管理员可以动态的管理各种考试信息,只要设计好考试试题,就可以自动生成考试试题;第二,考试时间灵活,考生可以在规定的时间内参加考试;第三,阅卷迅速,在考试完毕后,可以迅速给出考试成绩,给考生以最大的公平感。
网络在线考试是一套功能强大、操作简便而又实用的模拟考试管理软件,它可以被广泛用于各种类型的考试中。
系统由管理员管理试卷和考生考试两部分组成。
管理员部分包括科目信息管理、试题信息管理、生成试卷以及查看考生成绩等功能。
学生考试部分实现学生答卷、分数统计分析和控制考试时间等功能。
2)运行环境
Winxp/2007
2.2功能需求
1)用例图
考生用例图
管理员用例图:
2)部分顺序图
时序图用来描述对象之间的动态交互,着重体现对象间消息传递的时间顺序。
它以垂直轴表示时间,水平轴表示不同的对象。
对象用一个带有垂直虚线的矩形框表示,并标有对象名和类名。
垂直虚线是对象的生命线,用于表示在某段时间内对象是存在的。
对象间的通信在对象的生命线间通过消息符号来表示,消息的箭头指明消息的类型。
第一个:
管理员修改自己的密码。
考生修改密码和管理员的类似,在这里只写一种情况。
第二个:
管理员添加科目。
管理员向题库中添加试题以及管理员添加考生信息的序列图与管理员添加科目的序列图是类似的,所以这里只画出一个。
第三个:
管理员生成试卷序列图。
第四个:
学生考试序列图
2.3数据描述
2.3.1数据词典:
对于数据流图中的每个元素,都可以通过数据词典加以描述,以保证数据定义的严格性,针对本系统,也对数据词典的描述如下:
用户登录信息=登录账号+密码
用户名=[管理员|考生]
管理员=登录账号+管理员姓名+管理员密码
密码=1{字符}10
对考试科目的维护=[添加考试科目信息|删除考试科目信息|修改考试科目信息]
对考试题库的维护=[修改考试试题|添加考试试题|删除考试试题]
对考生信息的维护=[添加考生信息|删除考生记录修改考生记录]
试卷生成=确定试卷科目+卷面总分+单选题数量及分值+多选题数量及分值+考试时间+考试有效期+确定可以参加考试的考生
管理员查询请求=[查询所有参考人员考试成绩]
考生=考生学号+考生准考证号+考生姓名+考生密码+考生权利
考生学号=1{字符}50
考生准考证号=1{字符}50
考生姓名=1{字符}50
考生密码=1{字符}50
考生权利=1{字符}50
考生考试=选择考试科目+开始考试
科目=科目序号+科目名称
科目序号=1{字符}50
科目名称=1{字符}50
试卷=试卷序号+试卷所属科目+单选题数量+单选题分值+多选题个数+考试时间+多选题分值+考试有效期的开始时间+考试有效期的结束时间
试题=试题编号+试题所属科目+题目类型+题目内容+A选项+B选项+C选项+D选项+试题答案+试题是否被选
考试记录=试卷编号+试题内容+试题选项+试题答案+考生自己做的答案+
考生成绩=序号+考试科目序号+学生学号+试卷号+开始答题时间+交卷时间+分数
2.3.2类图
1)考生类
考生类包含的属性主要是考生号,考生姓名,考生密码,考生权利(是否可以参加考试)。
学生类的方法主要是一些增、删、改、查等基本操作。
2).管理员类
管理员类包含的属性主要包括:
管理员登录账号、管理员姓名、管理员密码。
管理员类地方法主要有选择和更新(修改自己的密码)。
3)科目类
科目类包含的属性主要有:
科目序号、科目名称。
管理员类的方法主要有添加、删除、选择和更新。
设计类图如图所示:
4)试卷类
试卷类包含的属性主要有:
试卷编号、试卷科目、试卷名。
试卷类地方法主要是添加,插入和删除试卷。
5)试题类
试题类包含的属性主要有:
试题编号、题目内容、A选项、B选项、C选项、D选项、试题答案。
试题类的方法主要有添加、删除和更新。
6)考生成绩类
考生成绩包括考试成绩记录序号、科目序号、学生学号、试卷号、考试开始时间、考试结束时间、分数。
主要方法有添加成绩,删除成绩等。
2.4性能需求
1)数据精确度
本系统对于数据的精确度的要求主要体现在对学生成绩的统计,学生成绩不能为负,且大小在0到卷面总成绩之间。
登陆的用户名字要区分大小写等。
2)时间特性
系统响应时间较快,为用户直观所能接受。
要保证在有2万人同时在线考试时,保持系统的运行正常本系统不是实时性系统,对时间的要求不是特别高。
3)适应性
要求系统能够在较长时间内适应操作系统(Windows7)的升级,能够保持比较好的兼容性。
对于系统本身,也要求能够适应高校对于系统要求的提高,系统本身能够进行升级,可维护性好,可测
试,可扩充,可移植。
为适应网络时代发展,将来数据可以做到通过TCP/IP协议进行远程操作
2.5运行需求
1)用户界面
本系统是以网页的形式工作的,打开系统后,呈现在眼前的是一个网页,输入用户名和密码进入系统,便可以选择要进行的操作,各种操作都和数据库连接,数据库的数据保持实时性,一旦做出改动,数据库马上保存,保证不数据的完整,不丢失。
对用户友好。
用户界面的设计要遵循用户界面设计的原则,做到以人为本、尽可能减少用户记忆、保持界面的一致性。
力求设计结果应做到美观大方、直观、明了、条理清晰,实现“傻瓜型”管理——易学、易用、易管理。
2)硬件接口
需要串行接口和并行接口
3)软件接口系统:
Windows2007;
软件:
mysqlmyeclipse
要求系统软件接口良好,易于实现相接模块的连结。
4)故障处理
对于硬件故障,系统能够自动备份数据,防止由于计算机故障致使数据丢失;
对于数据库,要求在发生故障时,能够实现数据的恢复;
对于实际应用程序,要求能够判断,当用户输入一些错误信息后,系统应该能够给出相应的错误提示信息,不应该因输入错误信息而终止系统的运行。
2.6其它需求
使用性原则——最大限度地满足实际考试系统的需要;
可扩展性与可维护性——为适应将来的发展,系统应该具有良好的可扩展性和可维护性。
软件设计尽可能模块化、组件化、是应用系统可灵活配置,适应不同的情况;
安全可靠性原则——应用软件与数据库系统的设计要做到安全可靠,防止非法用户的入侵。
数据库的备份策略恰当,以防灾难性事故发生。
系统最小寿命——系统应能在无重大改动的条件下正常运行3年以上。
数据集中——要求系统用统一的数据库实现数据的完整性和实时性
3.软件设计说明书
3.1软件模块结构图
本系统主要是用于考生在线考试,根据实验的要求,把本系统划分成两大模块,分别是考生子模块、管理员子模块,具体的SC图如下所示:
根据系统要实现的功能,每个模块具体实现的具体内容如下所示:
(1)管理员子系统:
1)读入登录者输入的口令、密码,并判断读入的是否正确,若不正确则提示出错;
2)管理科目信息:
主要包括添加科目信息、删除科目记录、修改科目信息;
3)管理题库信息:
包括向题库中添加试题、删除试题、修改试题;
4)生成试卷:
选择考试科目、确定卷面总分、单选多选题目数量及分值、设定考试时间及考试有效期、确定考试人员
5)查询成绩:
管理员可以看到所有参考人员的考试成绩
6)修改密码:
管理员只能修改自己的
(2)考生子系统:
1)读入登录者输入的口令、密码,并判断读入的是否正确,如不正确则提示出错;
2)修改密码:
考生只能修改自己的密码
3)选择考试科目
4)考试答题
5)查询成绩
6)查询考试记录
3.2文件结构和全局数据
3.2.1数据库设计/外部文件描述:
包括数据库的逻辑设计和外部文件的逻辑设计
1.管理员信息表
2.考生信息表
3.考试科目表
4.考试试卷表
5.考试试题表
6.考试结果表
3.2.2数据库中各表之间的关系图
3.2.3E-R图
我们所涉及的在线测试系统E-R图如下图所示:
M2
N3
N11
N4M4
N5
N21
1N6
M5M2
1
1M6N1
在线测试系统E-R图
3.3模块描述
3.3.1管理员管理科目模块描述
1)功能:
管理员登录后,可以对考试科目进行管理,添加考试可以考试的科目、删除考试科目、编辑考试科目信息
2)接口:
由管理员模块调用此模块
3)数据:
数据有科目序号、科目名称
4)处理:
管理员管理科目的模块的流程处理,如图3-1所示
3.3.2管理员管理题库模块描述
1)功能:
管理员登录后,可以对题库进行管理,即可以向题库中添加试题,也可以从题库中删除试题,也可以编辑考试试题
2)接口:
由管理员模块调用此模块
3)数据:
试题编号、所属科目序号、题目类型、题目内容、A选项、B选项、C选项、D选项、试题答案、试题是否被选择
4)处理:
管理员管理科目的模块的流程处理,如图3-2所示
3.3.3管理员生成试卷模块描述
1)功能:
管理员登录后,可以生成试卷,
2)接口:
由管理员模块调用此模块,调用此模块的有考试答题模块
3)数据:
试卷编号、试卷科目、试卷总分、单选题数量、单选题分值、多选题个数、多选题分值、考试时间、考试有效期的开始时间、考试有效期的结束时间
4)处理:
管理员生成试卷的模块的流程处理,如图3-3所示
3.3.4管理员管理考考生模块描述
1)功能:
管理员登录后,可以对考生信息进行管理,添加考生、删除考生、编辑考生信息等
2)接口:
由管理员模块调用此模块,用到此模块的有登录模块
3)数据:
考生学号,考生准考证号,考生姓名,考生密码,考生权利(是否可以参加考试)
4)处理:
管理员管理考生的模块的流程处理,如图3-1所示
3.3.5管理员查询考生考试成绩模块描述
1)功能:
管理员登录后,可以查看已参加考试的考生的成绩
2)接口:
由主模块调用此模块,用到此模块的有学生查询自己的成绩模块
3)数据:
记录序号、科目序号、学生学号、试卷号、考试开始时间、考试结束时间、分数
4)处理:
管理员点击“查询成绩后”,即可查看所有考生考试的成绩
3.3.6考生查询考试成绩模块描述
1)功能:
考生登录后,可以查看自己已参加考试的成绩
2)接口:
由考生模块调用此模块,用到此模块的有管理员查询考生的成绩模块
3)数据:
记录序号、科目序号、学生学号、试卷号、考试开始时间、考试结束时间、分数
4)处理:
考生点击“查询成绩”后,即可查看自己已参加考试的考试的成绩
3.3.7考生查询考试记录模块描述
1)功能:
考生登录后,可以查看自己已参加考试的考试记录
2)接口:
由考生模块调用此模块
3)数据:
录序号、试题号、考试科目号、考试答案、用户答案、试卷号
4)处理:
考生点击“查询考试记录”后,即可查看自己已参加考试的考试记录
4.软件测试报告
4.1测试范围
测试目的:
虽然软件在开发过程中使用了很多保证软件质量的方法和技术,但开发出的软件还是会隐藏许多的
错误和缺陷,规模大、复杂性高的软件更是如此。
所以,严格的软件测试对于保证软件质量具有重要的作用。
软件测试的根本目的是尽早的、尽可能多的发现缺陷,能够使系统高效、低错率的运行。
测试范围:
对于本系统的测试主要是针对用户登录(包括管理员、考生)、管理员管理科目(是否可以添加、
删除、更新科目信息)、管理员管理题库(是否可以向题库中添加试题、是否可以删除试题、编辑试题)、
管理员管理考生信息(是否可以向考生表中添加考生、是否可以删除删除考生、编辑考生信息)等等。
可以使用白盒测试和黑盒测试,等测试方法设计测试用例。
主要步骤:
测试过程按4个步骤进行,即单元测试、集成测试、确认测试和系统测试及发版测试。
4.2测试计划
软件测试不只是最后对系统进行功能测试即可,而是我们在开发整个系统的过程中,一直都要进行软件测试。
第一,在编写代码的阶段,没编写完一个模块的代码就应该进行相应的模块测试;第二,在编写完整个系统之后要进行系统集成测试和用户界面测试;第三,最后要进行beta测试
4.2.1测试阶段
1)第一阶段:
与编码同步进行单元测试,主要进行白盒测试,代码覆盖率要求达到100%,主要是对函数的逻辑验证
2)第二阶段:
集成测试,对软件设计报告中划分的模块进行功能测试,主要包括系统对管理员模块和考生考试模块功能的测试,例如管理员和考生能否登录、考生是否可以考试、管理员是否可以查看学生的成绩等进行测试;
3)第三阶段:
界面测试,这个阶段主要是测试系统的易用性和美观性,应该做到只要登录该系统的人就可以知道该怎么使用该软件,界面一定要友好;
4)第四阶段:
回归测试,此阶段是针对前两个阶段作的修改,进行重新测试,检验修改是否影响了系统的其它部分;
5)最后一个阶段:
Beta测试,交予其它非开发人员进行黑盒测试,确认完成了需求说明书中的所有功能;
4.2.2测试进度:
测试模块名称
测试顺序
先序完成的测试
测试日程安排
系统登录测试
按各种登录方式顺序测试
无
2013.06.06上午
管理员添加科目模块
按输入科目序号顺序测试
系统登录测试
2013.06.06上午
删除科目信息模块
无
系统登录测试
2013.06.06上午
编辑科目模块
无
系统登录测试
2013.06.06上午
管理员添加试题
按试题序号测试
系统登录测试
2013.06.06上午
删除试题模块
五
系统登录测试
2013.06.06下午
管理员生成试卷模块
无
系统登录测试、管理员管理科目题库测试
2013.06.06下午
考生考试模块
无
管理员生成试卷模块测试、科目管理测试、试题管理模块
2013.06.06晚上
管理员查询成绩模块
考生考试先后顺序
考生考试模块
2013.06.06下午
管理员添加考生模块
按学号先后顺序测试
系统登录测试
2013.06.06下午
删除考生模块
无
系统登录测试
2013.06.06下午
编辑考生信息模块
五
系统登录测试
2013.06.06晚上
考生选择考试科目模块
无
管理员生成试卷模块测试、科目管理测试
2013.06.06晚上
考生查询成绩模块
无
考试考试模块
2013.06.06晚上
考生查询考试记录模块
无
考生考试模块
2013.06.06晚上
1.1测试项目说明
1.1.1管理员和考生登录模块测试
1)测试目的:
测试系统的登录是否正确、合法,对于合法的用户是否能够执行转入正确的界面,对于非法的用户能否进行正确的处理。
2)测试方法和测试软件:
以系统管理员信息表中某个用户信息登录系统和非管理员信息表中的任意数据来登录系统,分别用白盒测试中的逻辑覆盖进行测试。
以考生信息表中某个用户信息登录系统和考生信息表中的任意数据来登录系统,分别用白盒测试中的逻辑覆盖进行测试。
3)测试用例
测试用例1:
(管理员)
账号:
huangfeng;密码:
hah
预测结果:
登录成功
测试用例2:
(管理员)
用户名:
12(没有相关的用户);密码:
123456
预测结果:
输入的账号或密码错误,请重新输入
测试用例3:
(普通考生)
账号:
haungfeng;密码:
haungfen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 课程设计 在线 考试 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)