基于J2EE架构的网上试题库系统设计与实现_第1页
基于J2EE架构的网上试题库系统设计与实现_第2页
基于J2EE架构的网上试题库系统设计与实现_第3页
基于J2EE架构的网上试题库系统设计与实现_第4页
基于J2EE架构的网上试题库系统设计与实现_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

山东大学硕士学位论文山东大学硕士学位论文PAGE58PAGE59山东大学硕士学位论文 分类号:TP311单位代码:10422密级:学号:200412563硕士学位论文论文题目:基于J2EE架构的网上试题库系统设计与实现作者姓名专业指导教师姓名 2006年原创性声明和关于论文使用授权的说明原创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。本声明的法律责任由本人承担。论文作者签名:日期:关于学位论文使用授权的声明本人完全了解山东大学有关保留、使用学位论文的规定,同意学校保留或向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅;本人授权山东大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段保存论文和汇编本学位论文。(保密论文在解密后应遵守此规定)论文作者签名:导师签名:日期:目录TOC\o"1-4"\h\z\u摘要 1Abstract 3第一章 绪论 51.1课题背景 51.2现实意义 61.3国内外研究状况 71.4课题的技术路线 71.5论文的结构 8第二章J2EE与MVC模式介绍 92.1J2EE概述 92.2MVC模式概述 102.3MVC模式在J2EE技术中的应用 112.4小结 11第三章系统分析 123.1系统的功能描述 123.2系统的建模分析 123.2.1统一建模语言UML 123.2.2系统的对象模型 133.2.2.1确定类和对象 133.2.2.1系统的静态视图 143.2.3系统的用例模型 153.2.4系统的流程模型 203.3小结 21第四章系统设计 224.1功能模块划分 224.2网络结构设计 234.3系统框架设计 244.4数据库设计 254.4.1数据库表的总体设计 254.4.2重要模块的数据库表设计 264.4.2.1考纲的数据库表设计 264.4.2.2试题拆分方案设计 274.5主要功能模块的设计 294.5.1考纲管理模块设计 294.5.2试题管理模块设计 314.5.3试卷管理模块设计 344.6小结 37第五章系统实现 385.1业务逻辑层的实现 385.1.1EJB概述[5] 385.1.2会话Bean的实现 395.1.3实体Bean的实现 425.1.4DAO模式的使用 445.1.5值对象模式的使用 475.2Web层的实现 485.2.1业务代理模式的使用 485.2.2Servlet的实现 495.2.3JSP的实现 505.3系统的实现界面 515.4小结 53第六章总结和下一步工作 55参考文献 56致谢 58PAGE1 摘要随着计算机网络和信息技术的飞速发展,网络教育日益流行。网络教育具有诸多优点:如信息量大,内容丰富、生动;教与学不受时间、地域的限制等等。网上考试是网络教育中的一个重要环节,网上试题库的设计以及试卷的组织则是网上考试的基础。本文设计并实现了一个基于J2EE架构的网上试题库系统,用于为网上考试提供试题、试卷资源。开发该系统的目的是通过网络实现与考纲对应的标准化试题(包括多媒体试题)资源的数据库管理,实现试题资源的共享和快速分发,支持手工组卷与自动组卷,并为用户提供在线测试功能。系统采用基于J2EE的四层结构。客户层为用户提供可视化图形界面;Web层响应客户请求,为客户提供所请求的数据;业务逻辑层运行应用逻辑,完成客户请求中相应的计算和数据操作;数据层存储、管理数据信息。采用多层结构的方式使得系统具有很强的伸缩性、通用性、兼容性和可操作性,每一层能够专注于特定的角色和功能。在此基础上,系统使用了MVC、业务代理、DAO、值对象等多种设计模式,使得系统结构清晰,具有良好的可扩展性、可维护性以及平台无关性。论文依照软件工程的思想将系统的开发分为三个阶段进行论述:在需求分析阶段,用UML建立系统的对象模型、功能模型和流程模型,确定系统的结构和行为;在系统设计阶段探讨了网上试题库系统的网络结构、系统架构并进行了系统的数据库设计,对一些关键问题如考纲的建立和试题的存储等做出解决,提出便于使用和扩展的无限级考纲树结构和试题的拆分存储方案,然后为考纲管理、试题管理、试卷管理等主要功能模块建立了详细的设计模型;在系统实现阶段,采用从下到上的开发思路进行系统实现做出说明,重点对业务逻辑层和Web层的实现做了论述,其中包括了EJB、Servlet、JSP、JNDI等J2EE核心技术的使用以及业务代理、DAO、值对象等设计模式的运用,并给出了系统具体实现的实例。论文的最后总结了系统的优势和需要改进之处。在论文的完成过程中,本人主要做了以下工作:用软件工程和面向对象的思想对系统进行分析与设计;系统中考纲管理、题库管理、试卷管理等主要功能模块的实现;系统实现过程中关键问题的解决,包括知识树的建立、试题拆分方案设计等;对EJB、servlet、JSP、JNDI等J2EE核心技术的研究和运用。对J2EE架构和MVC模式的研究,对DAO、值对象、业务代理模式的研究。[关键词]:J2EE、MVC、EJB、试题库、设计模式ABSTRACTWiththedevelopmentofInternetandInformationTechnology,OnlineEducationbecomesmoreandmorepopular.OnlineEducationhasmanyadvantages:suchaslargevolumeofinformation,informative,lively;Teachingandlearningrescuingfromthetime,geographicalrestrictionsandsoon.OnlineExaminationsareanimportantpartofOnlineEducation.ThedesignofOnlinePraxisStorehousesandformingpapersisthebaseofOnlineExaminations.ThispaperintroducesthearchitectureandtherealizationoftheOnlinePraxisStorehousessystembasedonJ2EE.Thesystemachievethedatabasemanagementofstandardlizedpraxisrescoucesandachievethesharementandthequickdispenseofpraxisrescouces.Moreover,itoffersformingpapersinmanualorautomaticway,andenableuserstestingonline.ThesystememploysJ2EEfour-tierbasedstructure.Browserprovidesvisualgraphicinterface;WebServerrespondstotherequestsoftheclients.ApplicationServerprocessesapplication,computationanddataoperation;DBServerstoresandadministratesinformation.Theimpleme-ntationofmulti-tierstructureenablesthesystemtohavedistinguishedqualityofflexibility,currencyandcompatibility.ThispaperdissertatestheprocessofthedevelopmentoftheOnlinePraxisStorehousesystemwhichisdividedinto3phasesaccordingtothesoftwareengineeringideology:Inneedsanalysisphase,IestablishedtheFunctionsModelandtheObjectsModelusingtheUMLsystemtodeterminethestructureandbehaviour;InthesystemdesignphaseIdiscussedthenetworkstructureofthesystem,thestructureofthesystemandthedatabasesystemdesigning,solvingsomeimportantproblemssuchastheestablishmentofknowledgeandthestorageofproxis.AndthenIestablishedthedesignmodelforsomemajorfunctionmodule.IntheRealizationphaseImakedinstructionoftheprocessbybottom-updevelopmentmethod,includingEJB,Servlet,JSP,JNDI,andothercoretechnologiesofJ2EEandtheuseofdesignpatternssuchasBusinessDelegate,DAO,ValueObjectsetc.InthefinalofthispaperIsummarizedtheadvantagesandtheplacesneedingimprovingofthesystem.IntheprocessofdealingwiththisPaper,Ihavefinishedmanyworksfollowing:AnalyzinganddesigningthesystemaccordingtotheSoftwareEngneeringideology;Realizationofsomemajorfunctionmodule;Solvingsomekeyproblemssuchastheestablishmentofknowledgeandthestorageofproxis;ResearchingandusingmanycoretechnologysuchasEJB、、JSP、JNDI,etc;ResearchingtheStructureofJ2EEandthepatternofMVC,andsomedesignpatternssuchasBusinessDelegate,DAO,ValueObjectsetc.[KeyWords]J2EE,MVC,EJB,onlinepraxisstorehouse,designpattern绪论1.1课题背景在信息技术飞速发展的今天,网络技术的应用越来越广泛,如何利用Internet和校园网开展网络教育正受到人们的普遍关注。网络教育是一种现代教育模式,是指教与学双方在时空分离的情况下,利用现代教育技术,保持教学双方的双向信息联系,自主的完成施教与学习活动的过程。网络教育具有鲜明的特色:①信息量大,内容丰富、生动;②教与学不受时间、地域的限制;③提供多种学习方式,能够依个人特点进行学习。它的出现必将为教育的普及化、终身化、现代化和个性化的发展提供一种崭新的途径。网上考试是网络教育的一个重要组成部分。它打破了传统的考试模式,将传统考试过程中的试卷组织、审定印制、传送收集、登记发放、评判归档各个环节缩小到一至两个环节,几乎屏蔽了所有人工直接干预考试活动的可能性,不但能够节约大量的时日、人力、物力与财力,而且还可以大幅度提高考试成绩的客观性和公正性。在网上考试的实现过程中,题库建设以及试卷的组织是必不可少的环节。所谓题库,是“按照一定的教育测量理论,在计算机系统中实现的一个或几个学科题目的集合”。[1]题库有两个独特的优越性:第一是管理上的优势,体现为使用题库的高效、经济、灵活和保密;第二是测量上的优势,体现为由题库生成的试卷具有高质量、可预控等特点。以往的题库的建设中,人们主要使用单机版试题库。建立题库是一个复杂的系统工程。首先要建立系统的模型,然后确定试题的属性指标以及试题的组成结构,再组织大批量的优秀学科教师编写试题。一个相对完整的题库系统,需要成千上万道试题,编写和测试这些试题的工作量无比巨大,是单机版题库所不能实现的,并且不能有效地发挥试卷统计分析的功能。网上试题库系统的出现为解决单机版题库系统运行中存在的问题提供了可能。系统在一个Web服务器上运行,通过浏览器访问,使得实现广泛的网络共享、集中的安全控制和友好的使用界面达到了完美的统一。它提供了传统单机题库系统不具备的一些特点:(1)集中管理共享使用:由于题库对试题的质量要求较高,一般试题的增、删、改都是通过专家确认后进行的。分散运行的题库,一般都无法保持一个专家群体,通过命题教师的自主修订,容易导致题库总体质量下降,故一般题库都是由统一的权威机构来进行维护和管理。而题库同时要具备广泛的使用才真正具有价值。对于单机题库来说,这是一对不可调和的矛盾,网上试题库则可以解决此问题。由权威机构建立一个Web站点,统一管理和控制试题库,经过授权的用户,可以通过浏览器自由使用,包括填充题库、组卷、测试等。(2)开放建设:通过网络,可以广泛征集试题和实施大范围的抽样测试,用户只要通过浏览器连接到Internet,便可在任何地方、任何时间方便地使用题库包括提交试题、修改试题、参加测试等操作。用户提交的试题,经专家审订后,便可正式加入题库中。通过Internet来征集试题和组织抽样测试,可以大大减轻建立题库的成本、缩减建立题库的时间、提高题库的运行质量。(3)集中存储测试数据:在Internet上运行题库,进行联机测试和评价,可以集中保存测试数据,通过统计和分析,从而较正试题参数的估值错误,剔除不好的试题,保证试题质量。(4)简单易用:用户只要通过浏览器,连上网络,便可在图形用户界面的引导下,轻松使用,无需复杂的配置、安装和管理,大大降低了对题库使用者的技术要求。1.2现实意义本文介绍的网上试题库系统是会计从业资格考试网上考试系统的一部分,该项目由新疆财政厅、四川财政厅、天津市财政局联合发起,委托山大鲁能信息科技有限公司完成。该项目的目标是改变会计从业资格考试原有的考试模式,使会计从业资格考试实现网络化和无纸化。会计从业资格考试是一个在全国范围内进行,由各省(直辖市、自治区)财政厅(局)组织的资格认证类考试。参考人员多、地域分布广是该项考试的特点。在以往的该项考试中,从组织出卷到试卷的印制及试卷的管理等工作非常繁琐且工作量很大,传统的组织管理方式不仅工作任务繁重,而且在试卷的标准化程度、难易程度、题量大小等各方面难以控制。为了提高考试质量,规范化考试过程,尽量减少人为因素对考试的影响,使考试更具客观性、科学性,考试主办单位提出了使会计从业资格考试实现网上考试的需求。我的研究内容是网上考试系统的分析、设计与实现,但是由于项目的时间与论文研究时间的限制,此论文只对网上考试系统的一部分——网上试题库系统做了重点研究。网上试题库作为网上考试系统的重要组成部分,担负着为网上考试提供试题、试卷资源的任务,如何更高效的存储、管理题库中的试题、组成有效的试卷是开发网上试题库系统时应解决的主要问题。1.3国内外研究状况目前国内外有许多的网上考试。例如,美国ETS组织的“计算机文化考试”、“高级就业计算机科学考试”、“专业领域考试”、“TOEFL”、“GRE”;英国计算机学会BCS和IDPM分别组织了计算机考试,并普及到英联邦国家;日本于1969年开始设立“信息技术人员考试”,成为仅次于高考的第二大考试;国内的网上考试有人事部和信息产业部组织的“中国计算机软件专业技术资格和水平考试”,教育部组织的“全国计算机等级考试”,全国电大网上考试,教育部从剑桥引进的“剑桥信息技术(CIT)证书考试”,以及CISCO认证考试、微软认证考试、NOVELL认证考试、IBM认证考试等等。在这些考试中考试中,广泛采用了试题库系统,有些试题库系统可以支持自适应考试。这些系统,有的由考试机构控制,有的作为商品出售,产生了巨大的经济与社会效益。但随着这些系统的运行,也出现了很多的的问题。在诸多的原因中,存在的主要问题是已有试题库系统的维护和更新不方便。试题库系统随着学科内容的发展变化,必须不断的更新。但现有的试题库系统往往其试题数据库的开放性不够,用户对已有试题的维护不方便。而且,对要录入的试题的内容有一些限制,如图表、图片、公式、图像、乃至多媒体信息等数据,都不能很好的处理。本文介绍的网上试题库系统,采用无限级考纲树结构来管理考纲知识点,可以随学科内容的变化适时更新;使用试题拆分方案存储试题,使试题的检索更加方便,物理存储更加高效;并支持图片、声音、图像等多种格式多媒体试题。在开发过程中,采用目前流行的J2EE体系结构,部署上方便、移植灵活、易于维护和具有可伸缩性可以使试题库系统更具开放性和扩展性。1.4课题的技术路线网上试题库系统将J2EE(Java2EnterpriseEdition)和MVC(ModelViewControl)模式相结合,使界面与业务逻辑彻底分离,在系统架构中各司其职、互不干涉,具有较强的伸缩性、通用性和可操作性。在开发过程中,用统一建模语言UML(UnifiedModelLanguage)对系统进行详细分析,并给出系统的具体设计,包括系统架构设计、数据库设计、各功能模块设计,其中涵盖了对设计模式的研究和使用,如DAO模式、值对象模式、业务代理模式等,并给出了实现的实例。对一些关键问题如考纲的建立和试题的存储等做出解决,提出便于使用和扩展的无限级考纲树结构和试题的拆分存储方案。在开发过程中,重点对网上试题库系统的业务逻辑层(EJB层)和Web层进行了研究并对EJB、Servlet、JSP以及设计模式的使用进行了探讨。系统建模工具为BolandTogether,开发的主要工具为JBuilder2005,应用服务器选用Weblogic8.1.3支持,后台采用Oracle9数据库。1.5论文的结构第一章绪论,阐明了本项目的的产生背景、现实意义、国内外研究状况、技术路线。第二章介绍了J2EE多层体系架构和MVC设计模式,并将J2EE架构与MVC模式结合使用。第三章网上试题库需求分析,简述系统的功能,并用UML对系统进行建模分析。第四章详述了网上试题库系统的设计,包括网上试题库系统的功能设计、网络结构设计、数据库设计以及主要功能模块的设计。第五章介绍网上试题库系统的实现,以系统的部分实例论述系统的实现过程。第六章结论部分,对论文的工作做了总结,并对系统的改进提出了自己的建议与设想。第二章J2EE与MVC模式介绍2.1J2EE概述J2EE体系结构是SUN公司于1999年底主持推出的一项企业计算平台规范,它定义了包括平台角色、组件模型、标准服务等一系列规范。J2EE系统一般是由客户层、Web层、业务层和数据库层构成的多层系统。客户层由浏览器或其他一些基于网络的系统(如手机和PDA等)组成。Web层组件可以由JSP页面、Applets及Servlets组成,通过容器支持诸如客户请求和响应以及EJB查询等。业务层又经常被称为EJB层,所有特定领域的相关业务代码由运行于业务层的EJB来执行。Web层和EJB层通常被封装在一个应用服务器中,它们构成了三层系统的中间层。图2-1是一个J2EE应用程序的框架。[2]客户层企业信息系统层业务客户层企业信息系统层业务层WEB层J2EE服务器客户机数据库其他客户端数据库EJBEJBJSPJ2EE平台J2EE平台ServletEJBJSPJavaAppletPureHTMLEJB容器浏览器Web服务器EIS服务器图2-1一个J2EE应用程序J2EE服务器客户机数据库其他客户端数据库EJBEJBJSPJ2EE平台J2EE平台ServletEJBJSPJavaAppletPureHTMLEJB容器浏览器Web服务器EIS服务器EJB是J2EE体系结构的核心,在功能上分为会话Bean(SessionBean)和实体Bean(EntityBean)。会话Bean执行商务逻辑、规则和工作流程,是具有商务过程逻辑的可重用组件。实体Bean将底层数据以对象的形式映射到内存中,供其他组件使用。这种将商务逻辑与底层数据分离的作法,使得应用可以适应不同分布系统的需要,增强了系统的可移植性和可扩充性。2.2MVC模式概述MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分类,分成三个层——模型层、视图层、控制层。模型层:是执行某些任务的代码,而这部分代码并没有任何逻辑决定它对用户端的表示方法。模型层只有纯粹的功能性接口,也就是一系列的公开方法。通过这些公开方法,便可以取得模型层的所有功能。在这些公开方法中,有些是取值方法,让系统其他部分可以得到模型层的内部状态参数,其他的改值方法则允许外部修改模型端的内部状态。视图层:数据在客户端的表现形式。比如Excel表格,一个饼图、一个棒图和一个表格均是同组数据的不同的视图端,当用户通过任何一个视图修改数据时,所有的视图都会按照新数据更新自己。控制层:MVC模式的视图层是与MVC模式的控制层结合使用的。当用户端与相应的视图发生交互时,用户可以通过视窗更新模型的状态,而这种更新是通过控制端进行的。控制器端通过调用模式端的改值方法更改其状态值。与此同时,控制器端会通知所有的登记了的视图刷新显示给用户的表示。图2-2是典型的MVC通信方式:[3]图2-2MVC通信方式2.3MVC模式在J2EE技术中的应用MVC模式并不能自动保证一个结构设计是正确的,如何在一个系统的设计中正确得使用MVC架构模式与系统所使用的技术有密切的关系。在一个使用JSP、JavaServlet、EJB的J2EE系统中,一般采用以Servlet为中心的设计模型。其架构图如图2-3所示:图2-3J2EE与MVC模式结合使用此模型将显示数据的逻辑与商务逻辑分割开来,从而使得系统的层次更加清楚。由于商务逻辑和显示数据的逻辑是分开的,因此两者可以独立演化。在这个模型里,系统的活动时序如下所示:①Servlet相当于控制器(Controller)角色,它负责接收客户端请求并处理此请求。②根据请求的类型,Servlet可以选择创建一个EJB/JavaBean对象,并从请求的处理过程中取得的结果作为初始化参数传给EJB/JavaBean对象。③Servlet也可以直接存取数据库中的数据。④Servlet将请求传递给合适的JSP,而JSP则显示给用户。⑤JSP仅仅从EJB/JavaBean中读取数据,EJB/JavaBean直接与数据库打交道。JSP不与数据库打交道。⑥JSP返还给客户端。2.4小结本章介绍了J2EE架构,并讨论了MVC模式,以及J2EE与MVC模式的结合使用,为开发J2EE架构的网上试题库系统做了技术准备。第三章系统分析系统分析是软件工程中的重要阶段,是所有开发的依据。在系统分析阶段,通过对系统的综合研究,对问题域进行抽象,准确的理解系统需求和系统内部运行机制,有助于准确的掌握系统的需求,从而正确定义问题域,确定软件开发的具体内容。通过系统分析,要完成确定系统需求的内容、确定所有涉及到的要素、为当前需要解决的问题建立相应的模型等工作。在对网上试题库系统进行系统分析的过程中,我们采用面向对象分析(OOA),应用可视化面向对象建模技术UML建立系统模型。3.1系统的功能描述网上试题库系统是网上考试系统的一部分,开发网上试题库系统的目的是按照考试大纲需要在线实现标准化试题资源的数据库管理,提供便捷的组卷方式以及试题资源的共享和快速分发,并且为用户提供在线测试功能。该系统根据管理对象和层次不同具有以下功能:通过Web方式,进行用户管理。主要是实现试题库管理员操作用户及其操作权限的管理,完成用户的新增、注册、登录及权限设置。通过Web方式,进行考纲管理。为试题库管理员提供考试大纲的增加、删除、查找、修改等管理功能,同时对每门课程提供课程大纲(知识点)的方便的编辑环境通过Web方式,进行试题管理。提供标准的多媒体题库管理功能,包含对题库进行分类浏览、面向教师的题目录入、修改、删除功能,面向试题库管理员的试题审查功能;提供详细直观的题库试题统计分析工具。通过Web方式,实现试卷的生成与管理并可在线试做试卷。包括面向教师的人工组卷、自动组卷并提供完善的试卷库管理功能,可供教师浏览、修改、删除、查询等操作;面向管理员的试卷审核功能;面向所有用户的在线试做试卷功能。3.2系统的建模分析3.2.1统一建模语言UMLUML(UnifiedModelLanguage)是一种可视化的建模语言,是运用统一的、标准化的标记和定义来实现面向对象的软件分析和设计的一种方法,是面向对象方法用来表述系统设计的图形表示法,用来表达、叙述、构建和记录复杂软件不同方面的语言。在UML中,从任何一个角度对系统所做的抽象都可能需要用几种模型图来描述,而这些图最终组成了系统的完整模型。[4]UML的模型主要通过一系列相关的图来表达。在UML中,共定义了九种图,表示静态关系模型的图有用例图、类图、对象图。表示动态模型关系的图有状态图、序列图、协作图、活动图、组件图和部署图。这九种图的具体描述与讲解可以参见相关的书籍,这里就不再赘述。在对网上试题库系统进行分析过程中,我们使用UML分别从静态、动态两个方面,主要采用类图、用例图和活动图等对系统进行建模。3.2.2系统的对象模型对象模型表示静态的、结构化的系统“数据”的性质。它是对模拟客观世界实体的对象以及对象彼此间的关系的映射,它描述了系统的静态结构。在建立对象模型时,我们的目标是从客观世界中提炼出对具体应用有价值的概念。一个问题可以分解成多少个对象依赖于对问题性质的了解和判断,没有一成不变的表示。“问题域”是指一个包含现实世界事务与概念的领域,这些事务和概念与所设计的系统要解决的问题有关。而建立对象模型又称为问题域建模、域建模,也就是找到代表那些事务与概念的“对象”。建立系统的对象模型典型的工作步骤如下:首先确定对象类和他们之间的关联(因为它们影响系统整体结构和解诀问题的方法),对于大型复杂问题还要进一步划分出若于个主题;然后给类和关联增添属性,以进一步描述它们;接下来利用适当的继承关系进一步合并和组织类。而对类中操作的最后确定,则需等到建立了功能模型之后,因为功能模型更准确地描述了对类中提供的服务的需求。3.2.2.1确定类和对象对象存在于现实世界中,它可以是系统的任何一部分。而软件系统中的对象并不直接存在于现实世界中,它可以看成是通过研究现实世界中的对象结构和行为而派生出来的,具有身份、状态和可激发行为的离散实体。类定义了一组有着相同或者相近状态和行为的对象。任何在问题域中的名词都有可能派生为对象,进而生成类。网上试题库系统中的对象有很多种,既可以是试题库管理员、教师、普通用户、试题、考纲、试卷、答卷等现实世界的实体,也可以是试题属性、试卷总体信息、组卷规则等从现实世界中抽象出来的概念。通过分析,我们大致确定出如下系统的类:试题库管理员:(编号、角色、权限……)具有试题库管理员权限的用户负责管理网上试题库系统的所有用户信息、管理和维护考纲、查询和审核题库中已有试题、审核和管理试卷库中已有试卷的使用权限。教师:(编号、角色、权限……)具有教师权限的用户负责向题库中录入试题及维护题库中的试题、组卷及维护试卷库中已有试卷。普通用户:(编号、角色、权限……)具有普通用户权限的用户允许在线试做具有试做权限的试卷,并可以在提交试卷后查看答案。考纲:(编号、名称、层次、父节点……)将考试大纲以知识树的形式存储、维护。试题属性:(试题编号、类型、难度、认知分类、区分度……)试题除内容外的属性,成为组卷问题的问题空间。选择题:(试题编号、类型、文字题干、文字选项、答案、多媒体题干……)存放和操作选择题内容。问答题:(试题编号、类型、文字题干、多媒体材料、答案……)存放和操作问答题内容。多媒体材料:(编号、文件名、格式、内容、所属试题……)用于存放和操作试题中的大对象材料。试卷总体信息:(试卷编号、试卷名称……):存放试卷的总体属性信息。组卷规则:(试卷编号、平均难度……):用于对组卷规则的设置和管理。试卷:(试卷编号、试卷题号、试题编号……):存放试卷的题号与试题库中实体的对应关系。答卷:(试卷编号、考生号、试题编号、答案):存放考生的答卷。3.2.2.1系统的静态视图静态图描述了系统中对象的数据结构、数据操作及其对象之间的关系。在上述基础上,给出了系统的高层静态视图,用来反映系统内部类之间的关系以及类的职责,如图3-1所示:图3-1系统的高层静态图3.2.3系统的用例模型在系统的分析阶段,我们建立一个反映系统行为的动态模型,即用例图。用例图是参与者(系统外部用户)所能观察的系统功能的模块图,它描述参与者与系统提供的用例之间的某种联系。用例是系统中的一个功能单元,是对系统提供的功能的一种描述,是参与者与系统之间的一次交互过程。参与者是那些可能使用这些用例的人或外部系统。用例图就是从参与者的角度描述出系统中的用例和参与者,以及用例与参与者之间的关系(哪个参与者参与了哪个用例的执行)。在网上试题库系统中主要有三类用户:试题库管理员、教师和普通用户。试题库管理员负责管理网上试题库系统的所有用户信息、管理和维护考纲、查询和审核题库中已有试题、审核和管理试卷库中已有试卷的使用权限。教师负责向题库中录入试题及维护题库中的试题、组卷及维护试卷库中已有试卷。普通用户允许在线试做具有试做权限的试卷,并可以在提交试卷后查看答案。下面用例图分别描述了在试题库系统的使用中,试题库管理员、教师和普通用户各自的行为。图3-2试题库管理员用例图图3-3教师用例图图3-4普通用户用例图用例图只是表达了用例间及用例和参与者间的关系,我们还必须文档化每个用例的具体内容,这可以用参与者与系统交互的事件流来表达,用例必须从参与者而不是系统的角度进行描述。下面介绍系统的几个主要用例描述:=1\*romani考纲管理:功能描述:本功能是提供对知识点以及考纲的管理。前置工作:用户已经正确登陆事件流:1、点击“考纲管理”。2、屏幕显示考纲管理界面,界面为框架结构,提供科目下拉列表入口。3、选择已有科目,若要新建科目,则点击新建科目按钮,屏幕左侧显示树结构,根节点名称“新建节点”,屏幕右侧显示新科目属性表,科目编号自动添加,其余属性为空。4、屏幕左侧框架内显示该科目的知识树结构,为无限级树结构。右侧框架内显示获得焦点的节点的属性,默认为科目的属性,并有可进行的操作下拉列表可以对考纲树节点进行相关操作(增加节点、插入节点、删除节点、修改该节点)。5、单击科目名称,知识树将展开所有的下一级节点,同时屏幕右侧显示该科目的属性列表(科目编号、科目名称、科目描述等)。并有可进行的操作下拉列表可以对该节点属性进行修改。除了科目编号不允许更改外,其余属性均属于可更改状态,修改这些属性,点击提交修改,屏幕弹出警告菜单,确认修改,屏幕显示修改成功,并显示修改后的科目属性。6、单击科目下的其中一个节点,知识树将展开该节点所有的下一级子节点,同时屏幕右侧显示该节点的属性列表(节点编号、节点名称、节点内容、节点描述),除了节点编号和所属科目不允许更改外,其余属性均属于可更改状态,修改这些属性,点击提交修改,屏幕弹出警告菜单,确认修改,屏幕显示修改成功,并显示修改后的该节点属性。7、返回6直到知识点节点维护完毕。=2\*romanii试题管理功能描述:主要是根据试题库中的内容,按照需要完成试题的创建,同时可以进行修改,以及删除等功能。前置工作:用户正确登陆,同时试题库中具有内容。事件流:1、选择“试题管理”,用户进入管理试题界面。2、屏幕显示科目题库下拉列表,包括:编号、科目题库名称、试题数量。3、选择一科目题库。4、屏幕左侧显示该科目题库知识树,右侧显示增加试题、查询试题、修改试题、删除试题、该题库中试题的统计信息和试题列表。试题列表包括:编号、试题类型、试题快照(或试题内容)、分值、难度系数、知识点、认知类型、参考答案(活动列表大小可拖动)、批改类型(自动批改和人工批改两种),列表可分页显示。1)试题统计信息有:a)该题库所包含的所有试题数量;b)各种试题类型的试题数量及在试题总量中所占的比例;c)各章节的试题数量及在试题总量中所占的比例;d)各种难度分布的试题数量及在试题总量中所占的比例;e)各种认知程度的试题数量及在试题总量中所占的比例;2)可设定的查询条件有:a)试题类型;b)试题所属的章节;5、点击右侧查询试题。点击左侧知识树,若点击章,知识树按该章下的所有节展开。点击右侧查询试题,屏幕右侧显示增加试题、查询试题、修改试题、删除试题、该题库中试题的统计信息按钮和选择题型提示。选择题型,屏幕右侧显示该章该题型试题列表(按题型分类)。试题列表包括:编号、试题类型、试题快照(或试题内容)、分值、难度系数、知识点、认知类型、参考答案(活动列表大小可拖动)、批改类型(自动批改和人工批改两种),列表可分页显示。点击左侧知识树,若点击节,知识树按该章下的所有节展开。点击右侧查询试题,屏幕右侧显示增加试题、查询试题、修改试题、删除试题、该题库中试题的统计信息按钮和选择题型提示。选择题型,屏幕右侧显示该节该题型试题列表(按题型分类)。试题列表包括:编号、试题类型、试题快照(或试题内容)、分值、难度系数、知识点、认知类型、参考答案(活动列表大小可拖动)、批改类型(自动批改和人工批改两种),列表可分页显示。点击左侧知识树,若点击节,知识树按该章下的所有节展开。点击右侧查询试题,屏幕右侧显示增加试题、查询试题、修改试题、删除试题、该题库中试题的统计信息按钮和选择题型提示。选择题型,屏幕右侧显示该节该题型试题列表(按题型分类)。试题列表包括:编号、试题类型、试题快照(或试题内容)、分值、难度系数、知识点、认知类型、参考答案(活动列表大小可拖动)、批改类型(自动批改和人工批改两种),列表可分页显示。6、屏幕右侧显示增加试题、查询试题、修改试题、删除试题、该题库中试题的统计信息按钮和选择范围提示包括考纲范围和题型提示。7、选择题型若没有选择,则默认所有题型。8考纲范围就是当先获得焦点的节点子树,默认为科目节点,点击左侧知识树,若点击科目,知识树按该科目下的所有章展开(开始查询试题)。9、屏幕右侧显示该章该题型试题列表(按题型分类)。试题列表包括:编号、试题类型、试题快照(或试题内容)、分值、难度系数、知识点、认知类型、参考答案(活动列表大小可拖动)、批改类型(自动批改和人工批改两种),列表可分页显示。iii试卷管理功能描述:主要是管理试卷前置工作:用户正确登陆,同时试题库中具有内容事件流:1、用户点击“试卷管理”,进入管理卷库界面。2、屏幕列出卷库列表.包括:编号、卷库名称、卷库中所包含的试卷总数。3、选择一科目卷库。4、屏幕显示创建试卷、试卷删除、试卷存档、试卷列表,每套试卷包括:编号、试卷名称、总分、组卷者、组卷日期、审核者、审核日期;5、用户选择试卷(可复选)。6、对该试卷进行相应操作,可以进行的操作有:浏览试卷的概要信息、删除试卷、对试卷存档。用户请求添加试卷,点击“添加试卷”,屏幕显示添加试卷向导界面,该向导分别包括:试卷总体信息设置界面(包括:试卷名称、适合专业、适合层次、教学类型),组卷方式选择界面(人工组卷或自动组卷)。若选择人工组卷则出现试题管理中的试题列表,可以按照试题类型或试题所属的章节查找试题,可以选择合适的试题放入试卷直到组卷结束;若选择自动组卷,则进入选择范围界面,需要设置试卷总分、考察章节范围、题型等范围,然后进入组卷参数设置界面,填写题型比例表、难度比例表、认知分类比例表。设置完毕点击“组卷”,则屏幕返回题库中组成该试卷的试题编号组合。点击返回,则屏幕显示同4。若选择用户请求对试卷进行删除操作,点击“删除”,系统提示是否真的要删除该试卷,若选择是,则删除试卷,否则取消操作、屏幕显示同4。用户请求对试卷进行授权操作,点击“授权”,屏幕显示授权操作界面,该界面包括:有可能被授权的所有教师名单,每个教师为一行,每一行包括:编号、教师名(不可更改)、使用权限(查阅和修订两种)、截止使用日期,设定完毕,点击“确认”,屏幕显示同。用户请求对试卷存档,点击“存档”,系统要求用户指定导出试题的路径,指定路径,有两种方式,一种是手工输入路径,另一种是用浏览的方式寻找路径,系统调用自动加密模块,对试卷进行加密,该试卷存入相应路径,系统返回发行成功信息。7、用户点击试卷名称;8、屏幕显示该试卷的概要信息,概要信息除试卷列表信息外还有对试卷操作人员列表,操作人员列表包括操作人姓名截止日期,其中组卷者、审核者、试做者均有查看权,组卷者在未审核以前还有修改权;9、浏览后点击“返回”;10、屏幕显示同4。3.2.4系统的流程模型活动图是UML中用于对系统动态方面建模的一种图。它用于描述系统、用例、程序模块中的逻辑流程的先后执行次序,并行次序,表示系统的业务工作流和并发处理过程。活动图从本质上说就是一个流程图,显示从活动到活动的控制流,能够更容易显示参与者的决定和系统异常所要执行的多条路径。但是活动图可以描述并行操作,而流程图只能描述串行操作。通过活动图,可以了解所描述对象的要进行的各种任务和过程。一旦一个活动完成,执行就转到由活动的有效转移所确定的下一种状态。根据需求分析为系统绘制的活动图我们可以明确在业务工作流中参与者与系统各用况之间以及系统用况之间可能的交互。一项操作可以描述为一系列相关的活动,活动仅有一个起始点,但可以有多个结束点。一个活动可以顺序的跟在另一个活动之后,图3-5描述了系统用户工作过程的简要活动图。图3-5系统的总活动图3.3小结本章介绍了在对网上试题库系统的需求分析。使用UML中的类图、用例图、和活动图建立了系统的静态和动态分析模型,为系统的设计打下基础。第四章系统设计前一章的系统分析利用面向对象的思想和UML方法对网上试题库系统进行调查和分析确定了系统的逻辑结构,为系统设计阶段提供了依据。系统设计阶段所做出的关于系统总体结构、数据库设计功能模块设计等各方面的决策将直接影响系统实现和维护的难度,并且将最终决定系统质量的好坏和系统开发的成败。4.1功能模块划分在系统的功能描述和用例图的基础上,将系统的功能进行了更明确的子系统划分。通过本章,使得系统的功能结构进一步清晰化,并简化设计工作,降低复杂度。将系统分为用户管理模块、考纲管理模块、试题管理模块和试卷管理模块。以下是系统的功能结构图:图4-1系统功能模块用户管理模块:用户权限管理:管理用户的增删及其操作权限。用户信息维护:管理系统用户的基本资料信息。考纲管理模块:科目管理:增加、删除、查询、浏览科目。知识点维护:维护指定科目下的知识点信息。题库管理模块:试题录入:按题型录入试题,支持多媒体试题的存储。试题属性编辑:对试题的基本属性的编辑。试题维护:对题库中已有试题内容及属性进行查看、修改或删除。浏览试题:对试题进行分类浏览。审核试题:审核试题并指定试题的使用权限。试卷管理模块:人工组卷:由出卷人从题库中人工选题得到一张试卷。自动组卷:系统根据输入的组卷条件,自动组成一张试卷。试卷维护:对试卷的内容和属性进行更新。浏览试卷:浏览指定试卷的内容。审核试卷:审核试卷并确定试卷的使用权限。试做试卷:在线试做具有试做权限的试卷。4.2网络结构设计网上试题库系统是一个基于内部网和外部网的应用系统,允许用户通过局域网或Internet在线访问。图4-2是网上试题库的网络结构图:图4-2系统网络结构图在计算中心放置数据库服务器、应用服务器、Web服务器,其中数据库服务器上安装Oracle数据库管理系统;应用服务器和Web服务器在一台服务器上,分别部署业务逻辑模块和Web模块。系统用户使用浏览器计算中心局域网或通过Internet穿越防火墙访问计算中心服务器。B/S模式使得部署成本最低(客户端只需安装浏览器,而操作系统自带浏览器,所需部署的只有计算中心服务器),大大简化管理成本和升级成本。网上试题库系统要求多于800人同时在线并发访问,并运行稳定。考虑到试题库系统乃至整个网上考试系统未来的应用扩展,系统需要的服务器将从一个扩展到多个,成为真正意义上的集群分布式系统,所以可能造成网络拥塞问题。另外分布式性能如位置透明性,多个Server间的系统均衡,通明的事务处理就非常重要。正是基于以上考虑,我们的系统采用了分布式、事务处理透明的有良好扩展性的J2EE体系技术来实现。4.3系统框架设计在网上试题库系统的设计和开发中,我们总体上采用了J2EE四层结构,并应用了MVC等多种设计模式,将系统细分为如图所示几层:控制层控制层Web服务器EJB服务器NETBANKDBEJBHomeEJBObjectEJBsJDBC客户端浏览器JSPServletJB界面层业务代理层业务逻辑层数据层IEreq图4-3网上试题库系统的系统框架客户端层:用于为用户提供可视化图形界面。网上试题库系统所用的客户端,是一个简单的IE浏览器。Web层:用于响应客户请求,为客户提供所请求的数据。分为Web界面层、Web控制层和业务代理层。(1)Web界面层是使用JSP技术开发的动态服务页面,用于提供给客户友好界面,该层仅与客户界面有关,没有任何与业务相关的部分;(2)Web控制层是专门用来掌控整个网上考试系统业务流程的,它仅仅包含流程控制部分,没有用户界面以及业务逻辑方面的部分,主要用JavaServlet技术开发;(3)为了使控制程序更好地使用分布在网络上业务组件,故在控制层与业务逻辑层之间加了一层业务代理层,体现了业务代理模式在本系统中的应用,主要采用普通的JavaBean技术开发。业务逻辑层:用于运行应用逻辑,完成客户请求中相应的计算和数据操作。该层集中了网上考试系统的业务逻辑功能,主要完成数据入库功能以及业务数据提取等,为了提高系统性能,在业务逻辑层主要采用了DAO模式、值对象模式等,主要用EJB技术开发;数据层:是指的网上试题库数据库。其中存储了网上试题库系统相关的各个表,业务逻辑组件访问数据库有两种方式,一种是通过实体Bean与数据库中的表建立映射的方式,另一种是通过DAO模式写SQL语句的方式。采用多层结构的方式使得系统具有很强的伸缩性、通用性、兼容性和可操作性,每一层能够专注于特定的角色和功能。4.4数据库设计4.4.1数据库表的总体设计本系统的信息存储采用Oracle9.1.3数据库,数据库名为NETBANK。根据分析阶段得到的静态类图,得到数据库实体关系如图4-4,并由此得出以下主要数据库表:知识点表(T_KNOW)存储考纲信息,方便客户端以知识树的形式显示,并便于对试题按照知识点进行存储和检索。知识点试题对应表(T_KNOW_Q_REF):存放知识点与试题的对应关系,将知识点与试题之间的多对多关系转化为两个一对多关系。试题属性表(T_Q_ATTRIBUTE):存放该题库中所有试题的,难度系数,区分度系数、认知分类系数、选中频度,,出题人,日期,题目分值等与试题内容无关的属性。图4-4实体关系图单选题表(T_SINGLE_SELECT):存放单选题文字题干、文字选项、多媒体材料编号及答案。判断题表(T_DISCRIMINATION):存储判断题题干和答案。论述题表(T_ISSUE):存放论述题题干和答案。多媒体材料表(T_MUTIMEDIA):以二进制文件形式存储各种题型的试题的多媒体信息。组卷规则表(T_FORMING_POLICY):存放组卷规则。试卷表(T_PAPER):存放试卷的名称、编号、考试时间、题量等属性。试卷试题对应表(T_P_Q_REF):存放试卷与试题的对应关系。4.4.2重要模块的数据库表设计4.4.2.1考纲的数据库表设计考纲是考试的命题范围,具有信息准确、概括性强等特点。考纲的结构一般为具有科目、章、节、知识点等层次的树形结构。大多数试题库系统将考纲的树型结构固定的分为三层或四层,即章、节、知识点或科目、章、节、知识点。每个层次用一个表来表示,各表之间用外键关联。这样做得好处是层次清晰,便于查找和管理。但是通过对多个考纲的仔细阅读,我们发现,还有一部分考纲的内容介于在章和节之间或节和知识点之间。这样,固定的三层或四层结构就不能准确描述考纲的结构,本系统采用了理论上无限级树结构,可以满足各种考纲的描述。在进行数据库设计时,将科目、章、节、知识点等都看作知识点,用迭代的思想建立各层次的关联,并用一个知识点表存储。表4-5是知识点表(T_KNOW)的表结构。 字段名称字段类型字段长度是否为空字段描述备注KNOW_NOVarChar25NotNull知识点代码LEVEL1NUMBER1NotNull层次树结构根节点层次是0PARENT_NOVarChar25NotNull所属节代码根节点的父节点代码是-1SEQUENCENUMBER10,5NotNull具体逻辑顺序若为追加,则为KNOW_NO,若为插入则取要前后两个数的均值。KNOW_NAMEnVarChar250NotNull知识点名称默认值是”新节点”KNOW_CONTENTnVarChar2300知识点内容SUBJECT_NONumber5所属科目DESCRIPTIONnVarChar2100知识点描述PRIMARYKEY(KNOW_NO),主键约束表4-5知识点表的表结构通过父节点编号(PARENT_NO)、层次(LEVEL)、SEQUENCE(具体逻辑顺序)可以唯一确定一个知识点在考纲树中的位置,从整体来看,知识树结构是可以唯一确定的。对考纲树的展现采用ORACLE9数据库支持的迭代查询语句:selectknow_no,know_namefromt_knowconnectbypriorknow_no=parent_nostartwithparent_no=-1ordersiblingsbysequence;无限级考纲树结构打破了固定的科目、章、节、知识点4层结构的限制,使考纲树的编写更为灵活。4.4.2.2试题拆分方案设计试题的存储是试题库系统设计中最重要和最复杂的部分。试题有多种属性(如课程代码,考查知识点,难度系数,区分度,选中频度,题干,答案,命题人,审核人,审核状态,审核日期等等),而且要求能够按照各种属性要求快速检索。题目类型包括单选、多选、判断、填空、论述、简答等;题目的出题形式可能是文本,声音,图像,视频等。题目答案可能是客观题(如单选题、多选题、判断题、填空题)简单的字符、字符串,也可能是大的文本(如论述题)。试题类型、题干和答案的格式的多样性,题目各属性采用什么样的数据类型及字节长度,如何组织这些属性为一个或多个表格,从而既满足要求,又能够快速检索,提高系统性能是一个需要认真思考的问题。大多数题库系统采用简单题库设计方案,其特点是把所有信息集成到一个表中。每个字段都以满足最大的字节长度需求为基准。其优点是该表记录了题目的所有信息,题目系统编号,所属课程,所属考点,题目难度系数,题目使用频率,题目类型,多媒体文件格式,出题人,审核人,出题日期,文本题干,大对象题干(Blob),题目答案。但是该方案有明显的缺点:尽管一个表非常简单地满足了所有需求,但是效率非常低。原因如下:由于表格中大对象(Blob,Clob)的存在,将使检索效率非常低。非大对象试题与大对象试题用一个表存储会造成存储空间的浪费。在题库抽取题目组卷时,题目的一些属性如:科目、难度系数、区分度、认知分类、所包含知识点、出现频率等是抽题的最重要因素。而题目内容和答案是浏览、审查、试做样卷和进一步组卷的重要内容。所以,试题内容与试题检索信息放在一个表格降低检索效率。经过对题库需求仔细分析后,本系统采用试题拆分方案将试题存储到数据库中,如图4-6所示:图4-6试题拆分示意图该试题拆分方案的特点是:将试题拆分成试题内容、试题属性、所含知识点和所含多媒体文件;将试题按试题类型分为单选、多选、判断、填空、问答等;多媒体文件数据用单独的表存储。试题拆分方案有着明显的优点:=1\*GB3①将试题属性与试题内容分离,有利于组卷、浏览试题等不同功能的快速检索;=2\*GB3②将试题内容按题型划分有利于试题按格式存储;=3\*GB3③将试题文本内容与大对象内容分开存储灵活地适应不同空间需求,方便快速检索。总之,较简单实现方案,其优点非常明显,查找效率更高,空间更节省,题库的可扩展性也更好。4.5主要功能模块的设计在对各功能模块进行设计时,我们按照J2EE体系架构和MVC模式原理用UML分别建立系统的静态设计模型和动态设计模型。静态模型主要使用对象图,主要用来说明各个对象以及它们的关系。对象动态模型主要是顺序图,用来说明消息按时间顺序在类、对象间的传递。在本系统的设计中,业务代理封装了会话Bean中执行业务逻辑的方法,Servlet则调用业务代理中的方法,因此在顺序图中的Servlet通过业务代理间接访问业务逻辑层部分隐去了Servlet调用业务代理,以及业务代理调用会话Bean的方法,而以Servlet直接执行业务逻辑方法展示。4.5.1考纲管理模块设计考纲管理模块实现题库管理员对科目和考纲的管理和维护,该模块主要是为其他模块提供支持的。模块以知识树形式分级显示知识点内容,供用户编辑、查询知识点信息(知识点名称、编号和内容)、增加、删除知识点。另外,系统还对所输入的知识点编号进行有效性验证,保证知识点的唯一性。考纲管理模块的静态模型主要是详细对象图,如图4-7所示。在业务逻辑层,实体BeanKnowledge代表了考纲的业务数据,通过会话BeanKnowledgeManage充当实体BeanKnowledge的会话外观,实现考纲管理的业务逻辑。为了检索考纲树这样的批量数据,系统设计时使用了DAO模式来通过SQL语句访问数据源。图4-7考纲管理模块详细对象图Web层使用代理模式来解决知识点管理主控对象查找其它对象如KnowledgeManage会话Bean或Knowledge实体Bean等以及执行远程过程调用。知识点代理KnowledgeBD,封装了对KnowledgeManage的远程访问。这样,知识点管理主控对象SubmitKnowledgeServlet程序就可以用通常处理过程中的消息发送来和代理交互。Web层的JSP页面与SubmitKnowledge交互,并将SubmitKnowledge传递的数据展现给客户。我们用顺序图来展现考纲管理模块的动态设计模型。图4-8是插入知识点用例的顺序图。首先题库管理员点击知识树页面KnowlegeTree中的某一节点,页面向控制器SubmitKnowledge发送得到该节点详细信息的请求。SubmitKnowledge得到该节点的实体BeanKnowledge对象,并将页面转向到知识点详细信息页面,从而展示给用户该知识点的详细信息。用户选择“添加节点”,则页面将知识点的详细信息如q_no,parent_no,level,sequence等参数传给SubmitKnowledge,再由SubmitKnowledge通过DAO得到数据库中知识点序号的最大值SN,将(SN+1,parent_no,level,sequence)等参数实例化新知识点数值对象。将值对象传给知识点实体Bean从而新建一个知识点实体Bean对象。SubmitKnowledge用getTree函数通过DAO获得构建知识树的数据集并刷新KnowlegeTree页面然后重定向页面到编辑知识点页面editKnow.jsp。当用户提交完编辑后的新知识点,editKnow.jsp将修改的知识点信息以参数的形式传给控制器,再由控制器根据该知识点的q_no获得实体Bean对象,并用set方法修改实体Bean。最后由控制器发出刷新KnowlegeTree指令。图4-8插入知识点顺序图4.5.2试题管理模块设计试题管理模块主要实现的是教师和试题库管理员对试题的插入、删除、修改操作以及对题库中试题的按照条件知识点、难度、认知程度等分类浏览和统计。试题管理模块提供符合国家标准的多媒体题库管理系统,能够高效、快速、便捷地与试卷生成系统交换数据;包含面向用户的题目录入功能,并且能从其他题库继承题目的可行性及具体方法;提供详细直观的题库试题统计分析工具。要求能录入多媒体题目,即题目不仅要包括文字、表格和公式,还要包括各种图形图像(picture)、音频(audio)、视频(vedio)、动画(animation)等媒体素材。对用户所添加的题目,系统首先存入试题库,然后经试题库管理员根据试题的质量和使用情况,进行试题审核,审核通过的题目可以在组卷时使用。提供批量录入功能,提供题目导入导出向导,实现与其他常见数据库系统的导入和导出。模块的详细对象图如下:图4-9试题管理详细对象图在该功能模块中,模型主要由业务逻辑层担任。该层主要由会话Bean和实体Bean组成。实体BeanQuestion_Attribue代表试题的属性数据,Filling、SingleSelect、Issue分别代表填空题、选择题、论述题等不同题型试题的内容,Q_k_ref代表试题与知识点的对应。无状态会话BeanQuestionManage管理数据模型的关系并实现了所有试题管理的业务逻辑,如试题的增加、删除、查询、修改和统计等。QuestionManageDAO是该功能模块的数据访问对象,通过它可以从资源层中检索某些批量的数据,减少了由EJB带来的远程方法调用、事务管理、数据序列化等开销。图下方一系列的值对象是各层进行数据交流的载体,可以在JSP页面、SessionBeans和EntityBeans间有效地传递批量业务数据,避免了客户端分别调用子表对象的Set和Get方法而引起的网络调用数泛滥。比如:将一道多媒体选择题,包括单选题的提干、选项、多媒体材料、答案封装到SingleSelectVO实例中,方便各层的使用。QuestionManageDelegate是与QuestionManage对应的业务代理,它向表示层隐藏了所有业务调用的实现细节,并将网络异常转换为更友好的应用异常,在表示层看来所有的业务调用都是本地调用。控制器由Web层的几个Servlet组成,它们共同控制着整个试题管理模块的页面转换。它们接受来自用户的请求,根据请求去调用业务代理类Quest-ionDelegate中的方法,然后将结果传给JSP页面。表示层由一些JSP网页组成。JSP网页只涉及到页面显示部分,与业务逻辑部分无关。这些JSP网页只与试题管理模块中的Servlet交互,需要的信息由JSP页面通过表单form的action提交给servlet,然后由将所需信息封装成对象重定向JSP页面。我们以插入单选题用例为例使用顺序图建立动态模型,如图4-10所示。图4-10试题录入用例顺序图4.5.3试卷管理模块设计试卷管理模块实现试卷的生成以及试卷的管理维护,并提供在线试做试卷功能。教师可选择手工组卷或自动组卷,如选择自动组卷,则通过自动组卷向导,设置一系列的组卷参数,系统自动生成一套试卷,并可进行试卷的修改。人工组卷提供从题库中人工抽取试题和人工录入组卷的方

温馨提示

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

评论

0/150

提交评论