




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电信网上营业厅用户自服务系统的设计与实现方案i i电信网上营业厅用户自服务系统的设计与实现方案摘要本文在对目前各种网上营业厅的功能原理进行了分析后,在山西省移动公司实习期间,为保证电信网上营业厅系统中心数据库的安全,设计了一个具有三层结构的网上营业厅,以web页面方式实现了与用户的交互,同时保证了网上营业厅终端系统与中心数据库的隔离。使用JSP编程语言作为开发工具实现了终端动态页面的设计,提供了安全、友好、快速的访问交互方式,提高了程序的灵活性和系统的安全性。整个系统能够实现话费查询、业务受理的基本业务,同时还对交易中用户的各种操作进行了记录,扩展了意见反馈和手机号码归属地查询等网络服务功能,通过了调试和试运行。但是这个系统还有很多不完善之处,需进一步升级改进。关键词:网上营业厅;JSP编程;数据库ii iiTelecomonlinebusinessuserstodesignandimplementationofself-servicesystemsAbstractBasedontheprincipleofonlinebusinesshallisanalyzed,duringmyinternshipinShanxiprovinceMobileCorporation,inordertoensurethetelecomonlinebusinesshallsystemcenterdatabasesecurity,designathreelayerstructureoftheonlinebusinesshall,tothewebpagetorealizetheinteractionwiththeuser,andensurestheisolationnetbusinessofficeterminalsystemandcentraldatabase.TheuseofJSPprogramminglanguageasthedevelopmenttooltorealizethedesignofdynamicpages,toprovideasafe,friendly,fastaccesstointeractivemode,improvesthesafetyofflexibilityandthesystemprogram.Thewholesystemcanrealizethebasicbusinesscallsinquiries,businessacceptance,butalsovariousoperationsonthetransactionofuserswererecorded,extendsthefeedbackandmobilephonenumbersattributiontoinquiriesandotherfunctionsofthenetworkservice,throughthecommissioningandtrialoperation.Butthesystemtherearemanyimperfections,needfurtherimprovement.Keywords:Telecomonlinebusiness;JSPprogramming;Database目录摘要 iAbstract ii1.绪论 .绪论1.1研究背景自2008年我国电信业重组后,三大电信运营商(中国移动、中国电信和中国联通)开展全业务运营后,彼此间的竞争更加激烈,这迫使三大电信运营商纷纷将发展渠道作为争夺用户和提高服务水平的重要举措。作为运营商渠道的重要组成部分,电信网上营业厅已显示出巨大的发展潜力,用户数量逐年增加。伴随着科技进步和经济全球化,电信行业在不断地发展与变革中已经成为全球增长最快,市场潜力最大的一个产业。国内的三大运营商开了激烈的竞争,谁能争取到最多的用户,谁就能在竞争中立于不败之地,电信行业在服务内容,服务方式和服务质量上面临着日益加剧的竞争和严峻挑战。如果运营商依赖传统的服务方式,将会面临着很多的困难:1.由于残酷的竞争导致全国各地大幅度的增开营业网点,必须配备更多的营业员和营业设备,导致管理和资源上的高额开支;2.无线应用的接入手段不断增加,如GSM、GPRS、3G、4G等的不断推出,需要增加更多的服务种类;3.随着各种应用服务的广泛推出,传统的服务方式不便于整合;4.随着用户自身素质的不断提高,就需要更贴切自身的个性化服务,而传统的服务方式很难实现。因此,各大电信运营商纷纷想方设法拓展自己的业务,方便于用户的服务,及时有效地得到用户的意见反馈,以此吸引更多的用户,开展网上营业厅为用户提供自助服务是必然选择。因此,如何充分发挥电子渠道的服务职能,以及在做好服务的基础上发挥电子渠道的营销职能,是电信运营商提升核心竞争力的重要战略之一。电信网上营业厅是运营商电子渠道的高级形式,以特定的信息系统(与用户进行交互,并且是通过互联网、移动互联网和无线应用协议等方式向用户提供电信业务服务的自助服务平台。作为高科技的产物,电信营业厅有多种优势,例如成本低、24小时全天候服务、随时随地接入等。因此,推动电信网上营业厅发展对电信运营商和用户是一个双赢的过程。学者们针对网上营业厅的研究较少,扩展到信息系统领域的研究则较多。对于信息系统使用行为的研究包括初始接受行为和接受后的行为,其中,接受后的行为主要是指持续使用行为。现有研究表明用户初始接受只是信息系统成功的第一步,企业长期生存和最终成功却依赖于用户的持续使用,而非仅仅初始接受。同时,用户在最初尝试使用信息系统后,由于各种各样的原因而终止使用,这种不能持续使用的行为会造成人力和财力的浪费。尤其是以网络平台为基础的信息系统,其长期存活和发展壮大需要保持一定的活跃用户数量。只有依靠用户持续有效的使用,信息系统才能获得预期的使用价值。也就是说相比初始的采纳行为而言,信息系统的持续使用更为重要。具体到本文,电信网上营业厅作为特殊的信息系统,用户的持续使用行为同样重要。现有的研究表明顾客感知价值是用户持续使用行为最重要的影响因素。1.2课题意义随着市场经济的发展和人们生活水平的提高,已然进入了移动互联时代。当O2O市场的来临,智能手机用户越来越多。手机收费管理便显出越来越多的不足,传统计费也往往会出现错误。本系统旨在为电信管理人员提供一个功能齐全、使用方便的手机收费管理系统以代替传统管理方式。可以帮助工作人员有序的管理移动手机收费,使计费更加方便,不易出现错误。通过开卡记录手机收费信息,使记录的数据更加真实可信,计费也更加精确。现在我国的电信通信营业厅管理水平比较滞后,局限于各种社会因素,有很多弊端,这样的机制已经不能适应时代的发展,浪费了许多人力和物力,在信息时代传统的管理方法必然被计算机为基础的信息管理所取代。软件作为一项有力的工具,只能当此种工具,与我们的实践相结合起来的时候,才具有重大的社会价值及使用价值。因此根据目前实际的情况开发这样一套管理系统是十分必要的。2.系统的可行性研究与需求分析2.1可行性研究在山西省移动营业厅进行了大量的抽查和调研后,通过问卷调查等。对系统目标的初步调研和分析,提出可行性方案并进行论证。我们在这里主要从技术可行性、经济可行性和操作可行性三方面进行分析。2.1.1经济可行性开发该系统所需的相关资料可以通过已存在的相关网站进行调查采集,所需的其他应用软件、硬件系统也易于获得.因此,开发成本较低。而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。所以,从经济的角度来看,该系统可行。2.1.2技术可行性技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。软件方面:由于目前单机模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。本系统用的是JSP开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。2.1.3运行可行性运行可行性是对组织结构的影响,现有人员和机构和环境对系统的适应性及人员培训补充计划的可行性。当前信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在运行上是可行性的。本系统的开发,主要是对数据的处理,包括数据的收集,数据的变换,及数据的各种报表形式的输出。采用流行的JSP+SQLSERVER2000体系,已无技术上的问题。2.1.4时间可行性从时间上看,在两个月的时间里学习相关知识,并开发网站,时间上是有点紧,但是不是不可能实现,通过两个多月的努力功能基本实现。2.1.5法律可行性:①所有技术资料都为合法。②开发过程中不存在知识产权问题。③未抄袭任何网站,不存在侵犯版权问题。综上所述,本系统的开发从技术上、从经济上、从法律上都是完全可靠的。2.2需求分析需求分析是软件设计的一个重要的环节。本阶段对监狱管理系统的应用情况作全面调查,以确定系统目标。确定用户的需求。用户对系统的需求我们从以下几方面进行分析。2.2.1系统需求用JSP及后台SQLSERVER数据库开发本系统基于B/S(浏览器/服务器)模式,系统软件和数据集中存放于服务器中,软件的安装与升级在服务器上进行。所有的工作基于浏览器,安装、使用、维护、升级十分简单。2.2.2性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行。系统处理的准确性和及时性是系统的必要性能。由于本系统的添加功能对于整个系统的功能和性能完成举足轻重。作为系统的很多数据来源,其准确性和及时性很大程度上决定了系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性。2.2.3应用需求分析表1应用需求分析服务器硬件处理器:Intel5服务器软件MicrosoftWindowsXP
SQLSERVER
MicrosoftIIS6.0或更高版本
MicrosoftOffice2003客户机硬件可以上网客户机软件MicrosoftWindowsXP
MicrosoftIE6.0或更高版本 系统的性能要求通常指系统需要的存储容量以及后援存储,重新启动和安全性,运行效率等方面的考虑。硬件系统环境:hp、1GMB(RAM)、500MB(HD)。系统运行时对数据的保密性要求不高对一般的数据不要求进行加密。此外,对其它软件几乎没有依赖性,程序健壮性较好。2.2.4运行需求分析硬件条件:hp6450b;局域网;软件条件:WindowsXP或者Windows7;2.2.5其他需求分析本系统有较好的可维护性、可靠性、可理解性、效率。易于用户理解和操作。可维护性包括了可读性、可修改性、可测试性、等含义。可靠性通常包括正确性和健壮性。开发过程中,在各种矛盾的目标之间作权衡,并在一定的限制的条件下(经费、时间、可用的软、硬件资源等),使上述各方面最大限度的得到满足。3.相关相关技术介绍3.1JSP技术简介JSP是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态技术标准。在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标签,就构成了JSP网页java程序片段可以操纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大大降低了对客户浏览器的要求,即使客户浏览器端不支持Java,也可以访问JSP网页。JSP全名为JavaServerPages,其根本是一个简化的Servlet设计,他实现了Html语法中的java扩张(以<%,%>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。通常JSP页面很少进行数据处理,只是用来实现网页的静态化页面,只是用来提取数据,不会进行业务处理。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。JSP(JavaServerPages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。3.2JSP工作原理JSP是面向服务器的,因此支持任何浏览器。当Web服务器和JSP引擎遇到访问JSP网页的请求时,JSP引擎将请求对象发送给服务器端的相关组件,比如JavaBean组件、Servlet或EJB等,然后由服务器端组件处理这些请示,可能需要从数据库或数据存储中检索信息,然后服务器端组件再将响应对象返回JSP引擎。JSP引擎将响应对象传递给JSP页面,根据JSP页面的HTML格式完成数据编排,最后Web服务器和JSP引擎将格式化后的JSP页面以HTML格式返回客户浏览器。这就是当前网站构建中广泛采用的浏览器——Web服务器——后台数据库的三层架构模式。因为JSP所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果。在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个servlet。而这个引擎本身也是一个servlet,在JSWDK或WEBLOGIC中,它就是JspServlet。JSP引擎先把该JSP文件转换成一个Java源文件,在转换时如果发现jsp文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息;如果转换成功,JSP引擎用javac把该Java源文件编译成相应的class文件。然后创建一个该SERVLET的实例,该SERVLET的Init()方法被执行,Init()方法在servlet的生命周期中只被执行一次。然后Service()方法被调用来处理客户端的请求。对每一个请求,JSP引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可大大降低对系统的资源需求,提高系统的并发量及响应时间.但应该注意多线程的编程限制,由于该servlet始终驻于内存,所以响应是非常快的。如果.jsp文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将编译结果取代内存中的servlet,并继续上述处理过程。虽然JSP效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延迟。此外,如果在任何时候如果由于系统资源不足的原因,JSP引擎将以某种不确定的方式将servlet从内存中移去。当这种情况发生时Destroy()方法首先被调用,然后servlet实例便被标记加入"垃圾收集"处理。Init()及Destory()格式如下:可在Init()中进行一些初始化工作,如建立与数据库的连接,或建立网络连接,从配置文件中取一些参数等,在Destory()中释放相应的资源。3.3JSP体系结构JSP网站开发标准给出了两种使用JSP的技术,可以归纳为模式一、模式二。模式一:JSP+JavaBeans技术jsp页面独自响应请求并将处理结果返回客户,这里面使用了表达与内容的分离,其中数据存取都是由bean来完成的。Bean处理所有数据访问,JSP实现页面的表现,以实现内容生成与显示相分离。当处理复杂的大型应用时,页面被嵌入大量的脚本或Java代码段,当需要处理的商业逻辑复杂时,这种情况会变得非常糟糕,大量的内嵌代码使得页面程序变得复杂,对于前端界面设计人员,这是不可思议的事情。所以模式一可用于小型应用,不能够满足大型应用的需要。模式二:JSP+Servlet+JavaBeans技术Servlet技术是一种采用Java技术来实现CGI功能的一种技术,Servlet技术非常适于服务器端的处理和编程,并且Servlet会长期驻留在内存。MVC标注模式,JSP用于view展示,Servlet用于control,M代表业务领域模型层。从开发的观点看,模式二具有更清晰的页面表现,清楚的开发者角色划分,在大规模项目开发中,模式二更被采用,模式二也更符合当前流行的MVC结构(Model/view/controller),其中Servlet对应controller,处于控制者的位置,处理HTTP请求,负责生成JSP中使用的Beans组件或对象,并判断应将请求传递给哪个JSP等,JSP对应view,负责生成最终的动态网页并返回给浏览器。而JavaBeans对应的是Model,实现各个具体的应用逻辑与功能。3.4JSP的特点1.简化的页面生成技术。JSP页面用标准的HTML或XML命令来处理页面的格式化和布局设计,而用类似HTML、XML的标记和Java语言编写的脚本程序生成页面内容。这使得页面形式与页面内容互相独立,非常有利于大型项目的分工合作。2.与Java平台有机集成。JSP技术是Java2平台的重要组成部分,JSP使用Java语言作为它的脚本语言。在JSP页面中可以使用几乎所有的Java组件和JavaAPI,这就能充分发挥出Java语言的强大功能。使用JSP技术可以创建具有高度可伸缩性和可靠性的Web应用程序。既然JSP是基于Java语言的,那么它就可以使用JavaAPI,所以它也是跨平台的,可以应用在不同的系统中,如Windows、Linux、Mac和Solaris等。这同时也拓宽了JSP可以使用的Web服务器的范围。另外,应用于不同操作系统的数据库也可以为JSP服务,JSP使用JDBC技术操作数据库,从而避免了代码移植导致更换数据库时的代码修改问题。正是因为跨平台的特性,使得采用JSP技术开发的项目可以不加修改地应用到任何不同的平台上,这也应验了Java语言的"一次编写,处处运行"的特点。1.硬件平台和服务器无关性。JSP作为Java家族的一员,秉承了Java技术的“一次编写,随处可用(WriteOnce,RumAnywhere)”的特性,可以运行于大多数流行的操作系统平台及Web服务器,这种与服务器硬件和操作系统平台的无关性是JSP相对于其它动态网页技术最大的一个优点。2.功能可扩展性。如同Microsoft的JSP技术可以通过ActiveX/COM组件来扩展功能一样,JSP可以通过JavaBean和EJB(EnterpriseJavaBean)以及自定义的标记来扩展功能。JSP可以通过JDBC,与诸如Oracle、SQLServer这样的大型关系数据库进行连接。JSP提供了一些隐含对象。这些隐含对象在JSP页面中可以直接引用,而不必首先声明。利用JSP提供的这些隐含对象,可以使脚本功能更加强大,并且编程更加容易、方便。例如,利用request对象,可以很容易地接收用户在HTML表单中提交的信息。JSP中可以使用JavaBean编写业务组件,也就是使用一个JavaBean类封装业务处理代码或者作为一个数据存储模型,在JSP页面甚至整个项目中都可以重复使用这个JavaBean。JavaBean也可以应用到其他Java应用程序中,包括桌面应用程序。3.5SQLSERVER数据库SQLServer是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。SQLServer近年来不断更新版本,1996年,Microsoft推出了SQLServer6.5版本;1998年,SQLServer7.0版本和用户见面;SQLServer2000是Microsoft公司于2000年推出的最新版本。SQLServer特点:1.SQLServer是一个关系数据库管理系统,它最初是由Microsoft,Sybase和Ashton-Tate三家公司共同开发的于1988年推出了第一个OS/2版本,在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上专注于开发推广SQLServer的WindowsNT版本,Sybase则较专注于SQLServer在UNIX操作系统上的应用.MicrosoftSQLServer以后简称为SQLServer或MSSQLServer。2.随着信息技术的发展,计算机处理数据的方式也发生着变化,文件管理系统--数据库管理系统。MicrosoftSQLServer是一个分布式的关系型数据库管理系统,具有客户机/服务器体系结构,采用了Transact-sql的sql语言在客户机与服务器间传递客户机的请求与服务器的处理结果。3.众所周知,SQLServer能够满足今天的商业环境要求不同类型的数据库解决方案。它一种应用广泛的数据库管理系统,具有许多显著的优点:易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等。性能、可伸缩性及可靠性是基本要求,而进入市场时间也非常关键。4.除这些SQLServer的优点外,SQLServer还为数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要。作为一个完备的数据库和数据分析包,SQLServer为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门。作为重要的基准测试可伸缩性和速度奖的记录保持者,SQLServer是一个具备完全Web支持的数据库产品,提供了对可扩展标记语言(XML)的核心支持以及在Internet上和防火墙外进行查询的能力。3.6系统数据库连接JDBC技术是JavaDataBaseConnectivity的缩写,它是SUN公司提供的一种支持基本SQL功能的通用的应用程序接口。它由一组用Java语言编写的类和接口组成。通过这些类和接口,通过执行相应SQL语句,完成对不同数据库的访问。因此,开发人员使用JDBCAPI可以不必编写一个应用程序来访问Sybase数据库,又另外编写一个应用程序去访问Oracle数据库,再写一个应用程序访问Microsoft的SQLServer。使用Java语言编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上开发不同的应用程序。简单地说,JDBC能完成下列三件事:1.同一个数据库建立连接;2.向数据库建立连接;3.处理数据库返回的结果。很多可视化的Java开发工具,如VisualAgeForJava、VisualCafé、J++等都提供了基于JDBC的更面向用户的类和包,直接将关系数据库的表或视图映射为Java类,程序员通过可视化工具直接对Java对象进行操作,而真正需要的SQL调用则根据程序员发出的对对象的各种属性、方法的操作来自动产生。另一种使用JDBCAPI的方式为,用户程序可以提供一个界面(如菜单等)让用户选择对数据库进行的操作,选中一个任务后,提示用户输入一些必要的信息,然后根据用户的输入产生相应的SQL命令以及Java程序。数据库访问的三层结构如图3.1所示,浏览器端程序要访问数据库,首先通过中间件,然后由中间件对数据库操作权限进行认证,认证通过才能对数据库进行操作。数据库服务器中间件Web服务器浏览器数据库服务器中间件Web服务器浏览器数据库数据库图图3.1使用中间件的数据库访问三层结构用户对数据库的存取权限认证是中间件中完成,对数据库的查询、插入、更新和删除操作等都封装在中间件中,该中间件位于服务器端,中间件对数据库进行操作后,再将处理结果通过Web服务器返回到浏览器端用户。这样,在用户端输入的用户名和密码,可以通过加密算法进行加密后在网络上传输,在中间件中进行解密认证,然后再进行数据库的存取操作,数据库存取权限的用户名和密码出现在位于服务器端的中间件中,这样就更加安全。本系统采用的正是这样的三层结构的数据库访问模式。在三层模型中,命令将被发送到服务的”中间层”,而”中间层”将SQL语句发送到数据库。数据库处理SQL语句并将结果返回”中间层”,然后”中间层”将它们返回用户。其模型如图3.3所示。JavaAppletJavaApplet客户机客户机(GUI)HTTP,RMI或CORBA调用HTTP,RMI或CORBA调用应用服务器应用服务器(事务)服务器(事务)服务器JDBCJDBCDBMS专用协议DBMS专用协议数据库服务器DBMS数据库服务器DBMS图图3-2数据连接因为”中间层”可以进行对访问的控制并协同数据库的更新,并且可以使用一个易用的高层API,这个API可以由“中间层”进行转换,转换成低层的调用。所以在许多种情况下,三层模型可以提供更好的性能,本系统中所采用的就是此种模型。包含了三层架构里面的“实体规范层”、“行为规则层”、“数据访问层”;控制器(Controller)用来收集view提供的用户数据,传递给model,同时返回model处理后的数据给view。model的设计可以参考三层架构的设计方法,将实体、行为规则(业务逻辑)和数据访问分开,在数据访问上可以应用orm框架。三层架构同样可以应用orm框架。个人认为三层架构和mvc都是很好的设计方法,目的都是降低系统的耦合性,提高重用率,提高系统的可维护性,可以根据喜好进行选择。JDBC是JAVA应用程序与数据库的沟通桥梁。它提供了三项服务功能:一、与数据库建立连接。二、将SQL语句传递给数据库。三、从数据库取得SQL语句的执行结果。当JDBC要与数据库建立连接前,首先,它必须先取得连接此数据库的JDBC驱动程序,Class.forName()即是在执行此项工作。建立数据库连接的第一步骤就是将JDBC驱动程序的类载入至JVM(JavaVirtualLMachine)中,本系统中利用java.lang.Class类内的forName()静态函数依据指定的类名称,将JDBC驱动程序载入进来。完成载入驱动程序的步骤后,必须使用java.sal.DriverManager类所提供的getConnection()静态函数,取得与数据库间的连接对象。此连接对象的类类型为java.sal.Connection,必须通过它才能将SQL指令传递给数据库,而执行结果也需要通过连接对象来取得。当取得连接对象后,还必须取得Statement对象才能对数据库执行SQL指令。Statement主要实现两个功能:执行SQL语句以及取得执行结果。在java.sql.Statement的sql对象中执行查询或修改命令的函数后传回的是一个ResultSet对象,这个对象提供了一个存取SQL执行结果的管道,以便通过它将表格数据从数据库中取出。每个Statement对象只能产生一个ResultSet对象。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBCAPI,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。Java具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是Java应用程序与各种不同数据库之间进行对话的方法。而JDBC正是作为此种用途的机制。数据库的连接处理具体实现如下://建立JDBC——ODBC桥sun.jdbc.odbc.JdbcOdbcDriver;//桥建立不成功时的错误处理catch(ClassNotFoundExceptionevent){}//建立与数据库的连接,并发送SQL查询语句,将结果保存到rs对象中 Con=建立JDBC——ODBC桥 Sql=SQL查询语句 执行查询 Rs=返回结果//SQL出错处理 catch(SQLExceptione1){}JDBC是个"低级"接口,也就是说,它用于直接调用SQL命令。在这方面它的功能极佳,并比其它的数据库连接API易于使用,但它同时也被设计为一种基础接口,在它之上可以建立高级接口和工具。高级接口是"对用户友好的"接口,它使用的是一种更易理解和更为方便的API,这种API在幕后被转换为诸如JDBC这样的低级接口。数据库连接如图3.3所示:建立JDBC-ODBC桥建立JDBC-ODBC桥否出错处理否出错处理建立是否成功建立是否成功是是建立数据库连接建立数据库连接执行SQL操作执行SQL操作否SQL是否出错返回错误信息否SQL是否出错返回错误信息是是返回执行结果返回执行结果图图3-3数据连接有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBCAPI,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。
Java具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是Java应用程序与各种不同数据库之间进行对话的方法。而JDBC正是作为此种用途的机制。JDBC扩展了Java的功能。例如,用Java和JDBCAPI可以发布含有applet的网页,而该applet使用的信息可能来自远程数据库企业也可以用JDBC通过Intranet将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有Windows、Macintosh和UNIX等各种不同的操作系统)。随着越来越多的程序员开始使用Java编程语言,对从Java中便捷地访问数据库的要求也在日益增加。系统管理员们都喜欢Java和JDBC的结合,因为它使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。对于商务上的销售信息服务,Java和JDBC可为外部客户提供获取信息更新的更好方法。简单地说,JDBC可做三件事:与数据库建立连接、发送SQL语句并处理结果。下列代码段给出了以上三步的基本示例:Connectioncon=DriverManager.getConnection("jdbc:odbc:wombat","login","password");Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery("SELECTa,b,cFROMTable1");while(rs.next()){intx=rs.getInt("a");Strings=rs.getString("b");floatf=rs.getFloat("c");}上述代码对基于JDBC的数据库访问做了经典的总结。3.7BS模式与C/S模式的比较分析C/S模式主要由客户应用程序(Client)、服务器管理程序(Server)和中间件(middleware)三个部件组成。客户应用程序是系统中用户与数据进行交互的部件。服务器程序负责有效地管理系统资源,如管理一个信息数据库,其主要工作是当多个客户并发地请求服务器上的相同资源时,对这些资源进行最优化管理。中间件负责联结客户应用程序与服务器管理程序,协同完成一个作业,以满足用户查询管理数据的要求。B/S模式是一种以Web技术为基础的新型的电信系统平台模式。把传统C/S模式中的服务器部分分解为一个数据服务器与一个或多个应用服务器(Web服务器),从而构成一个三层结构的客户服务器体系。第一层客户机是用户与整个系统的接口。客户的应用程序精简到一个通用的浏览器软件,如Netscape
Navigator,微软公司的IE等。浏览器将HTML代码转化成图文并茂的网页。网页还具备一定的交互功能,允许用户在网页提供的申请表上输入信息提交给后台,并提出处理请求。这个后台就是第二层的Web服务器。第二层Web服务器将启动相应的进程来响应这一请求,并动态生成一串HTML代码,其中嵌入处理的结果,返回给客户机的浏览器。如果客户机提交的请求包括数据的存取,Web服务器还需与数据库服务器协同完成这一处理工作。第三层数据库服务器的任务类似于C/S模式,负责协调不同的Web服务器发出的SQ请求,管理数据库。B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装、零维护。系统的扩展非常容易。B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展,它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新。首先它简化了客户端。它无需象C/S模式那样在不同的客户机上安装不同的客户应用程序,而只需安装通用的浏览器软件。这样不但可以节省客户机的硬盘空间与内存,而且使安装过程更加简便、网络结构更加灵活。假设一个企业的决策层要开一个讨论库存问题的会议,他们只需从会议室的计算机上直接通过浏览器查询数据,然后显示给大家看就可以了。甚至与会者还可以把笔记本电脑联上会议室的网络插口,自己来查询相关的数据。其次,它简化了系统的开发和维护。系统的开发者无须再为不同级别的用户设计开发不同的客户应用程序了,只需把所有的功能都实现在Web服务器上,并就不同的功能为各个组别的用户设置权限就可以了。各个用户通过HTTP请求在权限范围内调用Web服务器上不同处理程序,从而完成对数据的查询或修改。现代企业面临着日新月异的竞争环境,对企业内部运作机制的更新与调整也变得逐渐频繁。相对于C/S,B/S的维护具有更大的灵活性。当形势变化时,它无须再为每一个现有的客户应用程序升级,而只需对Web服务器上的服务处理程序进行修订。这样不但可以提高公司的运作效率,还省去了维护时协调工作的不少麻烦。如果一个公司有上千台客户机,并且分布在不同的地点,那么便于维护将会显得更加重要。维护和升级方式简单。当前,软件系统的改进和升级越发频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。再次,它使用户的操作变得更简单。对于C/S模式,客户应用程序有自己特定的规格,使用者需要接受专门培训。而采用B/S模式时,客户端只是一个简单易用的浏览器软件。无论是决策层还是操作层的人员都无需培训,就可以直接使用。B/S模式的这种特性,还使系统维护的限制因素更少。最后,B/S特别适用于网上信息发布,使得传统的电信的功能有所扩展。这是C/S所无法实现的。而这种新增的网上信息发布功能恰是现代企业所需的。这使得企业的大部分书面文件可以被电子文件成本降低,选择更多。大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。当前的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用哪种操作系统都可以让大部分人使用windows作为桌面电脑操作系统不受影响,这就使得最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。比如说很多人每天上“新浪”网,只要安装了浏览器就可以了,并不需要了解“新浪”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。取代,从而提高了企业的工作效率,使企业行政手续简化,节省人力物力。鉴于B/S相对于C/S的先进性,B/S逐渐成为一种流行的电信系统平台。各软件公司纷纷推出自己的Internet方案,基于Web的财务系统、基于Web的ERP。一些企业已经领先一步开始使用它,并且收到了一定的成效。B/S模式的新颖与流行,和在某些方面相对于C/S的巨大改进,使B/S成了电信系统平台的首选。4.系统分析和项目开发计划4.1系统分析开发一个系统,首先要进行系统分析。其主要任务是确定系统的规模和范围,确定软件的总体要求以及所需要的硬件环境和支撑软件平台、确定待开发软件与外界的接口,确定软件对操作系统的要求,以及待开发软件总体上的约束和限制。系统分析有助于弄清所需开发的软件、硬件环境、支撑软件和操作人员的要求。要求主要功能有:自助服务登录:验证客户身份的有效性,账号为手机号码,密码为6位手机服务密码。个人信息管理:为客户提供查看和修改个人基本资料信息的服务,包括客户名称、通信地址和邮编、邮箱地址、联系电话等。业务办理:对客户提供各种产品的功能介绍和进行业务在线申请、变更等操作。话费查询:对客户提供话费相关信息的查询,如本月话费详情等。手机归属地查询:对客户输入的手机号码进行识别,显示其注册地址(详细到市/县)。投诉与建议:欢迎客户对我们的服务提出宝贵意见并对我们的不周之处提出批评。学习了中国移动对移动用户实施优质服务的落实办法,在营业厅实践规模化优质服务接受广大用户咨询向电信用户的解释有关受费及相关问题。电信管理信息系统旨在提供一个全面的信息加工处理进一步利用的工具,以提高管理水平。在系统开发之前,必须了解该系统的特点、适用范围以及使用者需要一个什么样的系统,以此作为基础为开发系统准确定位,然后对使用者所需实现的功能进行分析总结,根据使用者的实际要求来给系统设计一个初步方案。系统的开发不仅是要实现对数据处理的及时与正确,而且要考虑系统是否具有控制功能,及时将数据反馈给操作者,以进行监测和协调,保证系统的正常运行;也要考虑是否具有预测功能,运用一定的数学方法利用历史的数据对未来进行预测的工作。电信管理信息系统的开发是一项复杂的系统工程,必须严格的按照系统规划、系统分析、系统设计、系统实施、系统运行与评价的开发步骤来进行。进行了大规模的业务学习后,得出系统性的分析。然后进行功能划分。从用户和管理员角度考虑问题:电信网上营业厅作为特殊的信息系统,用户的持续使用行为同样重要。现有的研究表明顾客感知价值是用户持续使用行为最重要的影响因素。其中框架大致差不多。随着电信市场的逐步开放,一些世界级的电信巨头正通过多种手段逐步渗透到中国电信市场,国内电信运营商正面对一个全新的、更加激烈的市场竞争环境。这就要求电信运营商开始采取以“客户为中心”的策略,根据客户的实际需求提供个性化的服务解决方案,因此必须根据客户的特点对客户进行细分管理分析。所以,从以下几点分析:一是依据自然属性细分客户,主要是利用客户的年龄、职业、地区、业务品牌等静态数据来细分客户;二是依据行为属性细分客户,主要是通过客户的通话、短信消费行为等动态数据来细分客户。对客户进行了细分和研究后,功能模块图如图4-1所示:手机网上营业厅自助服务系统手机网上营业厅自助服务系统用户管理员在线电话(选)手机归属地查询话费查询业务办理个人信息查看个人信息修改投诉与建议业务管理注册用户管理用户已办业务管理话费管理投诉与建议管理系统用户管理图4-1功能模块图图4-1功能模块图4.2项目开发计划经过详细的分析后,我们一致认为这是一项具有开发价值的软件,接下来的工作就是编制项目开发计划。通过对有关人员的统一调查,并吸取他们的意见、见解,要求系统需要有以下功能:1.要求有良好的人机界面。良好的人机界面是衡量一个系统易用性的重要标准之一。所以本系统的界面要求简洁明了,使管理人员能迅速地就可以掌握系统的使用。2.要设置使用权限,以提高软件的安全性。3.对原始数据的修改简单方便.修改也和其它系统一样包括基本的修改、删除和保存以及查询等。要求对数据能进行查询、统计。查询要求能以最快的速度找到所需数据,以达到方便管理的目的。统计要求能根据犯人信息、等进行统计。让软件更具灵活性。4.3处理流程设计4.3.1数据增加流程添加信息时,编号字段由系统自动生成,且不能修改,其他信息由用户输入,之后对数据进行合法判断,合法则写入保存至数据库,不合法则重新输入数据。数据增加流程图如4-2所示。开始开始自动生成编号输入数据是否合法写入数据库结束图图4-2数据增加流程图4.3.2数据修改流程在修改信息时,先选中一条待修改的记录,然后直接输入数据,判断合法性,合法则保存至数据库,不合法重新输入。数据修改流程图如图4-3所示。图4-3图4-3数据修改流程图开始选择需要修改记录输入数据是否合法写入数据库结束4.3.3数据删除流程当用户选定一条记录时,单击删除按钮,会提示用户是否确定删除,然后删除数据库相关内容。数据删除流程图如图4-4所示。图4-4数据删除流程图图4-4数据删除流程图开始选择需要删除记录是否删除更新数据库4.4系统E-R图密码用户名用户名密码密码用户名用户名密码管理员会员管理员会员注销退出注销退出注销退出注销退出操作操作管理手机查询管理手机查询业务管理业务管理会员管理信息话费查询信息会员管理信息话费查询信息系统用户管理投诉管理话费管理已办业务管理投诉建议修改信息业务办理系统用户管理投诉管理话费管理已办业务管理投诉建议修改信息业务办理图图4-5系统ER图5.详细设计5.1用户登陆登陆时,首先出现的是一个用户权限登陆的界面,权限设置主要是维护系统的安全性和完整性,只有输入正确的用户名和密码才能进行操作。代码如下:publicclassAdminListBean{ SelectBeansb=newSelectBean();//新建一个SelectBean()类 publicArrayListgetAdminList(){ Stringsql="select*fromadmin";//SQL语句 Stringargs[]={"id","name","pwd","popedom"}; ArrayListal=sb.select(sql,args); returnal;//返回结果 }}5.2个人信息管理为客户提供查看和修改个人基本资料信息的服务,包括客户名称、通信地址和邮编、邮箱地址、联系电话等。publicclassAllBean{ SelectBeansb=newSelectBean(); ArrayListal=null; publicArrayListgetUsers(){ Stringsql="select*fromusersorderbyiddesc";//降序搜索 Stringargs[]={"id","name","age","sex","phone","address","yearcard","begindate","enddate","amount","loss"}; al=sb.select(sql,args); returnal; } publicArrayListgetUsers(Stringid){ Stringsql="select*fromuserswhereid="+id; Stringargs[]={"id","name","age","sex","phone","address","yearcard","begindate","enddate","amount","loss"}; al=sb.select(args,sql); returnal; } publicArrayListgetUsersId(Stringid){ Stringsql="select*fromuserswhereid="+id; Stringargs[]={"id","name","age","sex","phone","address","yearcard","begindate","enddate","amount","loss"};//查询id,姓名,年龄等数据库中的结果 al=sb.select(sql,args); returnal; } publicArrayListgetUsersName(Stringname){ Stringsql="select*fromuserswherenamelike'%"+name+"%'orderbyiddesc";//降序搜索结果集合 Stringargs[]={"id","name","age","sex","phone","address","yearcard","begindate","enddate","amount","loss"}; al=sb.select(sql,args); returnal; } publicArrayListgetItem(){ Stringsql="select*fromitemorderbyiddesc"; Stringargs[]={"id","name","price"};//定义id,name,price al=sb.select(sql,args); returnal; } publicArrayListgetItem(Stringid){ Stringsql="select*fromitemwhereid="+id; Stringargs[]={"id","name","price"};//定义id,name,price al=sb.select(args,sql); returnal; } publicArrayListgetYearcard(){ Stringsql="select*fromyearcardwhereid=1"; Stringargs[]={"id","price"};//定义id,price数组 al=sb.select(args,sql); returnal; } publicArrayListgetFlaw(Stringid){ Stringsql="select*fromflawwhereid="+id; Stringargs[]={"id","softwareid","usersid","content","reason","restoration","times"};//搜索id,softwarid,userid等字段 al=sb.select(args,sql); returnal; }5.3业务办理对客户提供各种产品的功能介绍和进行业务在线申请、变更等操作。代码如下:publicclassSelectBean{ //建立连接 Connectionconn=null; Statementst=null; ResultSetrs=null; publicArrayListselect(Stringsql,String[]args){ ArrayListal=newArrayList(); conn=DBConn.getConn(); try{ st=conn.createStatement(); rs=st.executeQuery(sql); while(rs.next()){ ArrayListalRow=newArrayList(); for(inti=0;i<args.length;i++){ alRow.add(rs.getString(args[i])); } al.add(alRow); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ DBConn.close(conn,st,rs); } returnal; } publicArrayListselect(String[]args,Stringsql){ ArrayListal=newArrayList(); conn=DBConn.getConn(); try{ st=conn.createStatement(); rs=st.executeQuery(sql); rs.next(); for(inti=0;i<args.length;i++){ al.add(rs.getString(args[i])); } }catch(SQLExceptione){ }finally{ DBConn.close(conn,st,rs); } returnal; }}5.4话费查询对客户提供话费相关信息的查询,如本月话费详情等。代码如下:publicclassInsertUpdateDelBean{ Connectionconn=null; Statementst=null; ResultSetrs=null; /*插入功能*/ publicintinsertANDupdateANDdel(Stringsql){ inttemp=0; conn=DBConn.getConn(); try{ st=conn.createStatement(); temp=st.executeUpdate(sql); }catch(SQLExceptione){ e.printStackTrace(); temp=-1; }finally{ DBConn.close(conn,st,rs); } returntemp; }}5.5手机归属地查询对客户输入的手机号码进行识别,显示其注册地址(详细到市/县)。代码如下:/*手机归属地查询*/publicclassAmountServletextendsHttpServlet{ publicAmountServlet(){ super(); } publicvoiddestroy(){ super.destroy(); } publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doPost(request,response); }5.6投诉与建议界面显示:欢迎客户对我们的服务提出宝贵意见并对我们的不周之处提出批评。代码如下:publicclassRemoveServletextendsHttpServlet{ publicRemoveServlet(){ super(); } publicvoiddestroy(){ super.destroy(); } publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doPost(request,response); } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ Stringmark=request.getParameter("mark");//得到mark标记 Stringstr=""; HttpSessionsession=request.getSession(); if(mark!=null&&mark.equals("user")){ session.removeAttribute("userlogin"); str="/users/index.jsp";//返回首页 }6.系统调试与测试6.1程序调试程序调试,是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可少的步骤。编完计算机程序,必须送入计算机中测试。根据测试时所发现的错误,进一步诊断,找出原因和具体的位置进行修正。图图6-1用户登陆页面图图6-2话费查询页面图图6-3归属地查询页面图图6-4业务办理页面图图6-5用户资料页面图图6-6密码修改页面图6-7图6-7投诉建议页面图6-8图6-8注册用户管理页面图图6-9用户业务管理页面6.2程序的测试6.2.1测试的重要性及目的1.测试的重要性测试是什么?测试就是对项目开发过程的产品(编码、文档等)进行差错审查,保证其质量的一种过程。
软件的测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。软件质量是由几个方面来衡量的:一、在正确的时间用正确的的方法把一个工作做正确(Doingtherightthingsrightattherighttime)。二、符合一些应用标准的要求,比如不同国家的用户不同的操作习惯和要求,项目工程中的可维护性、可测试性等要求。三、质量本身就是软件达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软件的高质量(Qualityisdefinedasconformancetorequirements,notas“goodness”or“elegance”)。四、质量也代表着它符合客户的需要(Qualityalsomeans“meetcustomerneeds”)。软件测试的意思,不仅是要去测试开发人员正确的设计了软件,还包括他们设计的软件是正确的,满足客户需求的。测试人员和开发人员的角度是不同的,测试应该有一个全局的观点,而且要从客户的角度出发.这一点应该是最重要的。作为软件测试这个行业,最重要的一件事就是从客户的需求出发,从客户的角度去看产品,客户会怎么去使用这个产品,使用过程中会遇到什么样的问题。只有这些问题都解决了,软件产品的质量才可以说是上去了。事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。而在软件开发的总成本中,用在测试上的开销要占30%到50%。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。在实践中,软件测试的困难常常使人望而却步或敷衍了事,这是由于对测试仍然存在一些不正确的看法和错误的态度,这包括:①认为测试工作不如设计和编码那样容易取得进展难以给测试人员某种成就感;②以发现软件错误为目标的测试是非建设性的,甚至是破坏性的,测试中发现错位是对责任者工作的一种否定;③测试工作枯燥无味,不能引起人们的兴趣;④测试工作是艰苦而细致的工作;⑤对自己编写的程序盲目自信,在发现错误后,顾虑别人对自己的开发能力的看法。这些观点对软件测试工作是极为不利的,必须澄清认识、端正态度,才可能提高软件产品的质量。2.测试的目的如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。①软件测试是为了发现错误而执行程序的过程;②测试是为了证明程序有错,而不是证明程序无错误;③一个好的测试用例是在于它能发现至今未发现的错误;④一个成功的测试是发现了至今未发现的错误的测试。这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。6.2.2测试的步骤与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由若干个模块组成。因此,大型软件系统的测试基本上由下述几个步骤组成:1.模块测试:在这个测试步骤中所发现的往往是编码和详细设计的错误。2.系统测试:在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。3.验收测试:在这个测试步骤中发现的往往是系统需求说明书中的错误。其中全部测试过程为:需求分析--测试计划--测试方案--测试用例--执行测试--缺陷记录--测试报告。6.2.3测试的主要内容为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试、确认测试和系统测试。1.单元测试单元测试集中在检查软件设计的最小单位—模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。2.集成测试集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。如一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。3.确认测试确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。4.系统测试软件开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。包括恢复测试、安全测试、强度测试和性能测试等。单独对系统的测试主要从以下几方面入手:①功能测试:测试是否满足开发要求,是否提供设计所描述的功能,是否用户的需求都得到满足。功能测试是系统测试最常用和必须的测试,通常还会以正式的软件说明书为测试标准。②强度测试及性能测试:测试系统能力最高实际限度,即软件在一些超负荷情况下功能实现的情况。③安全测试:验证安装在系统内的保护机构确实能够对系统进行保护,使之不受各种非常的干扰。针对本系统主要是对权限系统的测试和对无效数据、错数据、和非法数据干扰的能力的测试。经过上述的测试过程对软件进行测试后,软件基本满足开发的要求,测试宣告结束。结论短暂的实习结束了,设计的功能基本符合用户需求。对于数据的一致性的问题也通过程序进行了有效的解决。该系统还有许多不尽如人意的地方,在今后有待进一步改善。通过这次毕业设计真切地体会到毕业设计的目的并不止于自己单纯任务的完成,而在于学习新的知识并掌握具体的方法,如何具体使用和具体应用你所学所用的语言。从而获得一种本领:就是融会贯通各种语言。回首整个开发设计过程,我学到了很多书本上学不到的东西。在整个毕业设计过程中,我基本上完成了网上营业厅业务办理的设计与实现,达到了毕业设计的要求。界面设计还有进一步改善的地方,我会在今后的学习工作中着重加强这方面的锻炼。在以后的工作中,还会遇到很多类似的情况,此次毕业设计为我以后的工
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 急救医学知到智慧树章节测试课后答案2024年秋黑龙江护理高等专科学校
- 2025年哈密职业技术学院单招职业倾向性测试题库含答案
- 问题探究:何时蓝天常在?教学设计 高中地理人教版(2019)必修一
- 2025年河北正定师范高等专科学校单招职业倾向性测试题库1套
- 用工合同范本超市
- 好医生合同范本
- 2025年广东茂名农林科技职业学院单招职业倾向性测试题库及参考答案
- 支付赔偿合同范本
- 2025-2030年中国物流信息化十三五规划分析及投资前景规划报告
- 2025-2030年中国煅后焦市场运行状况及投资前景趋势分析报告
- 2024年企业规章制度修订方案
- 聚焦任务的学习设计作业改革新视角
- 血管活性药物静脉输注护理方法(中华护理学会团体标准T CNAS 22-2021)
- 史上最完善IPD培训资料华为IPD培训资料
- 2024高二语文期末试卷(选必上、中)及详细答案
- 《选材专项训练》课件
- 附着式升降脚手架安装平台和架体检查验收表
- 小儿麻疹的护理查房
- DL-T 2574-2022 混流式水轮机维护检修规程
- 《钢铁是怎样炼成的》读书分享课件
- GB/T 19830-2023石油天然气工业油气井套管或油管用钢管
评论
0/150
提交评论