基于JavaEE综合调查系统的设计与实现硕士学位论文.doc
工程硕士专业学位论文(设计)题 目 基于Java EE综合调查系统的设计与实现基于Java EE综合调查系统的设计与实现软件工程 领域 研究生: 指导老师:于中华摘 要问卷调查是一种常见的研究手段,当研究者要研究某个问题或者分析某种现象时,往往会通过问卷调查的形式收集数据,然后再整理分析从而得出结论。传统的问卷调查方式都是采用纸质问卷收集数据。近年来互联网基础平台的迅猛发展 ,基于互联网的各种应用也日益受到人们的重视。采用计算机软件技术实现信息化的问卷调查,取代传统的纸质问卷调查方式,是计算机信息化应用研究的一个重要方向。基于Java EE综合调查系统的研究就是作者在该研究方向上所做的一点尝试,该系统是一个集问卷设计、用户数据导入、用户参与问卷调查、统计问卷调查结果等功能为一体的信息管理平台。该系统是在Java EE平台上搭建的Web项目,采用了当前市面上流行的组合框架SSH(Struts+Spring+Hibernate)开发技术。在系统开发过程中,完成了问卷信息管理、问卷问题编辑、参与者账户导入、匹配问卷与参与者、问卷答案统计、参与问卷调查、查看答卷信息、系统登录和权限管理等功能模块的编码开发。该系统采用eclipse作为开发工具,选用MySQL为后台数据库,Tomcat为Web服务器。系统采用MVC三层架构模式搭建,分为表示层、业务层和持久层,全部业务逻辑均在业务层实现,持久层开发采用Hibernate框架进行管理,采用C3P0数据库连接池连接数据库,能够非常便利地更换数据库。由于Java技术良好的跨平台性能,系统能够在不同操作系统的服务器环境下运行。综合问卷调查系统的部署和运行,能够有效地利用网络资源,通过网络答题的方式完成问卷调查,减少了人力物力的投入,解决了传统问卷调查的弊端。关键词:问卷调查;B/S;Java;SSH;开源框架Design and Application of Java EE Integrated Survey SystemThe field of software engineeringGraduate Student: lixu Adviser: Yu zhonghuaAbstractQuestionnaire is a common means of researching. When researchers want to study a problem or analyze some phenomenon, they often collect data by using questionnaire, then analyze the data to get a conclusion. The traditional means of questionnaire is paper-based to collect data. In recent years, the construction of internet-based platform is developing quickly, and people pay attention to applications based on internet increasingly. Using computer software technology to achieve information questionnaire, to replace traditional paper-based questionnaire, is a significant research direction of computer information technology. The research of questionnaire survey system based on Java EE is an attempt on the direction. Integrated Survey System is an information management platform in which a set of questionnaire design,user data leading-in, user participation, statistical survey results and other functions are integrated. The system is a Web project built on Java EE platform, employing the SSH, one of the most popular combination framework. During the developing process , the coding and developing of modules including questionnaire information management, questionnaire editing , accouts leading-in, matching questionnaire and participants, the statistics of answers, participating questionnaire survey, checking the answers , system loading and authority management has been accomplished. The system is based on the eclipse as a development tool, MySQL as the database, Tomcat as the Web server. System architecture is divided into the presentation layer, business layer and data persistence layer. The business logic is implemented in the business layer, and data persistence layer is managed by Hibernate framework, using C3P0 connection pool database to connect database to replace the database conveniently. Due to good cross-platform performance of Java technology, the system can function by servers equipped with different operating systems.The deployment and operation of integrated survey system can effectively utilize network resources. Conducting the questionnaire by internet can reduce the input of manpower and material resources, thus solving drawbacks of traditional questionnaire.Keywords: Questionnaire survey; B/S; Java; SSH; Open source framework目 录1 绪论11.1引言11.2 国内外研究现状21.3 本文工作22 相关理论介绍42.1 引言42.2 B/S模式介绍42.3 Java技术概述62.4 Web服务器介绍72.5 集成开发环境介绍82.6 Web框架介绍82.6.1 SSH体系框架结构92.6.2 Struts2框架介绍102.6.3 Spring框架介绍102.6.4 Hibernate框架介绍112.7 小结113 系统需求分析及总体设计133.1 引言133.2系统需求分析133.3 系统功能分析143.4 系统总体设计173.4.1 系统总体目标173.4.2 系统整体流程173.4.3 系统运行环境193.5 小结204 系统具体设计与实现214.1 引言214.2 数据库设计214.2.1 数据模型介绍224.2.2 数据字典234.3 功能模块设计304.3.1 问卷信息管理324.3.2 问卷问题编辑414.3.3 导入参与者用户484.3.4 匹配问卷和参与者514.3.5 参与问卷调查524.3.6 问卷答案统计574.3.7 查看答卷信息604.4小结635 系统测试及分析645.1 引言645.2 系统功能测试及分析645.2.1 系统管理员登录测试655.2.2 问卷信息编辑功能测试675.2.3 问卷问题编辑功能测试705.2.4 参与者账户导入功能测试735.2.5 匹配问卷与参与者功能测试745.2.6 答卷功能测试755.2.7 问卷答案统计功能测试756 结 论77参考文献78声 明80致 谢811 绪论1.1引言研究者在从事社会课题研究的时候,往往需要收集人们对于某个社会现象的看法,通过对这些数据的分析来得出调查研究结论。数据收集最常用的手段就是采用问卷调查的方式。问卷调查是一种发掘事实现况的研究方式,最大的目的是搜集、累积某一目标族群的各项科学教育属性的基本资料,可分为描述性研究及分析性研究两大类1。传统的问卷调查方式主要是通过书面提出问题的形式向特定的人员群体收集资料,其过程分为三个步骤。首先是问卷设计者将研究的问题编制成问卷调查表格形式,然后通过纸质的材料印刷后再发放给参与答卷人员进行问卷填写,最后收集答卷人员填写好的问卷通过人工的方式统计问卷结果,以此来了解参与调查人员对某种现象或问题的看法和意见。整个过程全部依靠人工来进行,存在以下缺点。第一、收集的信息都记录在纸质问卷上,不方便保存和查看;第二、问卷的发放和收集浪费了大量的人力和物力;第三、问卷的制作使用了大量的纸张,是对资源的浪费;第四、问卷的统计完全依靠人工,可能会造成统计的误差。改变传统的问卷调查方式,提高问卷调查的效率和速率成为很多机构的一大难题。近年来,随着计算机网络在人们日常生活中的日益普及,通过计算机网络进行大范围高密度的问卷调查已经成为可能2。基于计算机网络的问卷调查方式逐渐取代了传统的问卷调查方式成为了问卷调查首选的方法。这种问卷调查方式相对于传统的问卷调查方式有几大优点。第一、问卷的设计相对比较方便;第二、问卷参与者直接通过网络可以参与问卷的填写,不需要花费大量的人力物力去分发和收集问卷;第三、繁重的问卷答案统计工作交给计算机进行处理,从而避免了人工统计可能造成的误差和人力资源浪费。1.2 国内外研究现状当今社会信息技术飞速发展,各种专业领域的应用型网站如雨后春笋般在互联网上出现,其中就包括了很多综合性的问卷调查网站3。目前国内在Web问卷调查方面好评度高的网站有问卷星、OQSS及爱调研等专业问卷调查网站,这些问卷调查网站功能非常强大,能够针对不同的用户类型提供专业的问卷调查服务。网站提供了问卷设计功能,问卷问题类型多样化,包含单选题、多选题、填空题、单选补充题、多选补充题等;同时网站还提供了强大的数据分析功能,能够帮助用户分析收集的数据。从满足用户需求的角度来看,这类专业的问卷调查网站完全能够满足几乎所有用户的需求。虽然互联网上的问卷调查网站能够为用户提供完整的Web问卷调查服务,各种功能能够满足用户的需求,但是还是存在以下两点问题。第一、调查问卷的答卷权限问题。这些公共的问卷调查网站,对参与问卷调查的用户权限控制功能较弱,无法限制和问卷无关的人员参与问卷调查,可能产生部分不准确的答卷信息,从而影响最终的统计结果的真实性。第二、调查问卷的答卷数据存储在问卷调查网站运营商的数据库中,答卷数据的安全性得不到保证。当问卷中涉及到一些个人信息问题如电话号码、家庭住址、工作单位和个人收入情况等,被调查者会担心这些信息被泄露。开发一套问卷调查系统可以从根本上解决上述问题。首先,可以通过权限控制的功能让被调查者通过登录验证之后才能参与问卷调查。其次,系统部署在本单位的服务器上,所有的问卷及答卷数据也存储在服务器的数据库中,避免用户数据被公共问卷调查网站泄露。1.3 本文工作课题研发的主要目的是统计职业技术院校毕业生就业信息。由于毕业生的工作地点分布在不同的省市,利用邮寄、电话或传真的方式收集毕业生信息难度太大。综合问卷调查系统的研发就是为了解决上述问题,以互联网为平台来完成毕业生就业信息收集的工作。综合问卷调查系统是一个基于Java EE平台的Web项目,功能模块采用SSH集成框架进行开发,静态页面采用DIV+CSS页面布局技术进行设计。SSH集成框架是由struts、spring和hibernate三大框架组合而成,首要完成的工作就是这三大框架的无缝整合,然后在SSH框架的基础上进行系统的功能模块开发。综合问卷调查系统按照软件开发的标准流程进行开发,项目开发周期为半年,共分为四个阶段。第一阶段是系统的需求分析阶段。在需求分析这个阶段,通过与用户的沟通和交流,了解用户对系统的功能要求,从用户的角度描述系统的所有功能。第二阶段是系统整体设计阶段。在此阶段确定系统达到的总体设计目标,描述整个系统工作的流程,确定系统的集成开发环境和运行的软硬件环境。第三阶段是系统的具体设计开发实现阶段。这个阶段中首先完成系统的具体设计方案,采用数据库设计软件PowerDesigner完成系统的用例图开发,设计数据库模型并生成数据库表。然后把系统内所有功能分为八个不同的功能模块,详细介绍每个功能模块的开发过程,并附上控制器的核心代码。在开发系统功能模块的同时,使用DIV+CSS技术设计制作系统所需的静态页面,对每个输入页面采用Jquery框架的Validate插件进行输入信息验证。第四阶段是系统的测试阶段。虽然在系统功能编码开发的过程中,每一个用例编码完成之后都要测试其功能是否实现。但是当系统所有的功能模块整合完之后,针对系统的整体功能做系统功能完整性测试。2 相关理论介绍 2.1 引言Web开发技术是随着互联网的普及发展起来的一门技术,用于开发互联网的Web网站应用。Web开发技术又分为前台开发技术和后台开发技术。前台开发技术是指网页的页面设计技术,主要包括PhotoShop图片设计、Flash动画设计、HTML超文本标记语言、DIV+CSS层叠样式表、JavaScript动态脚本语言以及AJAX异步JavaScript和XML等。网页设计者最常用的方式就是采用PhotoShop进行网页页面的整体布局设计,然后把图片切片后使用DIV+CSS配合HTML标记语言进行网页布局,最后通过JavaScript和AJAX等技术给网页添加动态功能,来提升用户访问的体验感受。后台开发技术是指对对网站的功能进行开发的程序设计技术。当前市面上比较流程的后台开发技术主要有PHP、JSP、asp、及Java Web等。综合问卷调查系统基于B/S模式进行架构设计,选择DIV+CSS技术进行页面布局, JavaScript技术实现页面动态显示功能。后台功能模块开发采用Java Web技术。Web服务器选择Tomcat,数据库采用MySQL。为了缩短开发周期,提高编码效率,项目在SSH集成框架的基础上进行开发。SSH集成框架是由Struts、Spring和Hibernate框架整合而成的,是当前Java Web应用开发使用频率最高的集成框架。下面的小节会详细介绍上述的开发技术及框架。2.2 B/S模式介绍B/S模式的系统由浏览器(Browser)和服务器(Server)共同组成。该模式的客户端是市面上常用的浏览器,服务器端为Web服务器来响应浏览器发送的请求,如图2-1所示。数据和应用程序存放在服务器上,服务器具有多层结构,B/S系统处理的数据类型可以动态扩展,基于B/S模式开发的应用系统的更新维护都在服务器端进行,客户端浏览器不需要进行更新维护。B/S架构的系统利用不断发展的WWW浏览器技术,结合浏览器的各种脚本语言(JavaScript、VbScript)、Active X技术以及Ajax技术等,采用现在流行的浏览器替代原有复杂的客户端软件供用户进行操作。浏览器可将服务器端发送的HTML代码和数据转换成图文并茂的网页形式展现给用户,并且浏览器上的网页还具备交互功能,用户在网页上输入的数据通过请求的方式提交给第二层Web服务器,第二层Web服务器将启动相应的进程来响应这一请求,并动态生成一串HTML代码,在HTML代码中加入处理结果数据,返回给客户机的浏览器。如果客户端提交的请求包括数据的存取,Web服务器还需要和第三层的数据库服务器共同来完成客户端的请求。第三层数据库服务器主要是接收Web服务器发出的SQL请求并管理数据库中的数据。图2-1 B/S模式B/S体系结构具有许多传统C/S体系结构不具备的优点,而且又紧密的结合了Internet技术,充分利用互联网产业优势。B/S体系结构是软件技术发展的大势所趋,相对于C/S体系结构来说具有更广阔的市场前景。2.3 Java技术概述Java是一种面向对象的程序设计语言,是由Sun公司于1995年5月推出的。拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。Java程序设计语言的风格和C+非常相近,它继承了C+语言面向对象技术的设计思想,并且放弃了C+中容器引起错误的指针机制,新增对象引用数据类型。同时移出了运算符重载和多重继承特性,添加接口技术来替代多重继承机制。增加垃圾回收功能,由Java虚拟机来释放机器的内存。Java语言程序的执行过程和其他的直译语言不一样。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。在早期JVM中,这种运行机制Java程序的运行效率。后来随着JDK版本的提升,这种情况得到了有效的改善,Java程序的运行速度有了大幅提升。Java技术平台按照功能性不同,又分为Java SE标准版、Java EE企业版以及Java ME微小版三种不同的版本。其中Java SE版本是Java最基本的程序设计技术,是学习Java EE和Java ME的基础,一般用于桌面应用程序开发。Java EE版本它提供Web服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构和 Web应用程序。Java ME是一种优化的Java运行环境,主要是针对移动设备的应用开发。 综合问卷调查系统之所以选择Java EE平台进行功能开发有三个重要的原因。第一、Java语言的安全特性。由于Java语言在语言定义、字节码检查和程序执行这三个阶段都执行了严格的安全检查机制,对参数类型、对象访问权限和内存地址回收进行了严格的检查和控制,可以有效地防止非法代码的侵入,组织对内存的越权访问,避免病毒的侵害。第二、Java语言的跨平台特性。Java在诞生之日起就有一句非常著名的口号“一次编写,到处运行”,反应了Java语言的跨平台性能。由于Java程序是在Java虚拟机上运行, Java程序可以在任何安装有Java虚拟机的操作系统上运行。第三、Java 语言开源框架功能强大,采用Java EE框架来开发WEB应用,可以提高开发效率。目前流行的SSH框架可以实现表示层、业务层和持久层的三层分离,可以从很大程序上降低程序的耦合性,提升程序的可扩展性,减少开发人员的工作量。2.4 Web服务器介绍WEB服务器也称为WWW(WORLD WIDE WEB)服务器,其主要功能是提供网上信息浏览服务。客户端计算机使用浏览器通过URL(全球资源定位符)向WEB服务器发送请求之后,WEB服务器将接收并处理该请求,并将响应信息反馈到该客户端的浏览器上,解析响应信息后将网页显示在客户端浏览器上。采用不同的后台开发技术开发的WEB应用,应部署在不同类型的WEB服务器上。Java程序的Web服务器又分为JSP服务器和Java EE服务器这两种。JSP服务器主要有Tomcat、Bejy Tiger、Geronimo以及Jetty等,Java EE服务器主要有Sun Java System Application Server、Bea Weblogic以及JBoss等。从功能上来说,Java EE服务器功能更加强大,可支持企业级的项目部署运行,而JSP服务器相对来说功能较弱,主要用于中小型WEB项目的部署运行。由于综合问卷调查系统为企事业单位提供问卷调查服务,规模相对较小,并发访问量不大,所以选择Tomcat作为WEB服务器。Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照公司提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持5,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,也可以作为一个单独的Web服务器来使用,由于Tomcat是使用Java开发的,所以它可以运行在任何一个装有JVM的操作系统之上,其自身包含了一个配置管理工具,也可以通过编辑 XML格式的配置文件来进行配置6。Tomcat提供了一个Jasper编译器用以将JSP编译成对应的Servlet,它的Servlet引擎通常与Apache或者其他Web服务器一起工作7。但随着版本的更新和功能的扩展,越来越多的用户将其单独作为Web服务器用以那些对速度和可靠性有较高要求的环境中8。2.5 集成开发环境介绍集成开发环境常被开发人员称之为IDE(Integrated Development Environment),就是用于程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。该程序可以独立运行,也可以和其它程序并用。常用Java的集成开发环境有JBuilder、JCreater、Eclipse等。Eclipse平台是IBM公司向开放源代码社区捐赠的Java程序开发框架,是一个开放的、通用的、可扩展的集成开发环境9。Eclipse发展到现在,已经具备进行基于Java平台的各种应用程序的开发,并且提供C、C+、COBOL一级Eiffel等程序设计语言开发的插件功能。Eclipse本身可以作为一个Java开发的编译器,还可以通过添加插件扩展功能。它拥有一个标准的插件库,其中包含了Java开发工具包(JDK)。 Eclipse是目前Java开发者使用最广泛的集成开发环境之一。Eclipse的功能非常强大,除了能够开发Java SE项目,还支持Java Web项目的开发。本项目开发使用的是Eclipse Juno版本。该版本够配置使用各种开源框架进行Web项目的开发。2.6 Web框架介绍软件开源框架的研究一直是众多开发者关注的一大课题。著名的软件大师Ralph Johnson对框架(Framework)进行了如下的定义:框架是整个系统或系统的一部分的可重用设计,由一组抽象的类及其实例间的相互作用方式组成15。本节主要介绍Struts2、Spring和Hibernate等框架,针对J2EE项目架构的特点并结合Struts2、Spring和Hibernate的各自特点,将这三种框架整合成一个SSH多层框架10。其中Struts主要负责表现层,完成页面显示、响应用户请求等功能;Spring主要负责业务逻辑层,完成应用系统的业务逻辑与事务处理等功能;Hibernate主要负责数据持久层,完成与数据层的交互功能11。通过上述三大框架的整合,充分发挥Struts2、Spring和Hibernate框架各自的优势,降低了各层间的耦合度,解决了Web应用系统开发过程中由于系统结构复杂而带来的一些问题。项目对SSH集成框架的应用,提高了系统的开发效率和可移植性、可维护性。下面分别介绍Struts2、Spring和Hibernate这三大框架。2.6.1 SSH体系框架结构J2EE 三层架构体系主要由客户端、服务器端和持久层组成。用户在客户端通过浏览器使用Http协议或其他协议向服务器端发送请求,在服务器端由控制器接收并分析用户请求信息,然后根据不同的分析结果采用相应的模块处理用户请求,在处理过程中通过hibernate框架将数据写入到数据库层,最后控制器再根据持久层的处理结果,向客户端做出不同的响应。架构体系模型如下图 2-2 所示。服务器端客户端持久层Hibernate请求数据库模型(Spring)控制器(Struts)图2-2 SSH三层架构体系模型在 SSH 框架的三层架构体系中,Struts 担当控制器的角色;而模型层通过 Spring实现系统功能;Hibernate主要负责将业务逻辑数据持久化到数据库层中去。SSH 架构是目前很流行的架构,Struts 可在控制层和视图层发挥作用;持久层采用 Hibernate 充当数据访问层;Spring 框架是真正实现业务逻辑的,利用它作为业务逻辑层。SSH 框架的架构层次清晰,三层都是通过接口进行通信的。采用Struts、Spring和Hibernate三层架构体系,可减少代码的冗余度,在降低开发难度的同时,提高了开发效率和系统的可维护性和扩展性。2.6.2 Struts2框架介绍Struts 是 Apache软件基金会(ASF)赞助的一个开源项目。它通过采用 Java Servlet/JSP 技术,实现了基于Java EE Web应用的MVC设计模式的应用框架。Struts最早是作为Apache Jakarta项目的组成部分,Struts的开发者希望通过对该项目的研究,改进和提高Java Server Pages 、Servlet、标签库以及面向对象的技术水准。软件工程师使用Struts为业务应用的每一层提供支持。Struts最大的功能是帮助开发者减少在运用MVC设计模型开发Web显示层时提供便利,能够更方便对控制器进行管理,让显示层与业务层代码进行分页,并且为页面与控制器之间的数据传递提供更加方便的方法。Struts2是Struts的下一代产品,是在 struts1和WebWork的技术基础上进行了合并的全新的Struts2框架。其全新的Struts2的体系结构与Struts1的体系结构差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开。由于Struts2采用拦截器的机制来处理用户的请求,所以项目中所有的控制器都是由一个问卷struts.xml配置的。Struts2的使用方式与传统的Servlet加JSP完全不一样,开发者在使用Struts2框架之前必须对它的API进行一个深入了解和学习。2.6.3 Spring框架介绍Spring框架是Rod Johnson,Juergen Hoeller等开发的,用于支持JavaBean构件运行的容器。该框架提供了依赖注入的方式的构件组装机制和基于AOP技术的事物和日志管理等功能12。Spring框架具有以下优点。第一、方便解耦,简化开发通过Spring提供的IoC容器,开发者可以使用Spring控制对象之间的依赖关系,避免开发者创建对象之间关联造成程序的耦合。使用Spring框架之后,开发者不需要去通过单例模式或者工厂模式来进行对象的底层内存处理,可以把精力更多的放在业务逻辑处理上。第二、AOP编程支持Spring的AOP技术支持,能够方便开发者进行切面编程,传统程序设计不容易实现的程序设计可以通过AOP技术实现。第三、声明式事务的支持在Spring中可以通过声明的方式对程序设计进行事务管理,通过注释的方式实现内部对象管理和事务管理。第四、方便程序的测试Spring框架可以使用非容器运行的方式进行所有的软件测试工作,通过框架强大的测试功能进行分布式测试工作。第五、方便集成各种优秀框架Spring作为一款优秀的轻量级框架,对其他优秀的框架兼容性好,并不排斥其他的框架,可以很好的整合Spring和其他的框架。2.6.4 Hibernate框架介绍Hibernate是一个功能强大的开源ORM框架工具,通过Hibernate框架开发者可以使用Java的反射、继承等机制把实体对象和数据库表进行关联,Hibernate同时也支持Microsoft SQL Server、MySQL、Oracle等主流数据库系统13。Hibernate框架利用对象映射的关系通过XML配置文件让JavaBean与数据库表建立联系,它把对数据库表的操作转换为对实体类对象的操作,简化了开发者对数据库底层代码的开发。2.7 小结本章重点介绍了项目开发采用的技术,主要介绍了Java Web技术。目前采用Java Web技术开发的项目在市场占有率上超过了其他Web技术开发的项目,因为Java Web技术具有各种新特性,比如安全性、多线程性和跨平台性等。系统采用了SSH(Struts+Spring+hibernate)综合框架来进行项目架构。针对J2EE项目架构的特点并结合Struts2、Spring和Hibernate的各自特点,将这三种框架整合成一个SSH集成框架。其中Struts主要负责表现层,完成页面显示、响应用户请求等功能;Spring主要负责业务逻辑层,完成应用系统的业务逻辑与事务处理等功能;Hibernate主要负责数据持久层,完成与数据层的交互功能。项目采用的Web服务器是Tomcat6.0。Tomcat作为Java Web服务器来使用,具有占用资源少、性能稳定、免费开源等优点,所以深受Java程序员的喜爱。中小规模的基于Java平台的Web项目都选择使用Tomcat作为Web服务器。3 系统需求分析及总体设计3.1 引言软件需求分析研究用户需求,完全理解用户对软件需求的完整功能,确认用户软件功能需求,建立可确认的、可验证的一个基本依据4。软件需求分析是一个软件项目的开端,也是项目实施最重要的关键点,其主要目的是让项目开发人员全面掌握用户对软件项目的整体功能要求。需求分析工作人员负责与用户进行沟通,收集用户对软件项目的具体需求和用户使用的相关细节,并制定详细的需求分析文档。据有关的机构分析结果表明,软件产品存在不完整性、不正确性等问题80以上是需求分析错误所导致的,而且由于需求分析错误造成根本性的功能问题尤为突出14。因此,准确而详细的需求分析是软件项目成功的必要保障。综合问卷调查系统研发最初是为职业技术学校毕业生就业信息调查提供技术支持,然后又发展到增加学生学习情况调查、学生对任课教师教学意见调查等需求。根据高等院校各个部门的不同调查需求,问卷调查系统需要增加动态添加调查问卷的功能,然后针对不同的被调查用户群体匹配不同的调查问卷。综合问卷调查系统的用户需求总体来说比较简单。系统操作流程如下,首先让管理员能够根据调查情况的需要在系统中设计不同的系统问卷,然后导入相应的问卷参与者账户。同时问卷参与者登录之后能够看到生成的问卷并参与答卷。最后管理员可以对参与者回答后生成的答卷结果进行统计。后面的章节会详细介绍用户的需求情况。3.2系统需求分析综合问卷调查系统这个项目的研发最初的目的是收集职业技术学校毕业学生的工作生活情况以及毕业生工作过程中掌握的社会对该毕业生专业技能实际需求。通过收集并且分析这些数据为整个专业的教学计划改革提供一个数据依据。在毕业生信息收集工作启动之后,学校的工作人员通过各种即时通讯工具以及E-MAIL的形式向往届毕业生发送制作成Word文档格式的调查问卷,然后等待收集毕业生反馈的信息。调查问卷的收集也是通过即时通讯工具或者E-MAIL的方式由毕业生发送文档,工作人员把所有收集的文档统一保存在一个指定的目录中。采用这种传统的方式进行问卷调查有以下几个弊端:1、电子文档的调查问卷可能在传递的过程中遗失;2、参与调查者要完成接收文档、填写文档以及发送文档三个步骤,工作相当繁琐且工作量很大;3、在问卷目录中收集大量的电子文档格式的答卷保存不便;4、需要工作人员去依次查看所有答卷的电子文档才能完成统计功能,占用了大量的时间。综合问卷调查系统的研发就解决了上述问题。就职业技术学校的毕业生信息调查问卷而言,系统工作人员可以直接给往届毕业生发送一个毕业生信息调查问卷的访问地址。参与问卷调查的往届毕业生也不需要完成接收文档、文档中填写信息、发送文档这三个步骤,直接在浏览器中打开毕业生信息调查问卷的访问地址,然后在网页中填写调查问卷的信息之后提交即可。而对于系统管理员来说,最大的两个困难就是调查问卷电子文档的保存以及调查问卷答卷信息的统计,综合问卷调查系统的研发也解决了这两个问题。首先,在综合问卷调查系统中,参与者的答卷信息都保存在数据库的答案数据库表中,这样就不需要去保存大量的电子文档。其次,综合问卷调查系统的统计参与者答卷功能可以针对某份调查问卷的每一个问题,去统计不同的选项被参与者选择的数量在总参与调查人数的比例,解决了人工统计占用时间长又容易出错的问题。综合问卷调查系统中可以由系统管理员自己设计定制调查问卷,并且问卷中问题的类型也多样化,所以可以满足使用单位各种需求的问卷调查。采用B/S架构设计的系统可以让管理员和问卷参与者直接通过浏览器就能够登录系统15,不需要安装任何客户端程序,为问卷调查的开展提供了便利。3.3 系统功能分析本系统要求便于发布与维护,并且能够适应复杂的网络环境,可以在不同的平台下设置应用,系统功能按照用户具体需求情况分为七大功能模块,分别是用户登录权限分配、问卷基本信息编辑、问卷中问题编辑、导入问卷参与者账户、参与问卷答卷、答卷结果查看以及答卷结果统计分析,接下来介绍这七大功能模块的详细情况。1、用户登录权限分配该系统的用户主要分为系统管理员以及问卷调查参与者两种用户,根据用户需求这两种用户都使用同一登录界面进行登录。由于两种用户使用同一个入口进入不同的后台管理界面,所以必须在登录的时候判断用户类型,根据用户的不同类型为用户生成不同的后台管理菜单,并且屏蔽不属于该类型用户的系统功能。系统管理员具备以下的功能权限l 问卷基本信息编辑l 问卷的问题编辑l 问卷参与者账户管理l 问卷参与者与问卷匹配管理l 查看答卷信息及答卷结果统计分析问卷调查参与者具有下列功能权限l 参与问卷调查l 查看本人问卷结果系统需要完成上述两级权限用户的功能划分,并实现权限级别的分类。最主要的是不能让问卷调查参与