河北大学在线投票系统需求分析学校:专业:班级:姓名:学号:2摘要随着科技的飞速发展,计算机已经广泛的应用于各个领域之中,而且日趋普及。在计算机应用中很重要的一部分就是编程语言,它的出现打开了计算机应用的新篇章。选举、调查不再局限于以往的方式,在线投票系统以更便捷、更快速、更经济、更准确的优势广泛应用于各种网络投票选举、问卷调查中。它将用户和网站很好的联系起来,进而达到互联网资源共享的目的。在线投票系统可以用来统计网站用户对某个主题或热门话题的意见。网站管理员也可以通过在线投票系统这个媒介去了解用户的思想、意见,并通过在线投票系统的结果反馈改进工作策略。本系统采用JSP中常见的语言模块,以操作系统WindowsXP作为开发平台,并且使用MyEclipse、SQLserver2000等工具设计开发;在线投票系统包括前台注册、登录、投票、结果查看和后台管理等部分,管理员可随意增删和修改投票项目,可管理投票用户账号,以及设定隐藏、公布投票结果等功能。1.需求分析1.1系统介绍本投票系统主要分为普通用户和管理员两部份。普通用户登录后可以进行投票和查看投票结果;管理员登录后可以进行管理投票话题和管理投票项。“投票”用例主要的功能是普通用户对某个投票话题进行投票,在用户进行投票时检测用户是否已经投票了该话题,保证每个用户都一个话题只能投一次票。“查看投票结果”用例负责为用户提供某个话题的投票情况,包括每个选项的票数以及统计图。“登3录”负责核对管理员的用户名与密码,保证管理员身份的正确性。“管理投票话题”用例负责为管理员提供添加和删除话题的功能。“管理投票项”用例负责为管理员提供添加和删除选项的功能。1.2需求提取1.2.1在线投票系统应具有的独特的功能:1、方便的操作。原有的手工投票管理基本上是人工操作,效率低下,缺乏方便性,在线投票管理系统运用计算机和其他附加设备,不再需要手工操作,基本上是全自动化,能够节省人力、最大限度地利用各种宝贵的资源,大大的提高了效率。2、友好的界面。友好的用户界面会给人一种亲切的感觉,在使用起来不会觉得沉闷,效率自然也会提高了。3、强大的功能,能够满足需要,快速简单的统计任务,提高质量。1.2.2在线投票系统需要满足的条件:1、系统自动把投票结果转换为百分比显示。2、投票管理员可以对投票主题和投票选项进行设计与修改。1.2.3在线投票系统开发应遵循以下要求:1、尽量采用现有软硬件环境及先进的系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。2、系统应具有可扩展、可复用的特点,能与投票系统接轨,数据库的设计应该具有通用性。3、系统采用模块化程序设计方法,既便于系统功能的各种组合4和修改,又便于系统维护人员的调试与修改维护。4、系统应具备数据库维护功能,及时根据需要进行数据的添加、删除、修改等工作。2.开发工具简介在在线投票系统的设计发主要用了JSP技术MyEclipse、SQLserver2000等。JSP技术有点类似ASP技术,它是在传统的网页HTML文件中插入Java程序段和JSP,从而形成JSP文件。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。在线投票系统用JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使本系统基于Web的应用程序的开发变得迅速和容易。1、一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。2、系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是现而易见的。3、强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。4、多样化和功能强大的开发工具支持。这一点与ASP很像,Java5已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。3.结构分析3.1系统结构图在线投票系统总体功能模块包括普通用户模块和管理员模块,其具体描述如下:1.普通用户模块1、用户注册:普通投票用户须通过账号注册方可以进行投票;2、登录:注册成功后,可输入用户名和密码登录系统;3、重选:用户可以进行重新投票;从以上介绍中我们能看到,普通用户模块包含着3个不同的功能,其各部分功能关系如图所示。普通用户模块图在线投票系统普通用户用户注册提交投票查看结果62.管理员模块1、发布新问题;2、用户管理,管理员可以增加和删除用户,或者更改密码;3、查看所有投票;从功能描述的内容中可以看到,管理员模块可以实现添加投票话题、删除投票话题、增加投票项、删除投票项、公布结果和查看投票结果6个完整的功能,并且不同功能之间也存在着一些直接或间接联系,如图所示。管理员模块图3.系统的流程:在线投票系统的流程图包含了该系统的投票原理与主要制作方法。从流程图上我们可以看到在线投票系统需要经过登录、显示投票删除主题添加主题查看投票增加投票项用户管理删除投票项公布结果删除用户添加用户更改密码管理员在线投票系统7项、取得投票参数、累加投票数、将投票写入数据库和显示投票结果等步骤,其流程图,如图所示:投票流程图3.2系统用例图整个系统主要有三个参与者,分别为普通用户和管理员。数据库为系统的所有用例提供数据,保证系统的正常运作。系统的用例主要有五个,分别为:投票、查看投票结果、登录、管理投票话题、管理投票项。“投票”用例主要的功能是普通用户对开始登录显示投票项取得投票参数结束是否取得参数累加投票数将结果写入数据库显示投票结果否是8某个投票话题进行投票,在用户进行投票时检测用户是否已经投票了该话题,保证每个用户都一个话题只能投一次票。“查看投票结果”用例负责为用户提供某个话题的投票情况,包括每个选项的票数以及统计饼图。“登录”负责核对管理员的用户名与密码,保证管理员身份的正确性。“管理投票话题”用例负责为管理员提供添加和删除话题的功能。“管理投票项”用例负责为管理员提供添加和删除选项的功能。3.3数据库功能模板数据库设计是软件开发中的重要环节,是对系统数据全面的、详细的分析。数据库设计的好坏直接关系到整个项目设计的效率的高低,关系到设计的稳定性。根据在线投票系统不同模块之间的联系和前期的设计目的与需求,设计了三个不同的数据表,它们分别是用户表、投票选项表和投票主题表。1.用户表(Admins)用户表包括所有用户的各种信息,如用户名、密码等详细数据并规定了每个字段的类型,如表所示。用户表(Admins)字段名数据类型长度是否主键描述admnameVarchar50是用户名admpwdVarchar50否密码2.投票选项表(Items)投票选项表包括每个投票选项的基本信息,如投票编码、问题ID、投票选项和投票选项各选项所得票数等信息,同时此表还规定了字段类型和长度,具体的数据说明如表3-7-2所示。9投票选项表(Items)字段名数据类型长度是否主键描述ItemIDint11是投票编码QuestionIDint255否问题IDItemvarchar500否投票选项ItemCountbigint20否票数3.投票主题表(Question)投票主题表包括投票主题、问题ID、是否对外投票、投票日期以及是否对外公布投票结果等信息,详细数据类型和字段长度如表3-7-3所示。投票主题表(Question)字段名数据类型长度是否主键描述QuestionIDint11是问题IDQuestionvarchar500否投票主题IsVisableint10否是否对外投票Datevarchar50否日期值IsOpenvarcharint否是否对外公布结果4.系统详细功能分析4.1用户登录模块4.1.1功能描述用户登录:如果是已经注册的用户,则直接验证登录到投票系统首页;如果是还未注册的用户,则首先进行注册,注册成功,进行登录,登录成功的用户进入投票系统首页。4.1.2性能身份认证和检查用户要对数据库进行搜索和录入,检查用户是不是合法和注册时,用户表里是否有此用户名,要求反应时间在1秒之内,并在0.5秒之内跳到注册页面。4.1.3输入项在登录界面登陆的信息包括:用户信息(用户名,密码,数据类型:char,密码要以黑点显示)。4.1.4输出项10对用户输入信息进行判断,通过验证后进入用户操作界面,如果该用户信息不存在提示“注册”。4.1.5流程逻辑4.2管理员管理模块4.2.1程序描述本程序设计目的为管理员登录以及对管理员身份进行验证。4.2.2功能描述管理员登录:如果是管理员,则直接验证登录到后台管理系统首页,如果如果不是管理员,则显示错误信息。4.2.3性能身份认证和检查管理员要对数据库进行搜索和录入,检查管理员管理员登录后台首页出错信息验证输入否是顾客注册错误页面登录网页首页11是不是合法时,管理员表里是否有此管理员名,如果是管理员要求反应时间在1秒之内,如果不是管理员要求反应时间在2秒之内。4.2.4输入项在登录界面登陆的信息包括:管理员信息(管理员,密码,数据类型:char,密码要以黑点显示)。4.2.5输出项对用户输入信息进行判断,通过验证后进入用户操作界面,如果该用户信息不存在提示“出错”。4.2.6流程逻辑4.3用户投票和投票结果查看模块4.3.1程序描述本程序设计目的是用户进行投票以及对投票结果进行查看。4.3.2功能描述投票管理:选择投票项,点击“提交”,数据库增加相应票数,转换到投票查看页面;点击“重置”,返回默认头投票项。投票结果查看:点击“查看投票结果”,可以查看到管理员允许对外公布的投票结果。4.3.3性能管理员验证错误页面登录后台首页12投票提交要求反应时间在1秒之内,数据库修改数据并以数字和图示显示结果。4.3.4投票输入项点击投票项,被选中的选项以黑点显示。4.3.5结果输出项点击查看结果,页面显示管理员允许对外公布的票数和图示。4.3.6流程逻辑4.4管理员编辑模块4.4.1程序描述本程序设计的目的主要是管理员对主题、选项和用户信息的增删的实现。4.4.2功能描述用户投票提交重置查看结果显示对外公布结果隐藏对外公布结果增加操作信息删除确定等待操作取消取消确定修改DB134.4.3管理员编辑模块性能本模块要求对数据字典进行维护。用户名、主题名和选项不可以有重复,所以在输入中要检查冲突信息,删除信息时不要发生误操作。要求点击确定之后系统核查反映时间=1秒,并在0.5秒内跳转回后台管理界面。总结:这个系统主要采用的jsp技术,数据库为SQLSERVER2000,服务器为Tomcat,开发环境是MyEclispe。在JDK安装中需要设置系统坏境和Tomcat的安装中需要设置虚拟机为JDK的安装路径,这一步是挺重要的。本系统的开发主要分为:界面层、逻辑结构层、数据存储层。由于中英文的编码是不一样的,在设置的过程中,很容易出现乱码,需要设置charset,这一步很重要,否则会出现乱码。通过这一次的系统设计,我们获益匪浅。不仅对JSP这门课有所掌握,还加强了对代码的编写能力、加深对代码实现功能进一步地了解。在这次编写中,我们更加坚定了信心,更能体会到团队合作的优势。用户操作手册开发工具:MyEclipse数据库:SQLserver2000先导入数据库,然后部署到服务器,启动在浏览器进入在线投票系统首页,在首页,可以进行用户注册、用户登陆等操作;用户登陆后,可以进行投票和查看投票结果。在浏览器地址栏进入管理员登陆界面,在后台主页,管理员可以进行添加主题、删除主题、添加选项、删除选项、查看投票统计结果以及用户管理等操作。