在线考试系统毕业设计_第1页
在线考试系统毕业设计_第2页
在线考试系统毕业设计_第3页
在线考试系统毕业设计_第4页
在线考试系统毕业设计_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 1 章 考试系统概述1.1计算机考试系统的研究意义传统的基于纸和笔的考试老师要花费大量的时间和精力出题、改卷、统计分数等, 存在诸多弊端:工作量大、周期长、反馈能力弱、人为的因素影响考试成绩。随着高校 扩招和各类考试自动化出卷批改的要求,迫切需要一种高效、快捷、科学的考试方式。 随着计算机技术与网络技术的不断发展,利用计算机网络技术实现的计算机网上考试取 代传统的手工考试成为一种趋势。利用计算机对数据库的并发存取功能和网络传输特性,实现高效、准确和科学的网 上考试将成为现代教育方式中的一种重要手段。它的优点主要体现在以下几个方面:1.出卷方便快捷。通过现成的题库系统,只要输入考卷的难度级别

2、、试卷的题型题量 等约束条件,软件会自动生成符合要求的试卷,简便、快捷、公平;2.阅卷准确快速。通过计算机阅卷,可以大大减轻教师阅卷的工作量,提高教师的工 作效率,同时提高阅卷的准确性;3.成绩分析统计科学直观。 成绩分析统计由计算机自动完成, 可以方便地统计及格率、优秀率和每题的得分情况等。计算机考试方式的优越性较之传统方式,既灵活方便,又高效可靠,还能及时反馈 教学情况,减少诸多中间环节,提高教学效率1。我校有一万多学生,每个学期都要组织大规模的考试,耗费老师大量的时间和精力, 如果能够把本课题的考试系统应用到教学实践,一定能够节省很多的时间和精力,提高 阅卷效率和正确率。1.2计算机考试

3、系统国内外研究现状计算机考试系统指的是由计算机软件来辅助测试,计算机辅助测试简称CAT。60 年代初 CAT 起源于美国,经过 40 多年的发展,已经在国内外得到了广泛应用。1.2.1 国内外在用的考试系统国外有许多专门的考试机构采用计算机辅助测试对考试对象进行考核,比较着名的有美国 Sylvan Learning System Inc 它在全世界一百多个国家和地区有数千个考试中心, 提供近百个不同类型,一千多种考试。国内也有许多考试采用了计算机考试系统。1.2000 年开始 TOEFL 考试在中国采用计算机考试模式1;2.人事部组织的专业人员计算机应用能力考试;3.微软认证、 Cisco 认

4、证等;4.全国范围内的“全国计算机等级考试” ,“NIT 考试”都采用计算机考试模式;5.浙江省大学生计算机一级等级考试全部采用计算机考试, 二级等级考试的部分内容 采用了计算机考试;6.还有很多大学和科研机构采用了自主研发的考试系统,例如浙江大学、浙江师范大 学等院校;7.交通管理部门组织的驾驶员理论考试。以上的考试系统大多比较完善,但是一些计算机基础考试系统还有一些不足,比如 试题的实用性程度不高;为了方便计算机批改,操作题比较死板;批卷的智能化有待提 高。1.2.2 考试系统分类以题库构成为标准可以把计算机考试系统分为三种: 1.不以题库为基础的考试, 试卷 以单份为主, 多用于心理测验

5、和调查研究; 2.题库由试卷库构成, 试卷库指多份试卷,随 机抽取一份给学生考试; 3.题库由试题库构成, 试题库指海量试题, 海量试题按照一定组 卷策略组卷2。对计算机辅助测试系统的分类还有很多方法。按试卷是否基于题库可分为基于题库 的考试系统和非基于题库的考试系统; 按题量是否定长可分为定长和不定长的考试系统; 按采用的测试理论可分为基于经典测试理论和基于项目反应理论的考试系统;按是否是 自适应考试可分为传统的和自适应的考试系统,自适应组卷指依靠大型题库,自行适应 被测试人员水平,灵活实施测试难度。1.2.3 组卷算法分类和进展34组卷算法的好坏直接关系到试卷的成卷质量,是考试系统的一个研

6、究重点。试题库 组卷的计算机考试系统根据组卷算法的不同可以分为以下几种:1.随机组卷, 这是最低级的组卷算法,随机地从试题库中抽取一定数量的试题组成试 卷,对抽取的题目没有任何约束条件5。2.多重目标约束组卷,试题设置题号、难度、分值、重要性、知识点等属性值,然后 根据多种属性值的约束条件组卷。可以使用深度优先或者广度优先算法搜索试题。该组 卷算法较之于随机组卷算法有很大进步,生成试卷的质量比较高。3.基于遗传算法的组卷算法,遗传算法是一种模拟大自然生物进化过程的计算模型。遗传算法的群体搜索策略为多目标优化提供了非常合适的解决方案6。4.遗传算法的改进,例如判断优化目标个体优劣的基于偏好的多目

7、标调和遗传算法7。o5.多种人工智能算法的组合,例如遗传算法与模拟退火算法的结合8,遗传算法与蚂 蚁算法的结合9。6各类算法的扩展,例如基于学生 BOSM 模型的智能组卷算法10;分段随机抽选法对 随机组卷的改进11;增加信息反馈提高试题属性质量,将学生答题的情况反馈给试题, 修正试题的难度等12。组卷算法的发展方向是在海量试题库的基础上运用人工智能生成试卷。1.2.4 考试系统的实现模式分类从逻辑上来说, 一个典型网络应用由三部分组成: 表示逻辑层、业务逻辑层和数据 逻辑层。其中表示逻辑层直接面向用户,主要完成应用的前端界面处理,即人机界面处 理;业务逻辑层实现应用的业务规则处理,决定程序的

8、流程;数据逻辑层是应用中对数 据进行管理的部分,主要完成应用对数据的存取、更新、管理等工作以及访问数据的安 全性、完整性、一致性。计算机考试系统有两种主要模式:客户机/服务器模式(Client/Server)和浏览器/服 务器(Browser/Server)模式。C/S模式于 1989年由麻省剑桥的 ForesterResearc首先提出13, 是客户进程从服务进程 中请求服务的一种计算方式,属于协同处理的范畴。根据表示层、应用层、数据层分布在几层,C/S 模式可以分成两层 C/S 模式和三层 C/S 模式。两层模式将一个考试系统的三个逻辑层分布在Client 端和 Server 端, Cli

9、ent 和 Server通过网络联结起来。通常 Client 端和 Server 端分别运行在不同的计算机中,Client 端一般安 装于普通计算机,Server 端 一般安装在功能更强的服务器。将业务逻辑独立出来,就产生 了三层 C/S 模式。在三层 C/S 模式中,表示逻辑位置不变,仍放在 Client 端,业务逻辑则放 在一个独立的中间服务器上,数据逻辑在另一个服务器上14。随着网络的发展, 出现了 B/S 模式。 B/S 模式在本质上也是一种 C/S 结构, 它由传统的 C/S结构发展而来,是一种在 Web 上的应用。与传统 C/S 结构不同的是,B/S 的表示层为 Web 浏览器,功

10、能层为 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 模式的数据

11、处理多用解释脚本语言实现,无法开发出利用可 视化工具开发的功能强大的编译型应用程序。C/S 和 B/S 模式各有优缺点,适合不同的场合。一般而言, B/S 模式的缺点就是 C/S 模式的优点,而 B/S 模式的优点就是 C/S 模式的缺点。C/S 模式相比而言有以下优点:1. 保密性好。可以设置专门的加密函数, 针对不同的数据设置不同的加密方式和加密 等级。而 B/S 模式采用开放的 TCP/IP 协议和解释型的脚本语言编程,安全性较低;2. 数据处理能力强。可以连接多种关系数据库;3. 交互性强。 相对浏览器而言可以生成更加复杂的图形界面和允许更多的用户交互方式15;4可控性好。服务端可以控

12、制连接的时间、连接的 IP、连接用户等信息,适合安全性 要求高的应用;5.数据分析统计功能强。可以批改多种题型的试题,并且进行复杂的数据分析和统计。本课题的网上考试系统是使用 Java 语言实现的二层 C/S 模式系统。根据使用对象和 实现功能的不同,客户端分为三种类型:学生使用的客户端,教师使用的客户端和管理 员使用的客户端。1.2.6 考试系统的开发平台分类考试系统由应用程序和数据库组成, 开发程序主要有微软的Visual Basic、Visual C+、Visual FoxPro(VFP)和 PowerBuilder、Delphi、JBuilder 等,数据库主要有本地数据库 Acces

13、s和网络数据库 SQL Server、MYSQL、ORACLE 等。从理论上说开发平台可以由任何一种 开发程序和数据库组成,也就是任意两两组合,但是综合考虑系统需求、软件的兼容性 等方面,往往有比较合适的组合。对于数据库的选择,可以考虑数据存取速度、容量和网络存取等要求。如果考试系 统是单机版的,那么可以选择 Access 数据库;如果数据库数据的容量在几十万行之内, 并且要求网络存取,那么可以选择 SQL Server;如果数据库中的数据非常大,那么从安 全性和速度等方面考虑采用 ORACLE 是最好的选择。如果数据库采用 SQL Server,有很多开发程序支持它,分别使用不同的技术连接和

14、 管理数据库。1. VB+SQL Server, DAOs 方法、 ODBC API 或 VBSQL 方法管理数据库;2. VC+SQL Server,开放数据库连接 Open Database Connectivity( ODBC )实现数据库访问;3. Delphi+SQL Server,数据库引擎 BorlandDatabaseEngine 实现连接;4. VFP+SQL Server, SQL Pass Through (SPT)技术直接访问 ODBC 函数,并把 SQL 语句发送给服务器执行;5. Java+SQL Serve,r JDBC 实现数据库访问。1.2.7 计算机考试系统

15、的发展趋势16计算机考试系统朝着智能化的方向发展,例如组卷的智能化,批卷的智能化等。另 外考试系统对学生答题情况的统计和成绩分析的要求也越来越高,据此掌握教学质量。 出于考试的严肃性,网上考试系统对安全性、容错性和保密性的要求也越来越高。1.3 J2SE实现网上考试系统现在已经有了多种实用的考试系统,应用于各种类型的考试,那么为什么要开发本 网上考试系统呢,主要出于以下几点考虑:1.虽然各种类型考试系统研究很多, 但是和操作系统无关或者支持多操作系统的考试 系统的研究还比较少。Java 语言和平台无关,可以使用 JBuilder 开发多平台下的 J2SE 程 序。2. 商品化软件一般只能获得考

16、试系统的学生端, 出于系统保密的原因, 有时甚至不能批改试卷,例如省计算机一级考试下发到学校的是考试客户端,考试结束后学生答题数 据包统一上交批改。但是教师希望批改后统计和分析学生成绩,并且以直观的方式显示, 从而发现问题改进教学。3. 自主控制考试题目,可以用于单元学习后的单元测试。4. 自主扩充修改题库, 随时增加修改题目。现有的考试系统不能完全符合我校定制的需求。我校的老师对考试系统有特定的要求,例如可以在,多种方式分析成绩等。结合教学和研究的需要,本人开发了基于 J2SE 的网上考试系统。本考试系统采用C/S 模式的软件体系结构,客户端使用 Java 集成开发环境 JBuilder 开

17、发调试生成,数据 库使用 Microsoft SQL Server2000 技术,使用 JDBC 技术连接数据库。1.3.1 J2SE 概念本课题中的考试系统是基于 J2SE 的 C/S 模式考试系统,具体使用 Java 的开发平台JBuilder 实现。 JBuilder 的集成开发环境 IDE 广受业界赞誉,其可视化集成开发环境包括 文本编辑器、工程创建工具、对象浏览器和调试器等。 JBuilder 集成了软件开发、调试、 部署、管理、版本控制等工具,提高了项目开发速度17。Java 的开发平台称之为 JDK,运行平台称之为 JRE。为了对 Java 技术的使用方向和 范围进行区分,避免开

18、发中关注不必要的技术特性, Sun 公司将 Java 平台划分成 3 个版 本:1. J2SE( Java2 Platform Standard Edition):核心用于桌面系统的 Java2 平台标准版, 主要用于桌面应用软件的编程。2. J2EE( Java2 Platform Enterprise Edition :针对企业级软件开发和应用的 Java2 平台 企业版。用于创建服务器应用程序和服务,主要用于分布式的网络程序的开发,如电子 商务网站和 ERP 系统。3. J2ME(Java2 Platform Micro Editio n):适用于嵌入式系统开发的 Java2 平台微型版

19、,如手机和 PDA 的编程。开发环境主要包括:Java Virtual Machine(JVM)、核心 API、集成 API、用户界面工具、部署技术、部署工具及API18。1.3.2 J2SE 特点J2SE 主要用于实现桌面应用软件开发,其实现的系统有以下特点:1. 支持多平台: Java 是一种与系统平台无关的语言。 在 J2SE 的开发模式下, 使用 JBuilder的 Native Executable Builder 工具可以生成在不同的系统和处理器平台下执行的 程序,目前支持的平台有 Dos、Windows、Linux、Solaris 和 Mac OS。2. 分布性:Java 带有强

20、大有关网络协议族的库,使 Java 网络编程高效易用。3. 面向对象:设计重点放在对象及对象的接口上。4. 简单性:Java 的语法比 C+简单,只能在一个类中定义公用和静态的变量来实现 一个全局变量,不支持 goto 语句,自动管理内存并且进行垃圾收集。5. 可靠性和安全性:Java 可以用来构建一定程度防病毒和防攻击的系统。6. 其余特性:多线程、动态性、解释、结构中立性、可移植性、鲁棒性。第 2 章 需求分析和软件估计2.1软件开发概述本课题“基于 J2SE 的网上考试系统的设计与实现”在软件工程思想指导下开发。软 件工程 Software Engineering 指应用计算机科学理论和

21、技术以及工程管理原则和方法,按 照预算和进度,实现满足用户要求的软件产品的定义、开发、发布和维护。在软件开发 过程中遵循模块化、信息隐藏、局部化、一致性、构造性和集成组装性等原则。开发过 程中实施有效的工程管理,例如配置管理、质量保证等。2.1.1 软件开发方法软件开发方法指使用定义好的技术和表示符号来组织软件生产过程的方法。经过多 年的软件工程实践,有多种软件开发方法获得了推广。1. 结构化方法:,认为软件系统均以一定的结构形式存在,由若干子系统构成,子系统本身又是一个系统,软件实现过程有结构化分析 SA、结构化设计 SD 和结构化编程 SP。 实现结构化方法的技术有面向数据流图的方法、Ja

22、ckson 方法、LCP 方法等19。2. 原型化方法: 迅速开发出一个可以让用户看得见、 摸得着的精简系统, 适用于需求 反复修改的情况。原型化开发的优点有2021:有助于确定系统的可行性;原型法修改比 最终软件修改快且代价小; 容易定义需求不确定的22。由于用户在实际软件方面的介入, 开发组和用户有更高层次的交流和沟通。3. 净室方法:测试之前程序设计开发组就开发出几乎无错的系统。4. 形式化 Formal Methods 方法:以严密的数学证明为基础,包括形式化分析 FormalAnalysis、形式化设计 Formal Design 和翻译 Translation。5. 面向对象方法:

23、认为客观世界是由对象组成的, 不同对象间的相互作用和联系构成 不同的系统,以对象为中心来构造模型、组织系统。6. 基于组件的软件方法: 应用逻辑和实现分离, 提供标准接口和框架, 使软件开发变 成组件的组合。 模型有 Sun 公司的 EJB、 微软公司的 COM+/DCOM 、 OMG 的 CORBA/ORB20。7. 敏捷软件开发:着眼于快速交付高质量软件, 并使客户满意, 包括极限编程 ExtremeProgramming(XP)、动态系统开发方法 Dynamic System Development Method、SCRUM、Crystal 和 Lean 等。敏捷软件开发有四个核心价值:

24、 沟通 Communication、反馈 Feedback 勇气 Courage 和简单 Simplicity14。选择何种软件开发方法需综合考虑各种因素。首先考虑软件项目的特点;还有支持 环境,如若没有相应的快速原型工具,就不可能采用快速原型方法;以及技术支持,如 软件工程规范、软件工程管理经验、软件人员的技术基础和经验等。 软件的开发可以选用开发方法中的一种,也可以选用几种方法的结合。考虑到本考 试系统由 JBuilder 开发,使用面向对象的开发语言Java 语言实现,所以本系统主要采用 了面向对象的软件开发方法。在开发的部分阶段,还使用了原型化方法,这两种方法的 结合既具有稳定性好、可

25、复用性和可维护性的优点又方便了系统开发者和最终用户的沟 通。2.1.2 软件工程活动的阶段软件工程活动的定义是:生产一个达到工程目标并且满足用户需求的软件产品所需 要的步骤,主要包括需求分析、设计、实现、确认以及维护等活动。随着软件工程思想 的普及,大家认识到软件开发必须以软件工程活动中定义的步骤指导软件开发,采用工 程的概念、原理、技术和方法开发和维护软件,提高软件开发的效率,减少软件开发和 维护中的问题。系统开发的过程一般包括: 1.需求阶段建立系统模型, 是软件开发人员和客户之间合 同约定的基础,是下一步设计阶段的基本输入; 2.设计阶段定义实现需求所需的软件结构; 3.实现阶段将软件设

26、计转换为代码; 4.验证是一项评估活动,贯穿于整个开发过程; 5.维 护指软件发布之后所进行的修改,包括对发现错误的修正,环境变化后进行的必要调整等23。软件开发生存周期模型用来描述软件从项目需求定义开始到开发成功投入使用一直 到维护,软件生命周期结束。随着软件工程学的发展,相继提出了演化模型、螺旋模型、 快速原型化模型、快速应用开发模型、增量模型、喷泉模型等。本考试系统采用面向对象的软件开发方法,开发步骤遵循面向对象软件开发的四个 阶段:1. 面向对象分析 Object-Oriented Analysis(OOA)。系统分析员对将要开发的系统的定 义和分析,主要描述工具是用例图,这个阶段的目

27、的是建立系统提出问题领域的模型。 这一阶段的模型产品是用例图。2. 面向对象设计 Object-Oriented Design(OOD)。将 OOA 的结果转化为适合于程序设计语言的具体描述,主要描述工具是各类静态和动态模型图,这个阶段的目的是设计实 现的类和方法,以及类之间的联系,以满足系统的功能要求和质量要求。OOA 的重点是做什么,而 OOD 的重点是如何做。这一阶段的模型产品是静态图和动态图。3.面向对象程序设计 Object-Orie nted Programmi ng(OOP)。程序设计人员根据 OOD 得到的模型,采用面向对象程序设计语言实现程序,该网上考试系统使用JBuilde

28、r 开发。这一阶段的产品是类文件4.面向对象测试 Object-Orie nted Test in g(OOT)。类的测试和类间测试等,和传统测试的区别是可以从静态和动态模型图获取信息辅助测试。2.2需求分析的目标和内容需求分析回答系统必须“做什么”的问题,是软件开发的第一个阶段,也是非常重 要的阶段,直接关系到软件开发成败。2.2.1 需求分析的目标和实现阶段19在进行需求分析之前我们必须弄清楚需求分析的目标和实现目标的阶段,如表2-1所示。表 2-1 需求分析的阶段和目标阶段目标可行性研究决定是否建立一个系统需求导出和分析理解用户需要系统解决哪些问题; 引出这些问题和系统的一些相关问题;

29、提供解决这些问题和系统的基础; 决定系统应该做什么;决定系统不应该做什么;生成文档生成需求规格说明需求有效性验证验证需求有效性2.2.2 可行性研究需求分析的第一件事情就是决定是否建立一个系统,也就是进行系统的可行性分析,可以从操作可行性、技术可行性和经济可行性三个方面着手分析。操作可行性分析系统 是否符合总体目标。本考试系统有许多相对于笔试的优点,对学校的大学生计算机文化 基础考试有很大的帮助。技术可行性考虑系统是否可能在现有的技术条件、预算和时间 限制内完成,能否与已经存在的其它系统集成。经济可行性考虑本考试系统受学校教改 项目支持,投入使用后可以产生比较大的经济和社会效益。2.2.3 需

30、求收集和分析可行性研究阶段结束后,如果系统分析员认为系统可行就进入系统开发的需求收集 和分析阶段。需求收集的内容包括 1.信息需求,开发系统处理的信息的属性、内容等; 2.功能需求,开发系统必须具备的功能;3.性能需求,开发系统的技术性能指标,例如响 应时间,存储容量等;4.环境需求,运行的软硬件环境。软件工程要求软件的开发非常重视需求过程,如果需求做得比较精确不但可以使开 发人员清楚地了解用户的想法,减少开发时间,还可以更容易交付软件获得用户认可。 本系统充分运用软件工程学总结的需求收集方法来收集需求,具体需求收集的方法有:1.会谈。开发组成员和用户就开发的系统面对面地交谈, 这是收集用户需

31、求的一种重 要的方式。会谈结束后,开发小组尽快将会谈的结果整理出来,并且将整理出的会谈资 料交给用户。2.问卷调查。事先准备好问卷调查资料, 将资料发给用户方。 这种方法的好处有两个:一是问题集中和精确,二是用户回答问题的时间可以自由掌握。3.调查用户当前使用系统。 如果用户现在的操作方式是手工的, 那么收集用户手工操 作的工作流程,如果用户现在已经使用软件辅助工作,那么收集现在的软件操作的相关 表格和资料。4.用例分析。用例驱动获取需求已经成为面向对象方法的重要组成部分,是OOA 阶段的主要方法。5.使用场景获取需求。访问及观察用户的工作情况,得到一系列用户场景,并根据用 户意见修改场景。本

32、系统经过分析可以得出考生考试、教师考前准备试题、设置组卷规 则、考后批改试卷、分析统计成绩、用户管理等场景。用例和场景是相辅相成的,可以 从场景获取系统用例24。6.快速原型。快速建立一个能够展示系统关键功能的模型, 使用快速原型作为收集用 户需求的一种方法。2.3面向对象分析面向对象分析方法将客观世界中与应用有关的实体及其属性抽象为问题领域的对象 及其属性。分析人员通过对象、对象间消息传递等语言机制直接模拟问题领域的对象及 其行为。 OOD 方法为需求建模提供了直观、自然的语言支持和方法学指导,其核心思想 是寻找系统中最稳定的因素 对象。在本考试系统的需求获取阶段综合运用了多种方法,比如建立

33、快速原型、会谈、场 景分析等方法,主要使用用例分析 Use Case An alysis 获取用户需求。用例驱动25指以用例为驱动力驱动软件开发。用例驱动的方法基于面向对象技术, 即从用例出发,首先将用户需求转换为用例,使用用例描述用户需求,并根据用例的描 述和分析,使用静态图描述系统核心类, 然后进一步描述系统动态行为等。 用例驱动需 求分析之后设计、编码、测试等阶段的工作, 将用例驱动的思想与 UML 这种面向对象分 析设计语言有机结合。2.3.1 用例分析概述用例是对一组动作序列的描述,用于描述系统的功能,也就是从外部用户的角度观 察系统应支持哪些功能,帮助分析人员理解系统的行为,它是对

34、系统功能的宏观描述。在用例模型中系统是实现各种用例的“黑盒子” ,我们只关心该系统实现了哪些功能,并 不关心内部的具体实现细节。用例建模从组成系统的实际操作入手,站在使用者的角度 观察软件,密切贴近实际。主要应用在工程开发的初期需求分析阶段26。引入用例的主要目的是确定清晰地描述系统的功能要求;为系统验证打下基础;提 供从功能需求到实际类和操作的跟踪能力。要分析用例, 首先要找到用例的执行者 Actor ,在一个实际的工程项目中可以通过以 下方法发现 Actor:使用系统主要功能的人;维护、管理和维持系统的日常运行的人;系 统需要控制的硬件设备;系统需要交互的其他系统和对系统的结果感兴趣的人。

35、根据以 上的方法分析本考试系统,得出三种类型的 Actor :学生、教师和管理员。2.3.2 用例分析结果用例分析过程中通过和系统的典型用户交谈等活动,得出本考试系统的Actor 实现 以下活动:1. 学生通过客户端连接上服务器, 登陆后可以修改密码, 自动随机获取试题, 试题以 单项选择题、多项选择题和填空题等客观题为主。学生在一定的时间里面完成考试,在 考试时间内考生可以手动交卷,如果考试时间到了学生还没有手动交卷,则系统自动结 束考试强制交卷。2. 教师的活动是学生的所有活动 +制定组卷规则,设置考试参数,批改学生试题得出 每个学生的分数,查询试题,统计和分析学生成绩。3. 管理员的活动

36、是教师的所有活动 +用户管理。 三类用户的用例的活动是包容关系,教师的活动包括了学生的所有活动,管理员的活动包括了教师的活动。这样考虑的原因是本考试系统目前仅仅在学校小范围使用,这 样设置便于系统维护,如果下一步考试系统推向更广泛范围,可以缩减一部分教师和管 理员的权限。下图 2-1 是考试系统的学生的用例图,图 2-2 是教师的用例图,图 2-3 是管 理员的用例图。图 2-1 学生用例图图 2-2 教师用例图图 2-3 管理员用例图在用例图中,参与者和用例都比较简单,还需要进一步描述。参与者描述包括参与 者名称, 是否抽象参与, 对参与者的简要描述。 用例描述说明执行者与系统如何交互,该说

37、明要清晰明了, 没有二义性, 包括用例的目标、 最终任务;用例被启动的方式; Actor 和用例之间的消息流。用例描述可以分成文字和图形两种方法。1.使用文字的方法有: (1)简单文字描述; (2)模板描述,套用模板描述用例,说明用 例的名称、时间流、特殊需求、前置和后置条件; (3)表格描述,使用表格描述用户动作。 例如图 2-2 中教师设置组卷规则的用例可以进一步用文字描述:设置组卷规则用例的最 终任务是设置一次考试的试卷生成规则,得到一个由多条子规则组成组卷规则。该用例 由教师或者管理员启动,启动的前置条件是用户正确登陆。参与者通过定义各个约束点 来设置规则。2.图形描述方法有用例图、顺

38、序图和活动图等,这一部分在论文的面向对象设计部分 有详细说明。2.3.3 面向对象建模对象表示现实世界的概念,它们的协同工作实现某一功能,面向对象的方法是一种 思考问题的方式,描述与模仿问题领域发生的事,其基本原则有:一切事物都是对象;任何系统都由对象组成;系统的运行都是由系统的内部对象和外部对象之间或者内部对 象和内部对象之间的相互作用完成。面向对象的特征是:客观世界都由对象组成;所有的对象都划分为各种类,每个类 有属性和方法;各个类组成一个层次结构的系统;对象之间通过传递消息进行通信。以 上四点特征可以用公式 (2-1)描述。面向对象 = 对象+类+继承 +消息通信式(2-1)Object

39、-Oriented=Objects+ Classes+ Inheritances+ Communication with Messagesformula (2-1) 现在,面向对象在很多领域获得了广泛的应用,它相对于面向过程有许多优点。例如组件有利于代码重用;设计模式 Design patterns 有利于设计方法重用;接口有利于代码 的灵活性和健壮性;使用接口合理分配个人和开发组职责,有利于提高开发组的工作效 率;低耦合度和模块性提高软件可扩展性、灵活性、可重用性;封装实现信息隐藏;对 象的模块性和信息隐藏,使得逻辑的变动被自然地隔离,软件比较容易实现变动,且易 于维护; OO 中间件提供了

40、平台和语言的透明性;更好地支持原型开发和演化交付; OO 技术有利于分布式系统的实现和应用。2.3.4 统一建模语言 UML面向对象技术出现以来出现了很多建模技术,统一建模语言Unified ModelingLanguage (UML)使之标准化和统一化。 UML 是由 Grady Booch、James Rumbaugh 和 IvarJacobs on “三位好朋友”起草的用于面向对象开发的统一建模语言27 28。UML 是一种简单而易于使用的、表达能力强的、可视的建模语言,方便用户形象化描述系统,提供了 一种独立于过程、独立于编程语言的交流和表达工具。UML 的功能非常强大,可以用于描述软

41、件系统,帮助构建精确、无歧义和完整的模 型;以预先统一定义的符号可视化地表示软件系统,无歧义地解释由另一个开发者写的 模型;构造可与种种不同的编程语言直接通信的软件系统模型,并且直接生成框架代码; 在开发和部署阶段,通过表达系统的需求使软件系统的模型文档化。UML 提供各种图来描述系统的结构和行为,有用例图 use case diagram 类图 classdiagram、状态图 statechart diagram 活动图 activity diagram、顺序图 sequenee diagram 协作图 collaboration diagram 构件图 component diagram

42、 配置图 deployment diagram29】面向对象分析的目标是建立一系列的模型用来描述软件。所有系统均可表示为两个方面:静态结构和动态行为。根据模型描述对象的不同,建模可以分为三种30:1.用例建模:使用用例分析获取用例模型。2.静态建模:系统的静态结构说明系统包含什么对象以及对象之间的关系,但它并不解释系统中的各个对象是如何协作来实现系统的功能。使用类图将现实生活中的各种对 象以及它们之间的关系抽象成类图等模型。3.动态建模:系统的动态行为指对象是如何进行通信以及通信的结果如何,使用交互时序图、协作图和活动图描述。根据观察系统的不同角度, UML 模型可以分成 5 类, 10 种模

43、型图。1. 用例图,从用户角度描述系统功能并指出各功能的操作者。2. 静态图,包括类图、对象图和包图。 其中类图描述系统中类的静态结构。对象图是 类图的实例,只能在系统某一时间段存在。包由包或类组成,表示包与包之间的关系。 包图用于描述系统的分层结构。3.行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系。其中状 态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。活动图描述满足用 例要求所进行的活动以及活动间的约束关系。4.交互图(Interactive diagram),描述对象间的交互关系。交互图包括顺序图和合作图 其中顺序图显示对象之间的动态合

44、作关系,强调对象之间消息发送的顺序,同时显示对 象之间的交互;合作图描述对象间的协作关系,与顺序图相似,显示对象间的动态合作 关系。除显示信息交换外,合作图还显示对象以及它们之间的关系。顺序图强调时间和 顺序;合作图强调上下级关系。5.实现图(Implementation diagram), 其中构件图描述代码部件的物理结构及各部件之 间的依赖关系。构件图有助于分析和理解部件之间相互影响的程度。配置图定义系统中 软硬件的物理体系结构。各个模型图之间的关系如图 2-4 所示31,如果把该图当作一棵树的话,贝 U 所有的叶 子结点为 UML 定义的模型。图 2-4 UML 的 10 种模型图2.4

45、软件估计1.软件项目计划概述需求分析后,如果项目可行,就进入了项目计划阶段。软件项目计划是软件工程管 理的主要任务之一,包括资源、成本、风险、进度和项目组织进行合理的估计分析和调 度,其具体内容有:(1)成本估计。估计软件费用,有自顶向下成本估计,自底向上成本估计,基于经验 模型成本估计,COCOMO 模型成本估计32。(2)风险分析。在开发工作开始之前,找到潜在的风险,评估风险出现的概率和影响, 然后建立管理风险计划。(3)进度安排。将工作量分解为特定的软件工程任务,可以用甘特图完成。(4)项目组织。合理地组织开发小组的各类人员,最大限度地发挥每一个人的作用。 整个项目组的结构有层次型和矩阵

46、型等。在本网上考试系统具体开发之前,对软件开发进行了成本估计、风险分析、进度安 排和项目组织。重点说明对本考试系统的软件开发的成本估计。成本估计的方法有许多 种,使用COCOMO 模型成本估计软件开发时间是一种比较精确估计的方法。有两个步骤,首先估计系统代码行,然后估计工作量。2 代码行估计代码行估计的一种方法是根据项目特征和算法计算功能点,然后通过功能点计算代 码行。本系统的代码行估算对此方法进行扩展,把功能点估算法和经验估算法结合,首 先分析此前已经完成的系统的功能点个数,并且统计其代码行,然后估算本考试系统的 功能点,由这三个值计算本系统的代码行。功能点估算的方法是:首先分析系统的输入、

47、输出、查询、文件、外部接口,由表 2-2 获得各种功能的权值,再由公式 2-2 计算总权值,最后根据公式 2-3 进行复杂度加权 因子调整,计算功能点数 FP。表 2-2 功能类型对应权值表功能类型权值输入4输出5查询4控制文件10接口7总权值=4X输入点数+ 5X输出点数+ 4X查询点数+ 10X控制文件数+7X接口数FP=&权值X(0.65+ 0.01XFi)公式(2-3)中 Fi 指复杂度调整因子,一共有 14 个调整因子,根据项目不同取值 05 之间,限于篇幅不一一列出。分析计算得到三个值: 前一个项目的功能点记为 FP。, 前一个项目的千行代码数记为 KLOC0,本系统的功能点记为

48、FPi,则本系统千行代码数 KLOCi=(KLOC0XFP) / FP0。 最后估计得到本系统的代码行数是 42KLOC。3.工作量估计COCOMO 模型按照估计的详细程度分为三个层次: 基本层模型、中间层模型和详细 层模型,每个层次的模型按照软件复杂度又可划分为组织型、嵌入型和半独立型 COCOMO 模型的分类如图 2-5 所示。式(2-3)图 2-5 COCOMO 模型软件划分图软件开发的基本层模型将软件开发工作量及成本作为程序规模的函数进行计算;中间层模型从产品、硬件、人员和项目等因素考虑15 个调节因子;详细层模型考虑调节因子对不同开发阶段的影响。组织型软件要求不高,程序规模不大,在5

49、0000 行之内;嵌入型系统和硬件设备紧密结合;半独立型介于两者之间。COCOMO 模型数学公式为:15MM=a(SIZE)bfi式(2-4)i 1TDEV=c(PM)d式(2-5)其中 MM 为开发工作量,单位人月。SIZE 为源代码行数,单位千行。fi为调节因子。TDEV为开发时间,单位月。a、b、c、d 为可变系数。本考试系统采用中间层模型的组织型来估计成本,a=3.2,b=1.05,c=2.5,d=0.38。仔细分析软件开发的 15 个调节因子,得 f1x”5=0.674;考虑本人一直在开发仓库管理系统,有一些类可以直接复用于考试系统,例如数据 库连接类、查询类、排序类、登录类,有一些

50、类可以部分复用,例如用户管理类。前面 功能点计算得知系统 SIZE42,减去复用类加权和,还需要生成 22KLOC。使用 JBuilder 开发,集成开发环境会自动生成许多界面和数据库方面的代码,根据开发经验需要自己 手动编写 6KLOC。MM=3.2x(6)1.05x0.674=14 人月;TDEV=2.5x(14)0.38=6.8 月。本系统从 2 月份需求分析开始到 8 月份测试完成实际开发花费了半年时间,基本符 合COCOMO 模型估计开发时间第 3 章软件架构和系统设计3.1软件架构软件架构又称为软件体系结构,指所有的软件部件组合成系统的一个总的结构、接 口和通讯机制。软件架构可以进

51、一步划分为企业级和应用级架构34。3.1.1 企业级架构企业级架构反映了企业的长期投资,包括硬件和软件的设施、网络布局等。企业级 架构的核心是技术架构,也就是对网络、数据、应用、安全和信息系统的整体集成等制 定的实现蓝图,分别称为网络架构、数据架构、应用架构、安全架构和集成架构等。重 点说明网上考试系统的网络物理连接图,如图 3-1 所示。以太网数据服务器客户端;教师、管理员,图 3-1 网络物理连接图3.1.2 应用级架构35本网上考试系统基于 C/S 模式, C/S 模式的分类和特点在 1.2.4 小节做了说明。 C/S 软件体系结构基于资源的不对等,该结构由三部分组成:数据库服务器、客户

52、端应用程 序和网络。C/S体系结构需要定义工作站和服务器的连接方式,从而实现数据和应用分布到多个客户机上。在应用架构开发过程中通常要做以下工作:1.层之间进行功能划分;2.领域对象建模;3.各层之间的联系方式;4.分析已有的和需要开发的组件。数据库服务端管理系统数据库资源, 其任务是数据库安全性控制, 数据库访问并发 性控制,数据完整性控制,数据库的备份和恢复。客户端f学生) 客户端(学生)客户端学生)客户端应用程序的任务是提供交互界面,向数据库提交用户请求并且接收数据,利 用客户端应用程序处理数据并且在需要的时候传回数据库3.2系统设计3.2.1 系统设计概述软件在需求分析结束后的下一个阶段

53、就是系统设计。系统设计的方法有:面向数据 流的设计,面向功能的设计和面向对象的设计。本考试系统采用面向对象的设计。面向对象分析和面向对象的设计之间有密切的衔接关系。从分析到设计是一个逐渐 扩充的过程,是在同一个对象模型基础上调整改进和扩充的过程。 OOA 以问题为中心, OOD 则解决如何在计算机系统中实现,它遵循抽象、求精和模块独立性的原则。抽象是一种思考和解决问题的方式,它关注于事物的一般特性,不考虑底层细节。 求精是一个和抽象相反的过程,它将某个宏观功能不断分解,逐步细化36。模块独立性指模块之间的接口唯一,高内聚低耦合,各个模块相对独立式的软件容易开发,容易维 护。3.2.2 系统功能

54、划分37按照本项目需求分析阶段的用例图,可以把用户分成三大类:学生、教师和管理员, 分析得出对应的三个子系统:学生考试子系统,教师管理子系统,管理员管理子系统。 学生考试子系统实现功能是:修改密码、考试和成绩查询。教师管理子系统实现功能是: 学生的所有活动,组卷规则管理、考试控制、批卷、考试情况统计、成绩分析。管理员 管理子系统实现功能是:教师的所有活动和用户管理38。修改密码:各种类型的用户都可以自行修改密码; 考试:按照组卷规则从服务器的试题表格获取试题组成试卷,上交学生答题情况到服务器;查询成绩:学生查询某一次考试本人的成绩;组卷规则管理:添加、修改、删除组卷规则;考试控制:考试时间、开

55、始考试和终止考试等设置。考试结束前学生可以手动交卷, 考试结束时学生没有交卷则系统强制交卷;批卷模块:根据存储在数据库中的考题答案和学生上交信息对比批改成绩,可以进 行自动和手动批改;考试情况统计:显示每一张试卷的分数、考生、批改人等信息; 成绩分析:以自定义统计分数段的方式统计某一个分数段的人数和百分比,并且以 图表的形式显示出来。可以根据自定义分数段统计及格率、良好率、优秀率等;用户管理:增加删除教师、学生类型用户。学生考试子系统以客户端形式安装于多台客户端上。教师管理子系统和管理员管理 子系统以客户端形式安装在一台或两台计算机上, 考试数据库推荐单独安装在功能比较 强大的服务器,这样可以

56、实现更快的运行速度和更好的保密性。3.2.3 面向对象设计概述36面向对象设计 Object-Oriented Design(OOD)是一种软件设计方法,一种工程化规范。 具体地说, OOD 就是根据需求决定所需的类、类的操作以及类之间关联的过程。 OOD 的目标是管理程序内部各部分的相互依赖。面向对象设计认为所有的事物都可以用类来表示, 其核心概念是类。 类具有三个基 本特性:封装性、继承性和多态性。1. 封装又称信息隐藏, 把对象的属性和行为打包起来, 仅暴露公共接口, 提供做什么,不提供如何做的信息。访问或改变对象属性的唯一方式是通过对象所规定的行为。对象 有明确的功能,即作用于其属性的

57、功能或行为。2. 继承性是指对象类中的方法、属性可被另一个对象类继承或重用。3. 多态性是指同一个操作作用于不同的对象可以有不同的解释, 并产生不同的执行结果。即相同操作的消息发送给不同的对象时,每个对象将根据它所属类中定义的操作去 执行,因而会产生不同的结果。多态性代表了抽象概念共享特征的能力,通常由动态联 编实现。3.2.4 静态建模39面向对象程序的基本构成是类 Class,类是对一组具有相同属性、操作、关系和语义 的对象的描述,其成分包括名称 name 属性 attribute 和操作 operatioN40。使用 JBuilder 的 UML 视图可以清晰地看到类的属性和方法。根据考

58、试系统的用例分析,设计该系统有关主要类的类图如图 类的中文名字和功能如表 3-1 所示,类的方法如表 3-2 所示。表 3-1 考试系统主要类类名类中文名备注App应用程序主类Diglogi n登录FrmMai n主界面通过该类的方法调用各个功能类,菜单实现DlgCha ngePassword修改密码“系统”菜单子菜单调用Frmyhgl用户管理同上Frmzjgz组卷规则“设置”菜单调用,设置组卷规则FrmExamC on troller考试控制“设置”菜单调用,设置考试控制器FrmExam考试“业务”菜单调用,考试和答题数据上交3-2 所示,类图中各个图 3-2 系统静态类图FrmLbDote

59、st批卷“业务”菜单调用,列表显示全部题目功能的和批改功能FrmExamTj考试情况统计“统计和分析”菜单调用,统计考试情况FrmKscjfbtj成绩分布分析“统计和分析”菜单调用,考试成绩分布统 计ExamMa nager答题批卷方法类辅助类,封装批卷方法表 3-2 系统主要类的方法类类的方法功能说明FrmMai ncha ngePassword修改密码userManager用户管理zjgz组卷规则examC on troller考试控制exam考试lbDoTest批卷examTj统计kscjfbtj分析ExamMa nageran swerAqusti on每做一题实时上交答题数据到服务器

60、makeExam生成试卷makedotest生成答题情况统计表,答题数据保存到表格do-test_a、do-test_bpgDotest批改试题,数据保存到表格do-test bFrmLbDotestsdpg手动批改,生成类 Dlgsdpg 的实例zdpg自动批改FrmExamTjdoDate1设置查询起始时间, 生成类 DataChooser 实例doDate2设置查询结束时间FrmyhglSetRight设置权限,生成类 DlgQxsz 的实例Detail查看用户信息图 3-2 描述了系统主要的类和方法,但是并没有说明每个类的全部方法。下面以考试 控制类 FrmExamController

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论