毕业论文-JSP在线投票系统_第1页
毕业论文-JSP在线投票系统_第2页
毕业论文-JSP在线投票系统_第3页
毕业论文-JSP在线投票系统_第4页
毕业论文-JSP在线投票系统_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1、 太原理工大学毕业设计(论文)用纸 绪论1.1 项目简介随着科技的飞速发展,计算机已经广泛的应用于各个领域之中,而且日趋普及。在计算机应用中很重要的一部分就是编程语言,编程语言的出现打开了计算机应用的新篇章。在这些编程语言中JSP占有着重要的地位,JSP拥有Java编程语言“一次编写,各处运行”的特点1。在当今的网络应用中JSP无处不在,在线投票系统就是JSP功能强大的一个最好的例证。在线投票系统有很多传统投票方式不可比拟的优势:首先,它可以在很短的时间内,通过互联网将不同时间不同地域的用户投票组合到一起,并进行结果反馈,这是传统的投票方法完全做不到的;其次,在线投票系统的效率要比以往的传统投

2、票方法高很多,在这个寸时如寸金的年代,在线投票系统不但省去了投票与计票环节的人力成本,还可以节省很多时间以用作处理其他更重要的事情;综上所述,在线投票系统有着快捷、经济、方便、省时省力等诸多优点都注定它将是未来投票方式的主流。在线投票系统可以用来统计网站用户对某个主题或热门话题的意见。网站管理员也可以通过投票的方式了解用户的看法,或者通过在线投票系统这个媒介去了解用户的思想、意见,并通在线投票系统的结果反馈改进自己的网站设计。政府决策者也可以通过在线投票系统来调查民众对某一项新政策的意见,进而统计数据做出更恰当的决策。在线投票系统是当今各大网站必备的程序之一,一个网站不断发展的前提就是众多用户

3、的支持,一个好的网站一定要注意与用户之间信息的交流。能够有效得到用户反馈的信息,并及时对网站内容进行改进,这也是一个网站持续发展的基础。也正是由于以上原因,网络上各式各样的投票系统层出不穷。本次课程设计的目的,就是来制作一个在线投票系统,该系统可以实现对投票数量进行累加、查询、统计票数等操作。1.2 项目目标因在线投票系统有着经济、快捷等诸多优点,所以在实际项目实践中如何很好的实现这些优点便成了整个开发过程中的重中之重。在整个项目实践中,首先对课题的实际要求与需求分析进行详细的考究,查阅大量的相关资料,并且借鉴一些其他投票系统的项目经验,最后提出设计方案。系统分为前台和后台两部分,前台主要是对

4、普通用户开放。普通用户将实现注册、投票、重选等操作;后台主要作用是管理员实现登录、投票管理、用户管理等操作。依据前台和后台的不同权限需求,在线投票系统主要分为普通用户和管理员两个功能模块。普通用户模块将实现用户注册、用户登录、用户投票以及投票重选和查看投票结果等功能。管理员模块将实现管理员登录、发布新投票、撤消投票、查看所有投票、编辑和删除新投票以及用户管理等功能。1.3 项目特色本在线投票系统具有的主要特色: 其一,方便的操作。原有的手工投票管理基本上是人工操作,效率低下,缺乏方便性,在线投票管理系统运用计算机和其他附加设备,不再需要手工操作,基本上是全自动化,能够节省人力、最大限度地利用各

5、种宝贵的资源,大大的提高了效率。 其二,友好的界面。友好的用户界面会给人一种亲切的感觉,在使用起来不会觉得沉闷,效率自然也会提高了。 其三,强大的功能,能够满足各种统计需要,实现快速简单统计。 2 概要设计2.1 开发工具及开发语言 在在线投票系统的设计开发过程中主要用的是基于JSP语言的相关开发技术及工具,其中用到的工具有:JDK1.6.0、MyEclipse10.0、SQL server 2008、Apache Tomcat等。2.1.1 JSP简介JSP技术是在传统的网页HTML文件中插入Java程序段和JSP,从而形成JSP文件2。JSP技术使用Java编程语言编写类XML的tags和

6、script lets,来封装产生动态网页的处理逻辑。在线投票系统用JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使本系统基于Web的应用程序的开发变得迅速和容易。一次编写,到处运行。系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。 多样化和功能强大的开发工具支持。2.1.2 SQL Server 2008

7、简介 SQL Server 2008 是Microsoft 公司推出的SQL Server HYPERLINK /view/68446.htm数据库管理系统,SQL Server 2008 数据库系统使用最常用的数据库管理语言结构化查询语言(SQL)进行数据库管理3。它具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用;SQL Server 2008 不但结合了分析、报表、集成和通知功能,而且它具有的图形化用户界面,可以使HYPERLINK

8、/view/635537.htm系统管理和数据库管理更加直观、简单;SQL Server2008与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等4。SQL Server2008也可以很好地与Microsoft Back Office产品集成。SQL Server2008因为其速度、可靠性和适应性而备受关注。针对以上种种情况,SQL Server 2008 数据库是在线投票系统最好的选择。2.1.3 MyEclipse 10.0简介MyEclipse企业级工作平台(HYPERLINK /view/42723.htmMyEclipseEnterprise W

9、orkbench ,简称HYPERLINK /view/42723.htmMyEclipse)是对HYPERLINK /view/23576.htmEclipseIDE的扩展,利用它我们可以在HYPERLINK /view/1088.htm数据库和JavaEE的开发、发布以及HYPERLINK /view/330120.htm应用程序HYPERLINK /view/133203.htm服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEEHYPERLINK /view/14867.htm集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HYPERLINK /view/692

10、.htmHTML,Struts,JSP,HYPERLINK /view/15916.htmCSS,HYPERLINK /view/16168.htmJavascript,Spring,SQL,HYPERLINK /view/7291.htmHibernate。MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链

11、接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。在结构上,MyEclipse的特征可以被分为7类: HYPERLINK /view/169790.htmJavaEE模型 WEB开发工具 EJB开发工具 HYPERLINK /view/330120.htm应用程序HYPERLINK /view/133203.htm服务器的连接器 JavaEE项目部署HYPERLINK /view/133203.htm服务 HYPERLINK /view/1088.htm数据库HYPERLINK /view/133203.htm服务 MyEclipse整合帮

12、助MyEclipse 10的发布:该版本使用最高级的HYPERLINK /view/79807.htm桌面和HYPERLINK /view/4425077.htmWeb开发技术,包括 HTML5 和 Java EE 6,支持 JPA 2.0、JSF 2.0 、Eclipselink 2.1 以及 OpenJPA 2.0.MyEclipse 10对检索功能以及错误查询功能更加强大,包括对js文件的错误查询。就目前本人的体验来说,最大的变化莫过于软件安装界面,推荐使用link方法进行插件安装,方便快捷。2.1.4 JSP结构体系 在JSP中,SERVLET作为服务器与客户端的接口,接受来自用户的参

13、数,并响应用户的请求。JAVABEAN用于逻辑功能的实现。JSP编程技术对于数据进行显示。JDBC作为JSP与数据库的接口。XML为扩展的标记语言,可以定义自己的标记语言。SQL分类: 数据定义语言(DDL): CREATE, ALTER, DROP, DECLARE 数据操作语言(DML): SELECT, DELETE, UPDATE, INSERT 数据控制语言(DCL): GRANT, REVOKE, COMMIT, ROLLBACK2.2 总体功能模块设计在线投票系统总体功能模块包括普通用户登录模块和管理员登录模块,其具体描述如下:2.2.1 普通用户模块(1)用户注册和登录:普通投

14、票用户须通过账号注册,注册成功后,可输入用户名和密码登录系统,登录成功方可以进行投票。(2)提交投票:用户登录成功后对感兴趣的主题进行投票。(3)重选:用户可以进行重新投票。从以上介绍中我们能看到,普通用户模块包含着以下几个不同的功能,其各部分功能关系如图2-1所示。图2-1 普通用户模块图 2.2.2 管理员模块 (1)发布新问题。(2)用户管理,管理员可以增加和删除普通用户(超级用户不能删除),或者更改普通用户密码。(3)查看所有投票。从功能描述的内容中可以看到,管理员模块可以实现发布新投票、重新编辑投票、查看所有投票、删除投票、公布结果和撤销投票等多个完整的功能,并且不同功能之间也存在着

15、一些直接或间接联系,如图2-2所示。图2-2 管理员模块图在线投票系统的流程图包含了该系统的投票原理与主要制作方法。从流程图上我们可以看到在线投票系统需要经过登录、显示投票表单、取得投票参数、累加投票数、将投票写入数据库和显示投票结果等步骤,其流程图,如图2-3所示。开 始开 始登 录显示投票选项取得投票参数结 束是否取得参数累加投票数将结果写入数据库显示投票结果否 是 图2-3投票流程图3 详细设计3.1 数据库设计与人工管理和文件系统相比,数据库系统的特点主要有以下几个方面:数据结构化:在文件系统中,尽管其记录内部已有了某些结构,但记录之间没有联系。而数据库系统则实现了整体数据的结构化,这

16、是数据库的主要特征之一,也是数据库与文件系统的本质区别。数据的共享性高、冗余度低、易于扩充。数据库系统从整体角度看待和描述数据,数据不再面向某个特定的应用程序,而是面向整个系统;因此,数据可以被多个用户、多个应用程序共享使用。数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。数据独立性高:数据独立性包括数据的物理独立性和逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。也就是说,数据在磁盘上的数据库中如何存储是由DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样一来当数据的物理存储结构改变时,

17、用户的程序不用改变。逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不改变。数据由DBMS统一管理和控制:数据库的共享是并发的(concurrency)共享,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据。DBMS必须提供以下几方面的数据控制功能:数据的安全性保护(security)数据的完整性检查(integrity)数据库的并发访问控制(concurrency)数据库的故障恢复(recovery)数据库设计是软件开发中的重要环节,是对系统数据全面的、详细的分析。数据库设计的好坏直接关系到整个项目设计的效率

18、的高低,关系到设计的稳定性。根据在线投票系统不同模块之间的联系和前期的设计目的与需求,设计了四个不同的数据表,它们分别是用户表、投票选项表和投票主题表、管理员表。3.1.1 数据库连接 数据库连接主要jsp 代码: 3.1.2 用户表用户表包括所有用户的各种信息,如用户名、密码等详细数据并规定了每个字段的类型,如表3-1所示。表3-1用户表(dbo.user)字段名数据类型长度是否主键描述AdmnameVarchar50是用户名AdmpwdVarchar50否密码 在SQL中建表语句: create table dbo.Users ( Admname varchar(50) not null,

19、 Admpwd varchar(50) not null, )3.1.3 投票选项表投票选项表包括每个投票选项的基本信息,如投票编码、问题ID、投票选项和投票选项各选项所得票数等信息,同时此表还规定了字段类型和长度,具体的数据说明如表3-2所示。表3-2 投票选项表(dbo.items)字段名数据类型长度是否主键描述ItemIDint11是选项IDQuestionIDint255否主题IDItemvarchar500否投票选项ItemCountbigint20否票数 在SQL中建表语句: create table dbo.Items ( ItemID int identity, Questio

20、nID int not null, Item varchar(500) not null, ItemCount bigint not null default 0, constraint PK_ITEMS primary key clustered (ItemID) )3.1.4 投票主题表投票主题表包括投票主题、问题ID、是否对外投票、投票日期以及是否对外公布投票结果等信息,详细数据类型和字段长度如表3-3所示。表3-3 投票主题表(dbo.Question)字段名数据类型长度是否主键描述QuestionIDint11是主题IDQuestionvarchar500否投票主题IsVisable

21、int10否是否对外投票Datevarchar50否日期值IsOpenvarcharint否是否对外公布结果 在SQL中建表语句: create table dbo.Questions ( QuestionID int identity, Question varchar(500) not null, IsVisable int not null default 0, Date varchar(50) null, IsOpen int null default 1, constraint PK_QUESTIONS primary key clustered (QuestionID) )3.1.

22、5 管理员表用户表包括所有用户的各种信息,如用户名、密码等详细数据并规定了每个字段的类型,如表3-4所示。表3-4管理员表(dbo.Admins)字段名数据类型长度是否主键描述AdmnameVarchar50是管理员用户名AdmpwdVarchar50否密码Flagint2否信号 在SQL中建表语句: create table dbo.Admins ( Admname varchar(50) not null, Admpwd varchar(50) not null, flag int not null, constraint PK_ADMIN primary key clustered (A

23、dmname) )3.1.6 其他数据库操作/*=*/* Database name: Marry */* DBMS name: Microsoft SQL Server 2008 */* Created on: 2014-3-26 8:59:11 */*=*/ alter table dbo.Items add constraint FK_ITEMS_QUESTIONI_QUESTION foreign key (QuestionID) references dbo.Questions (QuestionID) insert into Admins values(admin,admin,0)

24、/插入管理员用户 select * from Admins /查看管理员用户3.2 程序模块设计本系统分为普通用户和管理员两部分模块。普通用户模块具有注册、登录、投票等功能;管理员模块则具有登录、发布新投票、编辑投票、撤消投票、删除投票、用户管理与公布结果等功能。3.2.1 普通用户模块 (1)注册模块普通用户登录在线投票系统需要先进行账号注册,注册成功后方可以其他操作,注册模块的界面如图3-1所示。图3-1用户注册 当用户输入合法用户名和密码后就可以完成用户注册,提示页面如图3-2所示。图3-2注册成功提示 当用户输入注册过的用户名时,会出现重复注册页面。如图3-3所示。图3-3注册重复提示

25、 注册页面主要代码:用户名只能为数字和字母用户注册用户名称 用户密码 确认密码 添加用户的主要代码:% String name = request.getParameter(name); String password = request.getParameter(password); String confirm = request.getParameter(confirm); sql = select * from Users where Admname=+name+; rs = smt.executeQuery(sql); out.print(); String id = null; w

26、hile (rs.next() id = rs.getString(1); if(name.length() = 0) String errmsg = ID字段不可为空白!; out.print(错误信息+errmsg+); else if(id != null) String errmsg=这个帐号已经有人在使用了,请换新的ID!; out.print(错误信息+errmsg+); else if(password.length() = 0) String errmsg=密码不可为空!; out.print(错误信息+errmsg+); else if(!password.equals(co

27、nfirm) String errmsg=请重新确认密码!; out.print(错误信息+errmsg+); else sql=insert into Users(Admname,Admpwd) values (+name+,+password+); smt.executeUpdate(sql); String errmsg=恭喜注册成功!; out.println(注册信息+errmsg+); out.println(请重新登录); out.print(); %(2)登录模块普通用户在完成注册后方可以登录在线投票系统,注册完毕后单击“请重新登录”便可以重新返回登录页面。如图3-4所示。图3

28、-4用户登录登录模块主要代码: 用户名: 密 码: 注册 管理员登录 (3)投票模块输入正确的用户名和密码后,单击“登录”按钮,就可以直接进入在线投票系统的投票页面,如图3-5所示。图3-5用户投票 当所有的选项都投票完毕后,用户单击“提交”按钮,便完成了投票的流程,如果用户想要查看这些问题的投票结果,投票完毕后点击“查看投票结果”便可以查看当前投票结了。如图3-6所示。图3-6查看结果 投票主页面的相关代码: % sql = SELECT Question,QuestionID from questions where IsVisable = 1 ; rs = smt.executeQuer

29、y(sql); ResultSet _rs; String question = null,item = null,_sql; Statement_smt=con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); int questionid = 0,itemid = 0; int i=0,j; /题目及选项标号 while(rs.next() i+; question = rs.getString(1); questionid= rs.getInt(2); out.print(+i+.+

30、 +question+); _sql = SELECT Item,ItemID From Items Where QuestionID =+questionid; _rs = _smt.executeQuery(_sql); j = 0; while(_rs.next() j+;item = _rs.getString(1); itemid = _rs.getInt(2); % input type=radio value= name= % if(j 退出登录 查看投票结果界面的主要代码: % String question = null; String date = null; int qu

31、estionid = 0; sql = SELECT Question, Date, QuestionID from questions where IsVisable = 1 and IsOpen= 0; rs = smt.executeQuery(sql); Statement_smt=con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet _rs; while(rs.next() % question = rs.getString(1); date = rs.g

32、etString(2); questionid = rs.getInt(3); out.print(+date+发布); out.print(+question+); % 选项 记数 图示 % sql = SELECT ItemCount From Items Where QuestionID =+questionid; _rs = _smt.executeQuery(sql); int totalcount = 0; while(_rs.next() totalcount += _rs.getInt(1); if(totalcount=0) out.print(暂时还没有人参加本题投票);

33、sql = SELECT Item, ItemCount FROM Items where QuestionID =+questionid; _rs_ = _smt_.executeQuery(sql); String item; int itemcount; String percent; while(_rs_.next() item = _rs_.getString(1); itemcount = _rs_.getInt(2); percent = printf(String.valueOf(double)itemcount/totalcount*100)+0); out.print(+i

34、tem+); out.print(+itemcount+); out.print(); else out.print(共有+totalcount+人参加本题投票); sql = SELECT Item, ItemCount FROM Items where QuestionID =+questionid; _rs_ = _smt_.executeQuery(sql); String item; int itemcount; String percent; while(_rs_.next() item = _rs_.getString(1); itemcount = _rs_.getInt(2)

35、; percent = printf(String.valueOf(double)itemcount/totalcount*100)+0); out.print(+item+); out.print(+itemcount+); out.print(+ percent+%); out.print(); %3.2.2 管理员模块 (1)用户管理模块管理员登录在线投票系统后可以对普通用户的账号及密码进行相关的管理操作,管理员可以直接删除用户,也可以更改用户名密码,如图3-7所示。图3-7用户管理页面 用户管理主页面: 用户名称 用户密码 确认密码 % sql = select * from admi

36、ns ; rs = smt.executeQuery(sql); String adminname; while (rs.next() adminname = rs.getString(1);out.print();out.print( + adminname + );out.print(更改密码); if (!adminname.equals(admin) out.print(删除用户); elseout.print(超级用户不能删除); out.print(); %当前普通用户 %sql = select * from users ;rs = smt.executeQuery(sql);S

37、tring username;while (rs.next() username = rs.getString(1);out.print();out.print( + username + );out.print(更改密码);if (!username.equals(admin) out.print(删除用户); % (2)投票发布模块 管理员登录在线投票系统后可以根据需要发布相关投票,并可以对相关投票进行删除、发布、撤消、隐藏等操作,相关页面如图3-8所示。 图3-8投票发布 投票发布模块主要代码: 调查主题: 选项 1: 选项 2: (3)重新编辑模块当有重新编辑某一投票选项的需要时,管理

38、员可以单击“编辑”对相关投票进行重新编辑,编辑完毕后单击“发布按钮”编辑完成,相关页面如图3-9所示。图3-9重新编辑重新编辑模块主要代码: % request.getSession(true); ession.putValue(questionid,String.valueOf(request.getParameter(questionid); int questionid; questionid = Integer.parseInt(request.getParameter(questionid); out.print(将本主题投票记数全部清0); sql = select Questio

39、n from Questions where QuestionID=+questionid+; rs = smt.executeQuery(sql); String question = null; while(rs.next() question = rs.getString(1); % input class=smallInput type=text size=90 name=question value = %sql = select Item from Items where QuestionID=+questionid+; rs = smt.executeQuery(sql); St

40、ring item = null; int i= 0; while(rs.next() item = rs.getString(1); i+; out.print(选项+i+:); % input class=smallInput type=text size=90 name=item value= % (4)公布结果模块管理员发布的投票可以根据实际需要公布和投票结果,当投票过期或者此投票已经没有公布结果的需要时,管理员可以根据需要单击“公布结果”或“隐藏结果”,相关页面如图3-10所示。图3-10公布,隐藏结果页面 (5)删除模块 管理员发布新投票后,如果有删除此投票的需要可以直接单击“删除

41、”,这样此投票就被删除了。 (6)撤消/发布模块管理员需要重新编辑投票主题时,可以先将该主题撤消,暂停被投票。新发布或是刚被修改的投票主题需要确认“发布”才能被发布。 (7)查看所有投票模块当管理员完成新投票发布或者编辑操作后,如果有需要也可以查看自己发布的所有投票,点击“查看所有投票”就可以看到管理员发布的所有投票了。如图3-11所示。图3-11查看所有投票结果4 测试4.1 测试简介软件测试(英语:software testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满

42、足设计要求进行评估的过程。软件测试是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。它是帮助识别开发完成(中间或最终的版本)的HYPERLINK /view/8318.htm计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的HYPERLINK /view/2207.htm软件过程;是HYPERLINK /view/1035334.htmSQA(software quality assurance)的重要子域。Glenford J.Myers曾对软件测试的目的提出过以下观

43、点:(1)测试是为了发现程序中的错误而执行程序的过程。(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。(3)成功的测试是发现了至今为止尚未发现的错误的测试。(4)测试并不仅仅是为了找出错误。通过分析错误产生的原因和错误的发生趋势,可以帮助HYPERLINK /view/65955.htm项目管理者发现当前HYPERLINK /view/190611.htm软件开发过程中的缺陷,以便及时改进。(5)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性。(6)没有发现错误的测试也是有价值的,完整的测试是评定HYPERLINK /view/1451265.htm软

44、件质量的一种方法。(7)另外,根据测试目的的不同,还有HYPERLINK /view/106720.htm回归测试、HYPERLINK /view/565536.htm压力测试、HYPERLINK /view/106187.htm性能测试等,分别为了检验修改或优化过程是否引发新的问题、软件所能达到处理能力和是否达到预期的处理能力等。4.2 测试原则一,测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统不能满足用户的需求。二,程序员应该避免检查自己的程序,软件测试应该由HYPERLINK /view/1243841.htm第三方来负责。三,设计测试用例时应考虑到合法的输入和

45、不合法的输入以及各种边界条件,特殊情况下要制造极端状态和意外状态,如网络异常中断、电源断电等。四,应该充分注意测试中的HYPERLINK /view/3846165.htm群集现象。五,对错误结果要进行一个确认过程。一般由A测试出来的错误,一定要由B来确认。严重的错误可以召开评审会议进行讨论和分析,对测试结果要进行严格地确认,是否真的存在这个问题以及严重程度等。六,制定严格的测试计划。一定要制定测试计划,并且要有指导性。测试时间安排尽量宽松,不要希望在极短的时间内完成也有一个高水平的测试。七,妥善保存测试计划、HYPERLINK /view/106882.htm测试用例、出错统计和最终分析报告

46、,为维护提供方便。4.3 测试目标(1)发现一些可以通过测试避免的开发风险。(2)实施测试来降低所发现的风险。(3)确定测试何时可以结束。(4)在开发项目的过程中将测试看作是一个标准项目。在使用过程中,发现系统存在的BUG,如跳转是否正确、查询结果是否正确、修改的信息是否写入数据库,针对不同情况进行具体调试。4.4 测试结果4.4.1 登录测试:打开在线投票系统,在“用户名”里填入admin,“密码”框里我们填入admin作为用户登录密码。填写完成点击“登录”按钮,将会进入系统页面,即该用户已经登录成功了。如果是错误的用户登录将提示“您输入的账号或密码不正确!”4.4.2 注册测试:打开在线投

47、票系统登录主页进行用户注册。当用户名重复或者密码为空等错误操作时,会弹出相关的错误提示,当一切操作正常后,单击“确认”按钮,弹出注册成功提示,即表示用户注册成功。4.4.3 投票测试:普通用户通过注册和登录后边可以进行网上投票。当用户名完成相关投票并单击“确定”按钮后弹出“感谢您的参与”页面,并点击“查看当前投票结果”查看相应投票。4.4.4 用户管理测试:管理员登录后单击“用户管理”按钮。弹出当前所有用户的用户信息,单击“删除”按钮,用户删除成功;在增加用户模块中填入新增用户的用户名和密码,单击“确认”按钮,新用户信息出现在用户列表中,即表示用户添加成功。 用户注册、登录模块完全正常;用户的

48、投票功能也能正常完成;投票结果正确;测试其功能基本实现。4.5 评价软件测试对象包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序。所以,软件测试是软件开发中软件质量保证的关键环节,直接影响着软件的质量评估。软件测试不仅要讲究策略,更要讲究时效性。在线投票系统的测试是贯穿整个软件开发生命周期、对软件产品进行验证和确认的活动过程,其目的是尽快尽早地发现在本系统中所存在的各种问题与用户需求、预先定义的不一致性。软件测试需注意的是:程序测试的过程具有破坏性每当测试一个程序时,人们总希望为程序增加一些价值。利用测试来增加程序的价值,是指通过测试,找出并修改尽可能多的程序缺陷,从而提高程序的

49、可靠性或质量。因此,不要只是为了证明程序能够正确运行而去HYPERLINK /view/420822.htm测试程序。相反,应该一开始就假设程序中隐藏着错误(这种假设几乎对所有的程序都成立),然后测试程序,发现尽可能多的错误。事实上,如果在测试某个程序段时发现了可以纠正的缺陷,或者测试最终确定再没有其他缺陷,则应将这次合理设计并得到有效执行的测试称作是“成功的”。而所谓“不成功的”测试,仅指未能适当地对程序进行检查,未能找出程序中潜藏缺陷的测试。“软件测试就是证明软件不存在错误的过程”。对几乎所有的程序而言,甚至是非常小的程序,这个目标实际上是无法达到的。因为即使程序完全实现预期要求,仍可能包

50、含有缺陷。也就是说,如果程序不按要求工作,它显然有缺陷,但如果程序做了不要它做的事,它也有缺陷。总之,软件测试更适宜被视为试图发现程序中错误(假设其存在)的破坏性的过程。一个成功的测试,通过诱发程序发生错误,可以在这个方向上促进软件质量的改进。当然最终人们还是要通过软件测试来建立某种程度的信心:软件做了其应该做的,而没有做其不应该做的。 程序员应避免测试自己的程序由开发人员来测试自己的代码是一件很不妥当的事情。开发和测试生来就是不同的活动。开发是创造或者建立某种事物的行为,如一个功能模块或整个系统。而测试的重要目的是证实一个模块或者一个系统工作不正常。这两个活动之间有着本质的矛盾。一个人不太可

51、能把两个截然对立的角色都扮演地很好,因此应当限制开发人员在测试中的参与,给他们比较合适的任务是进行最底层的测试单元测试。当一个程序员完成了设计与编写程序的建设性工作后,要一夜之间突然改变他的观点,设法对程序形成一个完全否定的态度,那是非常困难的。所以,大部分程序员都由于不能使自己进入必要的精神状态(不是抱着要揭露出自己程序中错误的态度),就不能有效的测试自己的程序。除了这个心理学问题之外,还有一个重要的问题:程序中可能包含由于程序员对问题的叙述或说明的误解而产生了错误。如果是这种情况,当程序员测试自己的程序时,往往还会带着同样的误解致使问题难以发现。程序设计组织不应测试自己的程序在宏观意义上,

52、一个程序设计组织或一个工程项目是个有生命的有机体,它同样有心理学问题。在大多数情况下,人们都以“在给定日期内,以一定代价完成程序编制任务的能力”来衡量程序设计组织和项目管理人员的。这样做的理由是时间和成本指标便于衡量,而程序的质量很难HYPERLINK /view/707359.htm度量。要程序设计组织在测试自己的程序时持客观态度是很困难的,因为如果用正确的定义看待测试,就不大可能按预定计划完成测试,也不大可能把耗费的代价限制在要求的范围以内。软件生产的三个最重要的因素是:质量、进度和费用。由于费用和进度的限制,要开发一种高质量、快速交付和低成本的软件产品并不容易。也就是说要同时达到三个目标

53、是困难的。因此在软件产品的开发中要权衡它们之间的关系,使软件的特性能满足用户的要求,这意味着软件产品的特性的HYPERLINK /view/707359.htm度量和预计是必要的。HYPERLINK /view/1326208.htm客观性:对软件测试和软件中的错误抱着客观的态度,这种客观的态度可以解决测试中的心理学问题,既能以揭露软件中错误的态度工作,也能不受发现的错误的影响。经济上的独立性使测试有更充分的条件按测试要求去完成。专业性:独立测试作为一种专业工作,在长期的工作过程中势必能够积累大量实践经验,形成自己的专业知识。同时软件测试也是技术含量很高的工作,需要有专业队伍加以研究,并进行H

54、YPERLINK /view/3422191.htm工程实践。专业化分工是提高测试水平、保证测试质量、充分发挥测试效应的必然途径。HYPERLINK /view/793636.htm权威性:由于专业优势,独立测试工作形成的测试结果更具信服力,而测试结果常常和对软件的质量评价联系在一起,专业化的独立测试机构的评价,更客观、公正和具有权威性。资源有保证:独立测试机构的主要任务是进行独立测试工作,这使得测试工作在经费、人力和计划方面更有保证,不会因为开发的压力减少对测试的投入,降低测试的有效性可以避免开发单位侧重软件开发而对测试工作产生不利的影响。 结 论为做出在线投票系统,访问了大量Web网络开发

55、方面的网站,搜集了很多关于Web网络开发的中英文资料,也查阅了各种书籍的源代码作为参考和运用,从中学会了许多JSP和关于Web开发的相关知识。在几个月的毕业设计中,我遇到了很多困难,但最让我们难忘的是解决问题的过程和乐趣。同时我也学到了很多知识,特别是如何利用软件工程的思想分析、建立、开发一个系统。在系统开发过程中,我认识到编码并不是最重要的,重要的是分析系统、建立起系统模型。在分析一个系统前,分析人员必须要对将要开发的系统所涉及到的各方面知识有一个认识,进行需求分析,然后将系统的模型建立起来。在开发过程中要以用户为中心,以系统的可发展性为前提,再在功能和效率做出严格要求。本文提出了一种基于J

56、SP的在线投票系统开发与实现,该系统的普通用户和管理员管理模块的合理运用,使投票及时、准确的得以发布。用户直接参与相关主题的投票活动,使用户的意见和需求能够得到很好的表达。JSP从推出至今时间也不算漫长,由于它具有开发简单,功能强和灵活等优点,现在已被广泛接受,成为当前网站开发与互联网应用的主要技术之一,有人声称JSP已在Web开发领域悄悄地进行着一场革命。JSP的诸多优点极大方便和丰富了我们的互联网应用,使我们的互联网应用变得更加精彩,也使得我们能够体验更加人性化的网络应用。这次毕业设计,不但使我四年的理论知识得到了综合的运用,而且实践能力得到了全面的锻炼,这些,相信都将对我今后的工作有很大

57、的帮助。最后,由于时间原因,虽然在线投票系统已经实现了大体的登录、注册、投票等功能,但是此系统还存在一些不如人意的地方,相信如果有时间我一定会加倍努力并不断改进的。致 谢本次 HYPERLINK /n3c33.aspx o 毕业设计能够顺利的完成,我要感谢软件学院的各位授业恩师。在这四年紧张而又愉快的学习生活中,通过他们时时处处的言传身教,训练了我的思维,开阔了我的视野,才使得我们能够在知识的海洋里畅游、探索、发现、解决遇到的各种难题。不但使我学到了许多有益的知识,而且培养了我思考问题的方法和随时观察社会的良好习惯,我将终身铭记。在这里向我的导师李楠老师和校内朱老师致以我发自肺腑的感激和谢意!

58、我在老师指导下做毕业设计以来,从毕业设计的选题到论文提纲的确立,在这几个月的毕业设计过程中,老师都给予了我极大的帮助和指导,在老师悉心指导下,使我的毕业设计质量有了很大的提高。最后,要向与我共同研究、共同学习的同学表达我的谢意。我希望能用这篇毕业论文向所有帮助过我的人致上最诚恳的感谢,感谢他们对我的支持与鼓励!同时感谢各位评委老师对我毕业论文的评审!参考文献1 柳永坡,刘雪梅,赵长海JSP 应用开发技术M人民邮电出版社,20052 耿祥义JSP 基础教程M.清华大学出版社, 2004,(101) 3 陈刚Eclipse 从入门到精通M清华大学出版社, 2005,(416) 4 赛奎春.JSP工

59、程应用与项目实践D. 机械工业出版社, 2002,(23)5 Giulio.JSP Technical Overview and Application FrameworkM.电子工业出版社,2005 6 Brown .JSP Programming Guide(The second edition)D.电子工业出版社 ,2003 7 BruceEckel.JSP Programming ideasM.机械工业出版社,2003,(48)8 FLANAGAN.JSP Technical ManualM.中国电力出版社,2002,(203)9 王虎,张俊.管理信息系统M.武汉理工大学出版社,200

60、410王珊,陈红.数据库系统原理教程M.清华大学出版社,200411方睿,刁仁宏,吴四九编著.网络数据库原理及应用M.四川大学出版社,2005英文文献Overview of JSP Technology and JSP application frameworks 1.Benefits of JSP JSP pages are translated into servlets. So, fundamentally, any task JSP pages can perform could also be accomplished by servlets. However, this under

温馨提示

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

评论

0/150

提交评论