《学生在线答疑系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《学生在线答疑系统的设计与实现.doc(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、声明任何收存和保管本论文各种版本的单位和个人,未经本论文作者同意,不得将本论文转借他人,亦不得随意复制、抄录、拍照或以任何方式传播。否则,引起有碍作者著作权之问题,将可能承担法律责任。原创性声明本人重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的容外,本论文不含任何其他个人或集体已经发表或撰写过的作品或成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明,本声明的法律结果由本人承担。论文作者签名: 日期: 年 月 日43 / 52学生在线答疑系统的设计与实现xx(xxxxxxxxxxxxxxxxxxxxxx)摘 要建立一个以网络
2、为基础的学生老师答疑系统,对于学生的自主学习与教师的因材施教,具有重大的意义。系统是在Servlet+Jsp技术的基础上开发的。系统采用的是B/S模式,数据库采用的是Mysql数据库。系统采用MVC分层模式来设计。表示层应用Jsp页面技术,控制层应用的是Servlet技术,数据访问层应用的是JavaBean技术。系统实现如下的功能:学生查看自己的课程信息,对所选课程在学习过程中存在的问题进行提问;老师查看自己所带的课程信息,发表自己的课程信息,对学生问题进行答疑。系统增加了一些拓展模块,如校园新闻;主题讨论模块,学生可以根据自己的兴趣爱好,到专题下进行交流学习;同时设计有娱乐中心,方便学生和老
3、师在课余时间的交流和娱乐。关键词答疑系统 Servlet JSPStudents online question-answering systemxx(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)AbstractEstablishing a web-based student question-answering systemis of great significance for the teachersand students whichused for learning and teachers. System is on the basis of the dev
4、elopment ofServlet + Jsp technology. System adopts on B/S mode, the database uses a Mysql database. System uses the MVC layered model to design. Jsp page technologies used in the presentation layer, control layer using a Servlet technology, data access layer using JavaBean technology. System can rea
5、lize the function as follows: students look at their course information,which for selected courses on problems existing in the learning process of asking questions; Teacher check yourself with the course information, published their own course information, answering the problems of the students. Sys
6、tem added some expansion modules, such as campus news. Module theme discussion, students can according to your own interests, to the project under the exchange of learning; Recreation center is designed at the same time, convenient student and teacher communication and entertainment in their spare t
7、ime.Keywordsquestion-answering system, Servlet,JSP目 录第一章绪论11.1总体概述11.2 开发背景11.3 本文研究意义2第二章系统分析32.1技术可行性分析32.1.1 开发语言综述32.1.2 MySql数据库的选用32.1.3 JSP技术介绍42.1.4 Servlet介绍552.1.5 系统层次设计62.1.6技术可行性综述62.2 系统需求分析72.2.1 系统开发运行环境72.2.2 业务描述72.2.3 系统功能概述7第三章系统概要设计93.1 数据库设计93.2 功能模块的设计123.2.1.用户模块:123.2.2 答疑信息
8、管理模块设计143.2.3 课程信息模块设计15第四章系统详细设计174.1 界面设计174.2 系统分层的实现184.2.1 表示层的设计184.2.2 控制层的设计194.3 各个功能模块的设计204.3.1 会员模块详细设计204.3.2 答疑模块详细设计224.3.3后台管理模块详细设计234.3.4 会员模块的实现254.3.5 答疑模块的实现264.3.6 后台管理模块的实现27第五章系统的调试与测试295.1 测试理论概述295.1.1软件测试的目的和方法295.1.2软件测试的任务295.2 测试的分类10295.2.1黑盒测试295.2.2白盒测试305.3单元测试305.4
9、 集成测试315.5 系统测试315.6确认测试31第六章总结与展望32参考文献33致34附录35第一章 绪论1.1总体概述随着网络技术的普与应用,越来越多的软件走进了们的生活里。网络技术已经成熟,并且向着多元化,集成化方向发展。因此,在现代教育中,我们可以充分利用网络,实现教育形式的多元化,网络化,移动化1。目前中高等院校的校园网络都已部署和使用。校园网络的成功普与和应用,让学生和老师可以借助网络为载体,随时随地了解有关学校的最新消息和动态,了解学校的一些背景,学校的整体信息以与和自己相关的院系信息。但是,就目前的情况而言,学生和老师在课后的交流少之又少。学生有问题了不能直接找老师解决,老师
10、也不能与时了解学生的学习情况。尽管有网络存在,但是现在大多数的学生主动的学习能力还相对较弱。根据以上叙述情况,本人有理由相信开发一个同时具备老师和学生交流,学生和学生交流,学生课后咨询老师,老师可以随时答疑学生等等功能于一身的交流平台。最后,本人决定设计一个学生在线答疑系统。该系统应该具备一些自己的特色和优点,总结如下:只要用户注册成功,就可以进行老师和同学之间的答疑,同时学生和学生之间也可以交流。在课程信息方面,老师可以查看自己所任教课程的一些疑问信息,并且进行相应的答复。由于是借助网络,所以让学习多了一些趣味性,并且学生不会像在课堂上那样拘束或害羞。相反,学生可以畅所欲言,积极的参加到课程
11、信息的讨论中来。1.2 开发背景随着现代中高等院校规模的扩大,学校上课地点不固定等等原因,所以发现老师和学生之间的答疑工作存在不固定性。经分析传统的教学模式,本人发现,传统的老师给学生答疑的方式有如下缺点:(1)答疑时间和地点的不确定性。(2)学生有了新问题没有办法与时向自己的老师提问和获得帮助。(3)考虑到同学们有可能不住一起,所以学生间的讨论和交流相对就比较少。(4)学生和老师之间的交流比较少,所以老师很难了解到学生的实际掌握知识的程度。 为了弥补以上的这些缺陷,提高答疑工作的工作效率,实现老师和学生沟通的多元化,决定开发这个基于B/S的学生在线答疑系统。1.3 本文研究意义学生在线答疑系
12、统,它弥补了现代教育中老师和同学交流少的这一弊端。在本系统的开发过程中,本人利用JAVA语言和网络技术使的该平台得到实现。从而让学生利用这一平台进行交流和学习,最终达到教学目的和学生自主学习的目标。本人认为,这是一种现代化教学手段的体现。学生网上答疑系统是一种现代教育理念和现代教育方式的有效结合,它的引入,丰富了教育教学手段,提高了教学质量,向教育现代化迈出了有意义的一步。第二章 系统分析2.1技术可行性分析2.1.1 开发语言综述本系统是基于面向对象思想的JAVA语言中J2EE平台进行编写的,本人经过总结发现,J2EE平台具有以下优点2:1.结构简单:J2EE平台支持简单化的、基于组件的开发
13、模型。Java语言的一个很大的优点就是一处编译,处处运行,这个是Java语言强大的可移植性。此外,JAVA语言不依赖于任何操作系统或者是中间件。同时,J2EE标准并且允许客户可以兼容第三方的插件的使用。正是由于它的实用性和经济性,所以它的推广越来越来广泛。2.开发效率高:由于JAVA组件技术的使用,可以按照开发人员的技能对应用程序开发进行并行开发,提高了整体开发的效率。例如:现代企业级的开发模式之一的是敏捷式开发。它的特点就是分层思想。属于前台表示层的,由专人进行设计。数据处理层的,一般由Java工程师来编码完成。这样,无论是前台的数据展示还是后台的数据处理,一个项目组的不同开发人员可以同时工
14、作,有效的提高了开发的速度和效率。3.重用性好:Java语言的特点即是面向对象。同时它的一大特性即是夸平台性。由于Java中引入了JVMJava虚拟机,该虚拟机是一套支持Java语言运行的软件系统,运行在操作系统之上。JVM更类似一个翻译官,在不同的操作平台上,它扮演不同的角色,从而把文件编译成字节码,从而让不同的操作系统的计算机能够识辨和运行该文件。4.易于维护:因为组件的设计简单化了,所以易于维护。同时用户可以增加许多自己设计的功能。5.使用广泛:目前全球围,主要的IT供应用商几乎都采纳E体系结构,不同供应商的产品只要符合E体系结构,就是可以操作的。2.1.2 MySql数据库的选用MyS
15、QL是现在流行的关系数据库中其中的一种3。和ORACLE等大型的数据库相比较,本人认为它还是有很多自己的优点和特色。比如:它虽然小,但是功能齐全。并且它的查询速度也很出色,基本上能完成一般的功能性需求。其中最关键的是它的使用是免费的,可以在Internet上免费下载到,同时可免费使用很长时间,对于一般的中小型,甚至大型应用都能够胜任。经过总结后发现,MySQL主要具有以下优点:(1) 首先是速度。对于MySQL来说,速度的要他们追求的主要目标之一,基于这个原因,在MySQL的TODO中,对约束和触发器这样肯定会降低速度的功能也列入了日程。所以本人相信,MySQL将有可能一直保持速度方面的优势。
16、(2) MySQL更流行。对于一个商业软件来说,使用流行也是一个很重要的参考指标。流行意味着拥有更多的用户,意味着能更好用于商业化、意味着更多、更完善的资料等等。(3) MySQL更适宜在Windows环境下运行。MySQL作为一个本地的Windows应用程序运行(在NT /WindowsXP下,其是一个服务), 在Windows运行中,MySQL的性能更加的稳定,可靠。(4) MySQL使用了多线程,在不同线程之间的交流和通信,显然要比在不同的进程之间要快得多。(5) MySQL可以在32/7上运行。一般情况下,你不需要为MySQL运行进行任何的清除程序的动作。(6) MySQL在权限系统上
17、更为完善。MySQL你可以定义一系列的不同数据的级别权限、表级和列级的权限。 (7) 由于MySQL 4.5.1-alpha开始支持事务。因此事务对于MySQL不再是劣势。恰恰相反,因为MySQL保留无事务的表类型,这就为用户提供了更多的选择。2.1.3 JSP技术介绍 JSP的是Java Server Page它的简称。它是一种动态的网页技术。尤其是在JAVA WEB领域的使用现为突出。SUN公司在1999年,利用JAVA语言作为脚本语言来开发它的。此技术在J2EE体系中扮演重要的角色4。本人通过总结发现,JSP页面的最大的特点是:它结合了JAVA代码和Html页面。相对而言,html主要是
18、一个静态的展示页面,它部有一些自己的标签。并且JAVA代码是不能锲入到其页码代码部。相反,JSP页面克服了这一个缺陷,使JAVA代码可以在页面中嵌入。因此,程序员可以充分利用JSP页面进行很多胡操作,比如操作数据库,操作JAVA Bean,甚至可以发送Email等等一系列操作。JSP的优点:(1)速度快。由于JSP页面的所有操作是由Web Server 进行更新的,所以它的刷新速度给人的感官上很快的。(2)容易部署。对于它的部署而言,JSP的要求很简单。只要客户端拥有其最基础的接口配置,就可以提供JSP展示的环境要求,那么它的工作环境也是没有问题的。同时,由于它的部署环境的要求比较低,所以它的
19、系统维护方面显然也是比较容易的。(3)容易接受。对于页面展示来说,静态页面html可谓是耳熟能详,所以是受大众的喜爱和高度的使用。而静态页面它的缺陷很多,为了弥补这种缺陷,JSP理所当然成功的充当了这一角色。它不但拥有静态页面的所有属性和特点,同时具备了自己的特点,比如说它的动态特性,能够容纳JAVA代码等等特性。所以它的出现势必是HTML的一个很好的补充。(4)效率高。能够拥有高的效率,是一个程序永远追求的目标。对于JSP而言,因为其小,速度快的特点,所以它的高效性得到显著地提高。所以它的效率也是能够满足现有的商业模式的要求。以下是JSP的工作的一个流程图。如图2.1:图2.1JSP执行过程
20、图2.1.4 Servlet介绍5servlet是运行在服务器上的小程序。这个词是在Java applet的环境中创造的,Java applets是一种小程序,它通常在服务器端运行。最早支持Servlet技术的是JavaSoft的JAVA Web Server。此后,一些其它的基于Java的WebServer开始支持标准的ServletAPI。Servlet的主要功能在于交互式地浏览和修改数据,生成动态的Web容。这个过程是:客户端发送请求至服务器,服务器初始化Servlet,然后运行其init方法。服务器(容器)再将请求信息发送到Servlet,然后其运行它的Servise方法。最后Serv
21、let将生成响应容再次传给服务器。服务器将响应返回给客户端。其工作原理图如下:图2.2 Servlet的工作原理图2.1.5 系统层次设计任何功能性的开发,都需要一个层次的设计。根据MVC这一经典思想6,再结合Servlet的特点,决定使用三层结构,这样做的优点是:(1)可以分层开发,访问数据库与业务逻辑实现能够分开。提高开发效率。表示层业务逻辑层数据层底层链接数据库(2)提高代码的复用。图2.3 答疑系统的分层结构2.1.6技术可行性综述综上所述,这些成熟的Servlet+JSP技术和优秀MVC设计思想,为系统建设提供了技术条件。计算机等基础设施的更新换代也紧跟潮流的发展,这就为开发系统提供
22、了夯实的基础。2.2 系统需求分析2.2.1 系统开发运行环境鉴于系统的开发语言和数据库,采用如下的开发环境开发环境: Windows XP Apache-tomcat-6.0.35 JDK1.5硬件实现:Intel 酷睿2 1G存 320G硬盘开发语言: Java数 据 库: Mysql-5.0.22-win32开发工具: MyEclipse8.5, Macromedia Dreamweaver 8.0预期成果: 一个可扩展的基于MVC模式的学生在线答疑系统。2.2.2 业务描述对于访问答疑系统的用户,可分为注册会员和非注册的临时用户,这两种用户有着不同的权限,比如非注册用户只能对别人的答疑
23、工程进行查看,但是不能发表自己的看法。而注册会员除了查看答疑过程之外,还可以发布问题,回复问题,查找用户,并且可以对自己的注册资料进行修改等等,图2.4 系统流程图2.2.3 系统功能概述学生在线答疑系统,是一种学生和老师之间为了进一步很好的交流和沟通,利用网络技术为基础而实现的一个平台。同时,该平台把BBS论坛形式的交流方式应用到数字化校园教学中,不仅能够让老师和同学之间的沟通更加高效,而且能够与时的解决学生课后的疑问和顾虑。鉴于本系统的性质,系统应该实现以下功能.1.用户功能实现(1)用户的登录 (2)用户的注册 (3)用户资料的修改2.答疑功能实现(1)发表疑问 (2)回复疑问 3.课程
24、信息功能实现(1)教师可以发表课程信息 (2)学生可以查看课程信息 (3)学生可以评价课程信息;4.后台管理(1)用户的管理 (2)答疑的管理 (3)版块信息的管理会员用户临时用户浏览答疑发表疑问回复疑问修改资料管理员教师发布课程会员管理答疑管理版块信息管理根据系统的概要设计,学生在线答疑系统的系统用例如下:图2.5 系统用例图第三章 系统概要设计3.1 数据库设计本系统使用MySql数据库作为后台数据库,根据需求分析中提到的各种功能,首先应该有用来存储教师或者学生的注册用户信息用户表,然后应该有存储答疑模块分类信息的类别表,还应该有存储用户发表疑问的发表表,用户发表答疑以后,应该有回复答疑的
25、回复管理表。此外还应该有超级管理表,用其来管理后台数据的处理。综上分析,所以为数据库建立以下这些表,如下表3.1。表3.1 总体表设计表名userpostresponseadmincourseteacher字段数557555概要功能用户信息疑问信息回复信息管理员信息课程表教师表1.设计表user:(用户表)user表主要用来保存用户的注册信息,分别用不同字段表示用户的各种信息,包括用户的用户序号、用户名、用户密码、用户性别、用户头像等。具体容见下表3.1。图3.1 用户实体图2.设计表post:(疑问表)该表主要用来保存学生或者是老师,在登陆的情况下,发表的疑问问题和别人对其给予的解决办法的记
26、录和显示。其字段主要如下:疑问序号,疑问所属模块,疑问主题,帖名,疑问容,发表时间,发表者是谁。具体容见下图3.2。图3.2 疑问实体图3.设计表response:(回复表)该表主要用来保存商品的各种信息,各个字段分别用来表示回复疑问ID,回复的容,回复的时间,给哪个疑问回复,回复者等等。其中,po_no是引用post表的ID。具体容见下图3.3。 图3.3 回复实体图4.设计表admin:(管理员表)该表用来保存已下订单的各种信息,各个字段分别用来表示管理员ID,用户名,密码。具体容见下图3.4。图3.4 管理员实体图5. 设计表course:(课程表)课程表:主要储存教师和学生有关的课程信
27、息。c_id为课程编号、 c_name为课程名称、c_content为课程具体信息、u_id有关用户的ID、 t_name教师表的名称. 具体容见下图3.5图3.5 课程实体图根据以上的数据库设计,总结了数据库中表与表之间的关系如下:图3.6 数据库综合实体图3.2 功能模块的设计根据绘制出的系统综合用例图,系统分为四个较大的子模块,他们分别是用户子模块,疑问子模块,课程信息子模块和后台管理子模块。3.2.1.用户模块 顾名思义,本人设计的该模块主要用来实现用户的管理。而管理的容有用户的登录,用户的注册,用户的个人资料修改等等的一系列的操作。对于用户而言,本人将用户分为会员用户和非会员用户。1
28、.会员登陆模块设计会员对大家并不陌生,只有你是会员了,才可以享受其中的一些会员特权。而登录模块就是专门为会员设立的一个登录窗口,只有用户登录了,才能进行下一步的操作,如发表疑问,回复疑问,浏览答疑信息,查看个人课程信息,针对自己选修的课程进行答疑操作等等。2.会员注册模块设计 如果你是一个非会员,那么你的权力将得到限制。为了给用户提供一个人性化的,合理的设置,只要有意向的用户,就可以成为该平台的一员。只要通过注册页面的所有操作,就可以顺利的成为会员用户。根据以上所述,初步设计了有关用户登陆和用户注册的类图如下:图3.7 用户登陆的类图图3.8 用户注册的类图3.2.2答疑信息管理模块设计对于会
29、员和非会员的最大的区别之处在于:会员可以在登陆的情况下,发表问题,回复问题等等操作。学生在登陆成功的前提下,可以查看自己的选课情况,并且在相应的课程下,发表自己的疑问,寻求老师的答疑。教师在登陆的情况下,可以查询跟自己有关课程下的疑问,然后根据情况进行答疑。所以本人初步设计的发表疑问,回复疑问的类图如下:图3.9 发表问题类图发表问题类的调用关系:用户在登陆的情况下,用户可以发表疑问。首先用户跳转到发表问题的页面,点击发表按钮后,经过JavaScript校验以后,把数据提交到名字为select_bip的Servlet。然后把得到的数据进行封装处理,封装成一个PostBean,再调用Opost的
30、insertPost()方法,在该方法里,再次调用DB类,连接数据库。最后把封装的PostBean插入到数据库中。同理,回复问题的类图如图3.10所示:图3.10 回复问题类图回复问题的调用关系:首先用户跳转到回复问题的页面,点击回复按钮后,经过JavaScript校验以后,把数据提交到名字为select_bip的Servlet。然后把得到的数据进行封装处理,封装成一个ResponseBean,再调用Oresponse的insertResponse()方法,在该方法里,再次调用DB类,连接数据库。最后把封装的PostResponse插入到数据库中。3.2.3 课程信息模块设计作为一个学校学生在
31、线答疑系统,课程信息必不可少。根据系统需求分析,决定课程信息做以下概要设计:(1)老师可以开设自己的课程,并做专题的答疑模块。(2)学生可以根据个人需求,查看有关方面的课程,并且可以发表疑问,而且可以给别人回复自己的看法。根据以上分析,课程信息的有关类图设计如图3.11图3.11 发布课程信息类图发布课程信息的类的调用关系:首先用户(老师角色)跳转到发表课程的页面,点击发布课程按钮后,经过JavaScript校验以后,把数据提交到名字为select_bip的Servlet。然后把得到的数据进行封装处理,封装成一个CourseBean,再调用Ocourse的insertCourse ()方法,在
32、该方法里,再次调用DB类,连接数据库。最后把封装的CourseBean插入到数据库中。第四章 系统详细设计4.1 界面设计对于系统来说,用户界面设计将是非常重要的,因为一个交互良好的界面能够加深浏览者的印象和很好的和客户沟通。根据实际需求,本人分两步来设计。第一部分是草图的绘制。第二部分是具体网页的设计和实现7。第一步是设计版面布局。对于一个页面的设计,版面的布局设计时首要设计。通过网络资源的查阅和利用,常用的软件是Macromedia的Dreamweaver8.0以与Adobe的Photoshop等等。本系统主要采用的是Dreamweaver8.0,通过站点的建立,配合Myeclipse8.
33、5联合开发,最终设计和实现了JSP页面的雏形和最终页面的完成。第二步是界面的实现。在页面的实现过程中,我主要遵循了一下几个规则。统一连贯。首先页面的整体风格要适合自己所要表达的容。设计的是一个学生在线答疑系统,那么采用的是以蓝色为基调的风格,凸显了学生的活力和热情。布局合理、和谐。是指整个页面要符合大众人群的一个审美观念,不能走非主流的设计风格。布局是一个页面显示的主体框架,一个好的布局,能给用户很好的使用效果和深刻的浏览记忆。经过本人的初步设计,最后系统的简单主界面如下图4.1图4.1 首页设计图在实际调试和设计、运行之后,该系统的主页面如下图4.2图4.2 主界面图4.2 系统分层的实现根
34、据MVC设计思想,决定使用JSP作为动态页面表示层,JavaBean作为Model层,Servlet作为控制层。具体实现如下叙述。4.2.1 表示层的设计JSP是一种实现普通静态HTML技术和动态HTML技术混合编码的网页技术8。它具有跨平台性、运行效率高等优点。该系统根据分层情况,表示层我选用的是JSP动态页面技术。下面以用户登录界面作为例子。具体顺序图如下图4.3图4.3 表示层的顺序图4.2.2 控制层的设计控制层的选用,首选Servlet。因为 Servlet可以和其他资源交互。该系统中servlet的工作原理体现如下:当用户从前台JSP页面选择操作后,触发servlet请求服务器。然
35、后JSP页面会携带参数并访问服务器。服务器会根据请求初始化servlet,并找到WEB.XML文件中请求的路径,然后根据发射机制,定位到servlet所对应的那个JAVA类,然后进行一系列的逻辑处理。本系统使用的Servlet的配置如下: check_ul /check_ul user_logout /user_logout check_reg /check_reg insert_bp /insert_bp select_bip /select_bip insert_br /insert_br index.jsp 4.3 各个功能模块的设计根据系统分析和系统的概要设计,基本确定该系统有会员模块
36、,容模块,后台管理模块三大模块组成。所以基于上面的设计基础,下面具体介绍各个模块的基本功能的实现。4.3.1 会员模块详细设计根据系统分析和功能的要求,基本确定的是用户在没有登录的情况下,只能浏览系统的容,而不能发表容。只有在登陆的情况下,才可以回复和发表疑问。所以会员登陆的顺序图如下:图4.4 用户登陆功能顺序图用户登陆类的调用关系:首先在user_login.jsp页面上,用户输入用户名和密码,然后跳转到check_ul的servlet中,把得到的用户名和密码封装到userBean中,再调用Ouser的getUser()方法。getUser()再次调用DB类,与数据库,最后检索数据库中是否
37、有前台传过来的并且是匹配的用户名和密码。根据系统分析和功能的要求,基本确定的是普通用户拥有可以注册的权利,升级为会员用户。所以以下是用户注册的顺序图4.5图4.5 用户注册顺序图4.3.2 答疑模块详细设计答疑模块的完成流程和会员模块类似,都是先根据JSP网页,建立相映的Servlet逻辑判断类,之后通过调用Dao层建立和帖子有关的数据库访问,最后利用JDBC实现和数据库数据的交互。当用户登陆后,就是会员用户,那么他就可以发表疑问和查看自己的课程。所以用户的发表疑问的顺序图如下图4.6图4.6 发表疑问顺序图发表问题类的调用关系:用户在登陆的情况下,用户可以发表疑问。首先用户跳转到发表问题的页
38、面,点击发表按钮后,经过JavaScript校验以后,把数据提交到名字为select_bip的Servlet。然后把得到的数据进行封装处理,封装成一个PostBean,再调用Opost的insertPost()方法,在该方法里,再次调用DB类,连接数据库。最后把封装的PostBean插入到数据库中。根据系统分析和功能的要求,用户在登陆的情况下,可以回复疑问,所以以下是用户回复疑问的顺序图,如图4.7图4.7 回复疑问顺序图回复问题的调用关系:首先用户跳转到回复问题的页面,点击回复按钮后,经过JavaScript校验以后,把数据提交到名字为select_bip的Servlet。然后把得到的数据进
39、行封装处理,封装成一个ResponseBean,再调用Oresponse的insertResponse()方法,在该方法里,再次调用DB类,连接数据库。最后把封装的PostResponse插入到数据库中。4.3.3后台管理模块详细设计后台管理模块是管理员对前台进行管理的平台,在此模块实现的过程中,最重要的一点就是权限的控制,只有管理员的身份才可以对此模块进行操作,权限的控制已经交给了控制组件进行完成.管理员可以在此模块中主要完成对帖子和会员的管理,管理员可以管理前台的版块容,发表和回复容的管理等,从而实现管理的功能。图4.8 管理员登陆顺序图后台超级管理员给模块上发表新闻的顺序图如图4.9图4
40、.9 管理员发布新闻4.3.4 会员模块的实现此次会员登陆模块的设计上,使用了JavaScript作为前台登陆输入信息的校验。并且使用了动态码验证技术,提高了前台登陆的验证,使系统的安全性得到一些提高。并且该系统支持会员注销结合着这两种技术的使用,的前台会员登陆实现如下图4.10图4.10 会员登陆图前台模块中,用户注册实现图如下:图4.11 用户注册界面图4.3.5 答疑模块的实现主界面分为四个版块,每个版块下面有自己独立的帖子容。在实现的过程中,首先遇到的问题是如何区别几个版块的帖子容。为此,给每个版块设置了固定的编号,每一次用户点击,都会把当前所点击的所属版块ID传递到控制层,控制层接受
41、到从前台传递过来的数据后,然后到数据库进行检索匹配,检索相应的容。在设计的过程中,遇到的第二个问题是如何发表和回复。为此,利用了数据库知识,在设计表的时候,给回复表添加了帖子表的ID,那么你回复的时候便会把信息存入数据库,然后你就可以检索出该帖子下的所有回复,以与是谁给你回复的。同理,在帖子发表的时候,也是经过这样的处理。经过导师指导和自己努力实践以后,功能基本实现,功能界面如下:图4.12 发表疑问图其代码实现后的页面展示如图4.13所示图4.13 回复疑问图4.3.6 后台管理模块的实现根据系统分析以与系统设计之后,在导师的带领下,完成了自己的后台页面的设计和实现,具体如下:图4.14 后
42、台管理员登陆图根据实践,得到以下实际的效果图,如下:图4.15 管理员发表新闻图第五章 系统的调试与测试5.1 测试理论概述5.1.1软件测试的目的和方法随着测试在国的流行趋势,测试目的也正在发生着变化,从最开始能够证明软件正常工作为目的,到20世纪70年代中期以发现错误为目的,到今天软件测试已经演变成了提高软件质量,进行软件控制为目的9。本人通过学习总结发现,按照软件测试理论的分类如下:主要的软件测试分为单元测试、集成测试、系统测试和验收测试。如图5.1所示:图 5.1 软件测试分级模型图5.1.2软件测试的任务1、对于软件测试而言,测试人员的首要任务是分析清楚客户的需求,跟客户有效的高效的
43、沟通是一个测试人员的首要素质;2、遵循用户的需求,制定详细的测试用例,然后测试,并能够尽量多的找出Bug;3、根据测试出的Bug数目,来衡量当前软件的质量;最终的目标是:确保软件的质量;5.2 测试的分类105.2.1黑盒测试黑盒测试(black box testing):是指不考虑程序部结构和处理过程的情况下,仅仅根据程序的功能人为的来设计测试用例的一种方法。本人首先对用户模块,帖子模块,课程信息模块,后台管理模块等进行了黑盒测试。比如在登录时,输入空白用户名等等。在发帖的时候,发一个空白的帖子等等的测试,得出结论是该系统基本实现了概要设计时的基本功能。5.2.2白盒测试白盒测试(white
44、 box testing):是指完全了解程序的结构和处理工程的情况下设计测试用例从而进行测试的一种方法。白盒测试们可以这样通俗的理解,测试对象就像一个透明的盒子,而测试人员能够清楚的知道其部的一些属性和方法,然后根据实际情况,制定相应的测试用例,然后进行测试。而经常测试人员采用的是Junit测试方法。这次也是主要采用了Junit进行了各个模块的单元测试,首先是各个类的方法和属性的测试,接着是各个模块的测试,最后整合整个项目进行了测试,结果基本上是可行的。5.3单元测试单元测试是指对程序的各个组成单元进行测试,验证每一个单元模块是否完成了预期的功能11。基本单元一般来说是一个函数,一个过程,或者是一个类。单元测试本人采用的是Junit来进行测试。下面以登陆模块为例,用黑盒测试方法的测试用例如下:对用户名、密码的有效性进行测试 测试方法:最有效的方法是采用等价类划分的方法 其中要考虑:(1)是否区分大小写 (2)是否允许重名 (3)用户名长度测试:有