在线考试系统毕业设计

在线考试系统毕业设计
在线考试系统毕业设计

第 1 章考试系统概述

计算机考试系统的研究意义传统的基于纸和笔的考试老师要花费大量的时间和精力出题、改卷、统计分数等,存在诸多弊端:工作量大、周期长、反馈能力弱、人为的因素影响考试成绩。随着高校扩招和各类考试自动化出卷批改的要求,迫切需要一种高效、快捷、科学的考试方式。随着计算机技术与网络技术的不断发展,利用计算机网络技术实现的计算机网上考试取代传统的手工考试成为一种趋势。

利用计算机对数据库的并发存取功能和网络传输特性,实现高效、准确和科学的网上考试将成为现代教育方式中的一种重要手段。它的优点主要体现在以下几个方面:

1. 出卷方便快捷。通过现成的题库系统,只要输入考卷的难度级别、试卷的题型题量等约束条件,软件会自动生成符合要求的试卷,简便、快捷、公平;

2. 阅卷准确快速。通过计算机阅卷,可以大大减轻教师阅卷的工作量,提高教师的工作效率,同时提高阅卷的准确性;

3. 成绩分析统计科学直观。成绩分析统计由计算机自动完成,可以方便地统计及格率、优秀率和每题的得分情况等。

计算机考试方式的优越性较之传统方式,既灵活方便,又高效可靠,还能及时反馈教学情况,减少诸多中间环节,提高教学效率[1]。

我校有一万多学生,每个学期都要组织大规模的考试,耗费老师大量的时间和精力,如果能够把本课题的考试系统应用到教学实践,一定能够节省很多的时间和精力,提高阅卷效率和正确率。

计算机考试系统国内外研究现状

计算机考试系统指的是由计算机软件来辅助测试,计算机辅助测试简称

CAT。60年代初CAT起源于美国,经过40多年的发展,已经在国内外得到了广泛应用。

1.2.1 国内外在用的考试系统国外有许多专门的考试机构采用计算机辅助测试对考试对

象进行考核,比较

着名的有美国Sylvan Learning System Inc,它在全世界一百多个国家和地区有数千个考试中心,提供近百个不同类型,一千多种考试。国内也有许多考试采用了计算机考试系统。

年开始TOEFL 考试在中国采用计算机考试模式[1];

2. 人事部组织的专业人员计算机应用能力考试;

3. 微软认证、Cisco 认证等;

4. 全国范围内的“全国计算机等级考试” ,“ NIT 考试”都采用计算机考试模

式;

5. 浙江省大学生计算机一级等级考试全部采用计算机考试,二级等级考试的部分内容采用了计算机考试;

6. 还有很多大学和科研机构采用了自主研发的考试系统,例如浙江大学、浙江师范大学等院校;

7. 交通管理部门组织的驾驶员理论考试。以上的考试系统大多比较完善,但是一些计算机基础考试系统还有一些不足,比如试题的实用性程度不高;为了方便计算机批改,操作题比较死板;批卷的智能化有待提高。

1.2.2 考试系统分类

以题库构成为标准可以把计算机考试系统分为三种:1.不以题库为基础的考试,试卷以单份为主,多用于心理测验和调查研究;2.题库由试卷库构成,试卷库指多份试卷,随机抽取一份给学生考试;3.题库由试题库构成,试题库指海量试题,海量试题按照一定组卷策略组卷[2]。

对计算机辅助测试系统的分类还有很多方法。按试卷是否基于题库可分为基于题库的考试系统和非基于题库的考试系统;按题量是否定长可分为定长和不定长的考试系统;按采用的测试理论可分为基于经典测试理论和基于项目反应理论的考试系统;按是否是自适应考试可分为传统的和自适应的考试系统,自适应组卷指依靠大型题库,自行适应被测试人员水平,灵活实施测试难度。

1.2.3 组卷算法分类和进展[3][4]

组卷算法的好坏直接关系到试卷的成卷质量,是考试系统的一个研究重点。试题库组卷的计算机考试系统根据组卷算法的不同可以分为以下几种:

1. 随机组卷,这是最低级的组卷算法,随机地从试题库中抽取一定数量的试题组成试卷,对抽取的题目没有任何约束条件[5]。

2. 多重目标约束组卷,试题设置题号、难度、分值、重要性、知识点等属性值,然后根据多种属性值的约束条件组卷。可以使用深度优先或者广度优先算法搜索试题。该组卷算法较之于随机组卷算法有很大进步,生成试卷的质量比较高。

3. 基于遗传算法的组卷算法,遗传算法是一种模拟大自然生物进化过程的计

算模型。遗传算法的群体搜索策略为多目标优化提供了非常合适的解决方案[6]。

4. 遗传算法的改进,例如判断优化目标个体优劣的基于偏好的多目标调和遗传算法[7]。

5. 多种人工智能算法的组合,例如遗传算法与模拟退火算法的结合[8],遗传算法与蚂蚁算法的结合[9]。

6. 各类算法的扩展,例如基于学生BOSM 模型的智能组卷算法[10];分段随机抽选法对随机组卷的改进[11];增加信息反馈提高试题属性质量,将学生答题的情况反馈给试题,修正试题的难度等[12]。

组卷算法的发展方向是在海量试题库的基础上运用人工智能生成试卷。

1.2.4 考试系统的实现模式分类

从逻辑上来说,一个典型网络应用由三部分组成:表示逻辑层、业务逻辑层和数据逻辑层。其中表示逻辑层直接面向用户,主要完成应用的前端界面处理,即人机界面处理;业务逻辑层实现应用的业务规则处理,决定程序的流程;数据逻辑层是应用中对数据进行管理的部分,主要完成应用对数据的存取、更新、管理等工作以及访问数据的安全性、完整性、一致性。

计算机考试系统有两种主要模式:客户机/服务器模式(Client/Server)和浏览器/服务器(Browser/Server)模式。

C/S模式于1989年由麻省剑桥的ForesterResearc首先提出[13],是客户进程从服务进程中请求服务的一种计算方式,属于协同处理的范畴。

根据表示层、应用层、数据层分布在几层,C/S模式可以分成两层C/S模式和三层C/S模式。两层模式将一个考试系统的三个逻辑层分布在Client端和Server端, Client和Server通过网络联结起来。通常Client端和Serve端分别运行在不同的计算机中,Client端一般安装于普通计算机,Server端一般安装在功能更强的服务器。将业务逻辑独立出来,就产生了三层C/S模式。在三层C/S模式中,表示逻辑位置不变,仍放在Client端,业务逻辑则放在一个独立的中间服务器上,数据逻辑在另一个服务器上[14]。

随着网络的发展,出现了B/S模式。B/S模式在本质上也是一种C/S结构,它由传统的C/S结构发展而来,是一种在Web上的应用。与传统C/S结构不同的是,B/S的表示层为Web浏览器,功能层为Web服务器,使用ASP、JSP或PHP等技术。

相对C/S结构而言,B/S结构的优点有:简化客户端;易于维护;易于升级;用户操作简便易学;便于网上发布消息。但是B/S结构也有一些缺点:1?交互性弱。C/S模式的客户端是完整的应用程序,在出错提示、帮助等方面都有强大的功能并且可以在子程序间自由切换。B/S模式虽然由JavaScript、VBScript提供了一定的交互能力,但和C/S相比功能就少多了;

2?安全性低。由于采用开放的TCP/IP协议和解释型的脚本语言编程,数据的流向不固定,容易被截取破译,其安全性有限;

3?数据处理能力弱。B/S模式的数据处理多用解释脚本语言实现,无法开发出利用可视化工具开发的功能强大的编译型应用程序。

C/S和B/S模式各有优缺点,适合不同的场合。一般而言,B/S模式的缺点就是

C/S模式的优点,而B/S模式的优点就是C/S模式的缺点。C/S模式相比而言有以下优点:

1. 保密性好。可以设置专门的加密函数,针对不同的数据设置不同的加密方式和加密等级。而B/S模式采用开放的TCP/IP协议和解释型的脚本语言编程,安全性较低;

2. 数据处理能力强。可以连接多种关系数据库;

3. 交互性强。相对浏览器而言可以生成更加复杂的图形界面和允许更多的用户交互方式[15];

4?可控性好。服务端可以控制连接的时间、连接的IP、连接用户等信息,适合安全性要求高的应用;

5.数据分析统计功能强。可以批改多种题型的试题,并且进行复杂的数据分析和统计。

本课题的网上考试系统是使用Java语言实现的二层C/S模式系统。根据使用对象和实现功能的不同,客户端分为三种类型:学生使用的客户端,教师使用的客户端和管理员使用的客户端。

1.2.6 考试系统的开发平台分类考试系统由应用程序和数据库组成,开发程序主要有微

软的Visual Basic、

Visual C++、Visual FoxPro(VFP)和PowerBuilder、Delphi、JBuilder 等,数据库主要有本地数据库Access和网络数据库SQL Serve、MYSQL、ORACLE等。从理论上说开发平台可以由任何一种开发程序和数据库组成,也就是任意两两组合,但是综合考虑系统需求、软件的兼容性等方面,往往有比较合适的组合。

对于数据库的选择,可以考虑数据存取速度、容量和网络存取等要求。如果考试系统是单机版的,那么可以选择Access数据库;如果数据库数据的容量在几十万行之内,并且要求网络存取,那么可以选择SQL Server;如果数据库中的数据非常大,那么从安全性和速度等方面考虑采用ORACLE 是最好的选择。

如果数据库采用SQL Server,有很多开发程序支持它,分别使用不同的技术连接和管理数据库。

+SQL Server,DAOs方法、ODBC API或VBSQL方法管理数据库;

+SQL Server,开放数据库连接Open Database Connectivity(ODBC)实现数据库访问;

+SQL Server,数据库引擎BorlandDatabaseEngine实现连接;

+SQL Server,SQL Pass Throug(SPT)技术直接访问ODBC 函数,并把SQL 语句发送给服务器执行;

+SQL Server,JDBC 实现数据库访问。

1.2.7 计算机考试系统的发展趋势[16] 计算机考试系统朝着智能化的方向发展,例如组卷的智能化,批卷的智能化等。另外考试系统对学生答题情况的统计和成绩分析的要求也越来越高,据此掌握教学质量。出于考试的严肃性,网上考试系统对安全性、容错性和保密性的要求也越来越高。

J2SE 实现网上考试系统现在已经有了多种实用的考试系统,应用于各种类型的考试,那么为什么要开发本网上考试系统呢,主要出于以下几点考虑:

1. 虽然各种类型考试系统研究很多,但是和操作系统无关或者支持多操作系统的考试系统的研究还比较少。Java语言和平台无关,可以使用JBuilder开发多平台下的J2SE 程序。

2. 商品化软件一般只能获得考试系统的学生端,出于系统保密的原因,有时甚至不能批改试卷,例如省计算机一级考试下发到学校的是考试客户端,考试结束后学生答题数据包统一上交批改。但是教师希望批改后统计和分析学生成绩,并且以直观的方式显示,从而发现问题改进教学。

3. 自主控制考试题目,可以用于单元学习后的单元测试。

4. 自主扩充修改题库,随时增加修改题目。现有的考试系统不能完全符合我校定制

的需求。我校的老师对考试系统有特

定的要求,例如可以在,多种方式分析成绩等。

结合教学和研究的需要,本人开发了基于J2SE的网上考试系统。本考试系统采用C/S模式的软件体系结构,客户端使用Java集成开发环境JBuilder开发调试生成,数据库使用Microsoft SQL Server2000技术,使用JDBC技术连接数据库。

1.3.1 J2SE 概念

本课题中的考试系统是基于J2SE的C/S模式考试系统,具体使用Java的开发平台JBuilder实现。JBuilder的集成开发环境IDE广受业界赞誉,其可视化集成开发环境

包括文本编辑器、工程创建工具、对象浏览器和调试器等。JBuilder 集成了软件开发、

调试、部署、管理、版本控制等工具,提高了项目开发速度[17]。

Java的开发平台称之为JDK,运行平台称之为JRE。为了对Java技术的使用方向和范围进行区分,避免开发中关注不必要的技术特性,Sun 公司将Java 平台划分成3 个版本:

(Java2 Platform Standard Edition :核心用于桌面系统的Java2平台标准版,主要用于桌面应用软件的编程。

(Java2 Platform Enterprise Edition):针对企业级软件开发和应用的Java2平台企业版。用于创建服务器应用程序和服务,主要用于分布式的网络程序的开发,如电子商务网站和ERP 系统。

(Java2 Platform Micro Edition):适用于嵌入式系统开发的Java2平台微型版,如手机和PDA的编程。开发环境主要包括:Java Virtual Mach in e(JVM)、核心API、集成API、用户界面工具、部署技术、部署工具及API[18]。

1.3.2 J2SE 特点

J2SE主要用于实现桌面应用软件开发,其实现的系统有以下特点:

1?支持多平台:Java是一种与系统平台无关的语言。在J2SE的开发模式下,使用JBuilder的Native Executable Builder工具可以生成在不同的系统和处理器平台下执行的程序,目前支持的平台有Dos、Windows、Linux、Solaris和Mac OS。

2. 分布性:Java带有强大有关网络协议族的库,使Java网络编程高效易用。

3. 面向对象:设计重点放在对象及对象的接口上。

4. 简单性:Java的语法比C++简单,只能在一个类中定义公用和静态的变量来实现一个全局变量,不支持goto语句,自动管理内存并且进行垃圾收集。

5. 可靠性和安全性:Java可以用来构建一定程度防病毒和防攻击的系统。

6. 其余特性:多线程、动态性、解释、结构中立性、可移植性、鲁棒性。

第 2 章需求分析和软件估计

软件开发概述

本课题“基于J2SE 的网上考试系统的设计与实现”在软件工程思想指导下开发。软件工程Software Engineering 指应用计算机科学理论和技术以及工程管理原则和方法,按照预算和进度,实现满足用户要求的软件产品的定义、开发、发布和维护。在软件开发过程中遵循模块化、信息隐藏、局部化、一致性、构造性和集成组装性等原则。开发过程中实施有效的工程管理,例如配置管理、质量保证等。

2.1.1 软件开发方法软件开发方法指使用定义好的技术和表示符号来组织软件生产过程

的方法。

经过多年的软件工程实践,有多种软件开发方法获得了推广。

1. 结构化方法:由和提出,认为软件系统均以一定的结构形式存在,由若干子系统构成,子系统本身又是一个系统,软件实现过程有结构化分析SA、结构化设计SD和结构化编程SP。实现结构化方法的技术有面向数据流图的方法、Jackson方法、LCP方法等[19]。

2. 原型化方法:迅速开发出一个可以让用户看得见、摸得着的精简系统,适用于需求反复修改的情况。原型化开发的优点有[20][21]:有助于确定系统的可行性;原型法修改比最终软件修改快且代价小;容易定义需求不确定的[22]。由于用户在实际软件方面的介入,开发组和用户有更高层次的交流和沟通。

3. 净室方法:测试之前程序设计开发组就开发出几乎无错的系统。

4. 形式化Formal Methods方法:以严密的数学证明为基础,包括形式化分析Formal An alysis、形式化设计Formal Desig n 和翻译Tran slation。

5. 面向对象方法:认为客观世界是由对象组成的,不同对象间的相互作用和联系构成不同的系统,以对象为中心来构造模型、组织系统。

6. 基于组件的软件方法:应用逻辑和实现分离,提供标准接口和框架,使软件开发变成组件的组合。模型有Sun公司的EJB、微软公司的COM+/DCOM、OMG 的CORBA/ORB [20]。

7. 敏捷软件开发:着眼于快速交付高质量软件,并使客户满意,包括极限编

程Extreme Program min g(XP)、动态系统开发方法Dyn amic System Developme nt Method、SCRUM、Crystal 和Lean 等。敏捷软件开发有四个核心价值:沟通Communication、反馈Feedback 勇气Courage和简单Simplicity [14]。

选择何种软件开发方法需综合考虑各种因素。首先考虑软件项目的特点;还有支持环境,如若没有相应的快速原型工具,就不可能采用快速原型方法;以及技术支持,如软件工程规范、软件工程管理经验、软件人员的技术基础和经验等。

软件的开发可以选用开发方法中的一种,也可以选用几种方法的结合。考虑到本考试系统由JBuilder 开发,使用面向对象的开发语言Java 语言实现,所以本系统主要采用了面向对象的软件开发方法。在开发的部分阶段,还使用了原型化方法,这两种方法的结合既具有稳定性好、可复用性和可维护性的优点又方便了系统开发者和最终用户的沟

相关主题
相关文档
最新文档