jsp房屋出租管理系统ssh论文_第1页
jsp房屋出租管理系统ssh论文_第2页
jsp房屋出租管理系统ssh论文_第3页
jsp房屋出租管理系统ssh论文_第4页
jsp房屋出租管理系统ssh论文_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

房屋出租系统摘要房屋是人类生活栖息的重要场所,城市中的大量的流动人口随着日益升温的房屋出租产业注入了无限的发展空间。但在房屋管理上存在着大量的缺陷,如繁重的数据流量,复杂的合同管理,以及繁多的报表等等。为了跟上社会的发展,为此,在考查了社会现状和对现有人员的分析之后,提出了我们的课题——房屋出租系统。我们的房屋出租系统就在此市场环境下孕育而生。企业房屋出租系统是在J2EE技术的基础上实现的,它与敏捷的开发方式相融合,完成了整套系统的检验。该管理系统界面简单、操作简便、灵活、实用性强,可以有效的实现房屋出租的管理过程,并大大提高了房屋出租的工作效率,使得房屋出租系统更加系统化、自动化、规范化,并且可用性、可靠性、安全性非常良好。此系统采用标准的三层框架,将复杂的功能模块分为表示层、控制层、业务层等三层结构,降低了系统开发的复杂性。采用的开发技术符合J2EE规范,提升系统的运行性能和安全性能,也便于运行期维护。本系统主要分为住户、房主、管理员三个角色。管理员实现租房信息管理、房屋信息管理、合同信息管理、注册用户管理、留言板管理、基本信息管理等功能。房主实现租房信息管理、查看租房信息、基本信息管理功能。住户实现信息管理以及基本信息管理功能。关键词:人事管理;B/S模式;J2EE架构;MVC

AbstractHousingisanimportantplaceforhumanlifehabitat,citieswithalargenumberoffloatingpopulationintherentalindustryheatsupintotheinfinitespacefordevelopment.Buttherearealotofhousingmanagementdeficiencies,suchasheavytraffic,complexcontractmanagement,aswellasnumerousreportsandsoon.Tokeepupwiththedevelopmentofsociety,forwhich,afterexaminingthesituationandanalysisofexistingsocialworkers,made​​ourtask-rentalsystem.Ourrentalsysteminthismarketenvironmentbornout.EnterpriserentalsystemisbasedonJ2EEtechnologytoachieveitwithagiledevelopmentmethodsofintegration,completeinspectionoftheentiresystem.Themanagementsysteminterfaceissimpleandeasytooperate,flexible,practical,effectivemanagementprocesstoachieverental,andgreatlyimprovetheefficiencyofrental,makingrentalsystemmoresystematic,automated,standardized,andavailability,reliability,securityisverygood.Thissystemusesastandardthree-tierframework,complexmodulesintothepresentationlayer,controllayerstructurelayer,businesslayer,reducingthecomplexityofsystemdevelopment.DevelopmentoftechnologyusedincompliancewiththeJ2EEspecification,improveoperationalperformanceandsafetyperformanceofthesystem,butalsoeasytomaintainruntime.Thesystemconsistsoftenants,homeowners,administratorsthreeroles.Administratorsrealizerentalinformationmanagement,housinginformationmanagement,contractinformationmanagement,subscribermanagement,messageboards,management,informationmanagement,andotherbasicfunctions.Homeownersrealizerentalinformationmanagement,viewrentalinformation,basicinformationmanagementfunctions.Householdachieveinformationmanagementandbasicinformationmanagementfunctions.Keywords:PersonnelManagement;B/Smode;J2EEarchitecture;MVC目录第一章绪论 31.1课题研究背景 31.2课题研究意义 31.3本课题主要工作 4第二章房屋出租系统相关技术 52.1J2EE技术 52.2MVC模式 62.3B/S结构 62.4数据库技术 92.5本章小结 10第三章房屋出租系统需求分析 113.1系统总体目标 113.2系统可行性分析 113.3系统功能需求分析 123.4系统非功能需求分析 123.5系统开发环境与开发工具 13第四章系统设计与实现 154.1设计目标与原则 154.2系统架构设计 164.3数据库设计 184.4系统实现 234.5界面运行效果 30第五章系统测试 335.1软件测试及工具 335.2测试方法 345.3系统配置要求 345.4测试内容 355.5测试结果 365.6本章小结 36总结 37致谢 38参考文献 39

第一章绪论随着社会的信息化,信息资源已成为非常宝贵的一种财富,因此一个即时有效的信息管理系统是一个企业得到良好发展的基础。所以作为信息系统的基础和核心的数据库技术在各个方面得到了更广泛的应用,其中有从联机事务处理到联机分析处理,从一般的企业管理到计算机辅助设计、集成制造系统等等。数据的规模、信息量、使用频率更是代表一个国家信息化发展的程度。但是我国目前的信息化程度并不高,道路漫长而曲折,在经济迅猛发展的今天,信息系统的管理已成为各行各业关注的焦点。1.1课题研究背景利用计算机实现物业管理中的房屋租赁管理势在必行。对于物业管理企业来说,利用计算机支持企业高效率完成房屋租赁管理的日常事务,是适应现代企业制度要求、推动企业劳动型管理走向科学化、规范化的必要条件;而房屋租赁管理是一项琐碎、复杂而又十分细致的工作,房屋的基本资料,客户资料的管理,房屋租赁管理,各项收费以及统计报表的管理,一般不允许出错,如果实行手工操作,须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行房屋租赁工作的管理,不仅能够保证各项信息准确无误、快速输出,同时计算机具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高物业管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。开发本系统就是为了解决物业管理企业在房屋租赁信息管理中的一些不规范,使房屋租赁信息的管理向着规范化、简单化、有效化的方向发展。1.2课题研究意义随着经济的快速发展,企事业单位面对的压力也越来越大,当代的竞争就是效率的竞争,而往往一个公司管理的好坏就直接影响到工作效率,所以在这种前提下,一个即方便又管理严密的方法迫在眉睫,而尤其对于房屋租赁,要处理和管理的事物烦琐,没有一个好的管理系统是非常麻烦的,费力不讨好。本课件就是针对这种现状而编写的一个可在实际中解决问题的管理系统,重点是对房屋租赁的添加,修改,查询,读取和删除的管理,同时也可以节省大量的时间和工作量,还可以提高工作效率,对房屋租赁的租赁及管理一目了然,使公司在整体上的效率都提高不少,从而在竞争中立与不败之地随着我国市场经济的快速发展和信息化水平的不断提高,如何利用先进的管理手段,提高物业管理的水平,是当今社会所面临的一个课题。提高企业的管理水平,必须全方位地提高企业的管理意识。只有高标准、高质量的管理才能满足企业的发展需求。面对信息时代的挑战,利用高科技手段来提高房屋租赁管理无疑是一条行之有效的途径。在某种意义上,信息与科技在企业管理与现代化建设中显现出越来越重要的地位。房租租赁管理方面的信息化与科学化,已成为现代化生活水平步入高台阶的重要标志。房屋租赁信息管理是各个房管局及房屋出租中介赖以生存的基础,原始的房屋租赁管理从房屋资料、住户档案、月租金收取到各种报表全部采用人工管理方式,此种管理方式,存在很大的问题和局限:管理不规范,效率低,容易出错,资料查询不方便,人工报表提供慢,房管员上门收取月租金不安全且不能有效控制房管员在收费过程中的人为不良因素。现在,各种房屋中介如雨后春笋般在大街小巷遍布开来,要经营这样的店必须依赖于大量的房屋信息,且要具有很大的灵活性,这样才能立于竞争的不败之地。鉴于房管局及房屋中介的实际业务情况,且在当今电脑与网络通信技术普遍的前提下,开发这一房屋租赁管理信息系统是有一定现实意义的。它实现了从房屋资料、住户档案、月租金收取到报表的电脑化管理,其中包括房屋图纸、住户照片的电脑文档管理,从而,基本实现了房屋及相关资料的无纸化办公,大大提高了工作效率,减少了人为错误,丰富的报表为领导全面了解房管所当前月租金收取状况提供了非常快捷的管理方式。1.3本课题主要工作本文依据面向对象的软件开发流程,对需求分析到实施检测都进行了全方面的阐述。本人主要做了一下工作:1.对需求进行分析。对采集系统的需求进行分析,了解该系统的主要特点和要实现的目标,和用户交流之后对用户的特点和系统的业务流程进行分析,全面掌握业务流程,理清系统的功能性需求和非功能性需求。2.选择合适的技术方案。建立一个系统的开发平台,再对关键技术进行详细的研究。按照实用、开放、开源的原则,从数据库平台、系统平台、开发平台、应用服务器这几个方面,设计出既保证满足需求,又开源可扩展的系统架构。利用大量的扩展产品要比传统的开发方式更灵活且成熟。3.系统的设计和系统的实现。系统的设计原则依据MVC的设计思想,使得系统的外观、业务逻辑与数据存储处于分离的状态。详细分析系统的功能、业务流程、用户角色,以此为根据设计系统的结构,还详细地分析设计系统。4.测试系统。本文对系统的测试方法进行了详细论述。

第二章房屋出租系统相关技术2.1J2EE技术J2EE技术属于一种简化方案,即采用Java技术来完成对方案开发、部署、管理等问题的简化。这种技术允许设计者采用以下手段进行控制:例如采用具有一致化特点的模型、多次使用同一组件等方法,甚至在事务控制上采取多变的手段。由于这种技术,在面对不同的用户需求时,开发商给出的应对策略变化十分灵活,方案各不相同,更重要的是各种策略不会循规蹈矩,此外,软件开发商给出解决方案所需周期大大下降。下面对J2EE平台在企业方面的优势进行说明:1.通常来讲,企业级的运算涉及到很多方面的综合,要想很好地完成运算,就必须具有相应的标准,而J2EE则对标准进行了规定,使得企业在Web相关组件、通信协议、数据库的连接、企业的业务组件、面向消息的中间件、互操作性等方面的运算很容易进行。由开放标准开发软件构建的系统具有很大优势,例如更为安全可靠,性能更加良好等,而这正是J2EE平台所倡导的开发模式,所以J2EE的应用前景十分广泛。1)采用J2EE平台开发出的软件具有很广的通用性:即适用于不同软件开发商的不同产品,这就避免了某一开发商的垄断。2)另外,J2EE平台的出现使得产品生产周期降低成为现实。主要原因在于,软件在开发中,大部分的基本框架、结构属于固定模式,即可以直接调用,而无需进行重新编写。从而,使得开发周期大大降低,而对于软件开发人员而言,不但能够更快地掌握编写技术,而且具有更高的工作效率。由于采用J2EE技术,使得当前在结构上不同的系统之间的互操作性有很大的提高。一般来讲,J2EE主要从高层获得有关基础技术,然后进行抽象化处理。在进行技术的利用前应给出详细的方案,并进行相关模型的建立。而采用J2EE则可以很好地完成以上任务。J2EE设计模式首先完全继承了一般模式的优点,其次还具有起独特的优势。对此,对于J2EE更为形象化,能够将问题简单化,在使用时更为恰当、便利。J2EE最主要的模式分为两种:第一种是TheServerS,另一种是SunJavaCenter,具体分为15种不同的模式。从以上可以看出,J2EE拥有无可比拟的优势:及其适合多层分布式企业应用程序的开发,不但具有很高的稳定性、而且在可移植性、可伸缩性方面也十分突出。另外,采用J2EE模式可以大量缩短软件开发周期,提高企业效益。2.2MVC模式MVC是一种目前广泛流行的软件设计模式。由于J2EE技术逐步走向完善,在实际生产中,MVC设计被越来越多的使用,逐渐成为主流应用模型。与其它模式相比,MVC模式不但在显示、功能两大模块的分离上存在优势,而且支持以下功能:扩展性、维护性、移植性,此外使得组件具有可复用性。所谓MVC,即Model——模型、View——视图、Controller——控制器的缩写。具体将,就是将依照视图、模型、控制器的方式对输入、处理、输出流程进行分离处理。所以一般将应用分成三个不同的层次:模型层、视图层、控制层。事件至少会引起三者中的一个发生变化。因此,只要控制层将模型层的属性或有关数据进行改变,就会导致新的视图层得出现。同理,控制层导致视图层得变化,也会使得模型层发生变动。图2-1显示的是Model、View、Controller之间的相互关系。图2-1MVC模式体系结构与工作原理2.3B/S结构B/S结构是Browser/Server的缩写,汉语中指的是浏览器以及服务器结构。B/S的基础是C/S,经过对C/S的修改、升级得到的。在B/S下,具有三层结构:首先,用户的操作界面通过浏览器实现;其次,大部分事务逻辑的实现基于服务器端;最后,少部分的事务逻辑的实现由前端完成。采用这种结构,不但使整体成本下降,而且将电脑的负载大大降低,从而减少工作量与工作强度。在现阶段,采用B/S模式结构,是很容易实现的。这种技术属于一次性开发,允许不同的工作人员从不同的地点,以不同的接入方式,随时随地的对数据库进行管理,还能有效的保护数据平台和管理访问权限,保证有关数据的安全。1.B/S架构软件的优点和缺点(1)容易,升级方便。随着技术的进步,一般来讲,对于软件的修改原来越多,软件的升级周期越来越短。而采用B/S结构就能够很容易避免这方面的麻烦。对于一般的结构而言,在一个企业中,若电脑数量较多,维修人员会因维修与软件升级而来会奔波,工作强度极其巨大。而对于采用B/S结构的软件来讲,由于客户端(电脑)仅起到浏览器的作用,因此维修人员只需要维护好服务器就可以了。无论客户端多么庞大,都丝毫不会增加工作强度。另外,B/S结构支持异地协助,可以实现异地的软件升级、维护。采用B/S结构会大大降低所需的人力物力,从而提升工作效率。(2)低成本,更多的选择。由于最常使用的操作系统是windows,因此浏览器似乎成了必不可少的。然而在服务器操作系统竞争中,微软公司的产品未必是最好的。现在逐渐形成新的模式,即用B/S结构与Linux服务器进行匹配,这样带来的好处是更为安全可靠,另外还有一点非常重要,即Linux的数据库也是不收费的。这也说明了B/S结构对操作系统的选择不唯一,而是支持多种操作系统的。(3)应用服务器的运行数据负荷重。根据分析我们知道,B/S的三层结构分工明确,即绝大多数的事务逻辑由服务器端处理,另外客户端只起到浏览器的作用。这样虽然优势很多,但是也具有一定的缺点:即应用服务器上的负荷比较大,若服务器稍微出现问题,就会导致非常严重的后果,为了避免这种现象的出现,一般采取保护措施——配备专门的数据库服务器。2.C/S与B/S结构在技术上的比对C/S结构软件——客户机/服务器模式可以分为两层:首先是客户机,其次是服务器。客户机不但承担着对数据的输入、输出,而且在一定程度上要对相关数据进行处理、分析,还要对数据进行判断,合理分配,从而将通信的数据量、服务器上进行的计算量进行减轻。然而,服务器在连接数量上一级通信信息量上不是没有上限的,所以C/S结构仅适用于连接量较小的情况,比如财务软件等。B/S——浏览器/服务器模式是在C/S的基础上发展起来的,要想完成软件应用业务的处理,仅需通过浏览器就能很容易的实现,是一种全新的软件系统构造技术。采用B/S结构是今后的趋势,一般来讲,e通管理软件就采用了B/S结构。(1)在数据安全性方面的对比。对于采用C/S结构的软件而言,C/S的结构决定了要求在各地都安装服务器,还要实现服务器间的数据同步,一旦某一点出现安全问题,势必造成整个系统的安全受到严重影响。因此,C/S结构不适用于服务器较多的类型。而采用B/S结构恰恰可避免这一缺点,因为B/S结构的数据存放在专门的服务器内,客户端不保存任何业务数据和数据库连接信息,并且无需数据同步,因此不存在安全上的问题。(2)在数据实时性上的对比。由于C/S结构无法保证随时随地的看到当前业务发生情况,因此得到的都是已经存在的数据,不是即时数据。而B/S结构则可以得到当前发生所有业务的实时数据,可以以此进行即时决策,有效地避免了企业的损失。(3)在数据一致性上的对比。要实现异地经营,对于C/S结构软件,需要安装区域级服务器,并实现数据上的同步,在服务器完成同步后总部才能得到最终数据。首先这就要求所以的服务器必须正常运行,其次由于存在的微小差异,在理论上无法实现数据同步。而采用B/S结构,这种结构的数据属于集中存放,无不同步问题,数据始终一致。(4)在服务响应及时性方面的对比。企业的业务流程、业务模式不是一成不变的,由于要适应市场的需求,这就要求企业要实时进行调整、改革,业务的流程也在发生大大小小的变化,为了使企业正常运行,就必须对相关软件进行即时更新、维护。对于采用C/S结构的软件,由于所有的客户端都需要进行更新、维护,因此工作量巨大,很难做到所有的程序版本一致,所需要很长的时间重新部署。而对于采用B/S结构一类软件,服务器的作用与浏览器相当,所以软件的更新、维护只需在总部进行即可,大大节省了时间,很容易实现版本的一致性。(5)在数据溯源性上的比对。对于C/S结构,由于数据不是采用集中存放模式,仅仅上传中间报表数据,因此很难查找原始数据的出处。而我们知道在B/S结构中,数据属于集中存放,因此便于总部对数据的来源进行查询,可以很详细地查询所有原始数据的来源。(6)在网络应用限制上的对比。采用C/S结构的软件对网络要求较高:适用于局域网以及宽带(要求带宽不低于1兆)。对于采用B/S结构的软件而言,对网络要求很低,适应范围很广,甚至可以不采用宽带。3.C/S与B/S结构软件在运用上的对比无论采用哪种软件,其目的是为了更好地让企业运转,因此,在选择软件时,不但要注意所采用的技术,还应关注在商业上的运用。我们将在商业运用方面进行对比:(1)在投入成本上的对比。对于C/S来讲,后期维护、更新费用巨大;对于B/S而言,属于一次性投资,成本较低。(2)在企业快速扩张支持方面的对比。发展中的企业的主要特点是扩张的速度极其迅速。为了使企业的扩张能够顺利进行,就要求在部署软件时具有准确、及时的特性。对于C/S结构,一般要保证客户端、服务器、工作人员的同步性,因此与快速扩张不协调。而对于B/S结构而言,由于安装属于一次性,因此要想使企业扩展较快,就必须解决人才问题。(3)在硬件投资保护方面的对比。对于如何维护已经存在的硬件,两种结构采取的手段存在着非常大的区别:对于C/S而言,主要是更换中央服务器,采用更为高级的类型;而对于B/S来讲,可以采取逐渐增加服务器数量的方法,并使服务器间的负载逐渐趋于平衡,从而做到保护原有硬件。若采用C/S结构,不但无法解决巨大的人力物力的消耗,而且无法保证拥有足够的人才,所以考虑到企业的发展前景,C/S结构是不适应的。另外,C/S结构无法保证安全性,并且要求中央服务器性能非常好。对于B/S结构而言,在用户的数量上是没有限制的。根据上述分析,我们可以看到,在各个方面上,B/S结构的管理软件都要优于C/S结构软件。另外,当前的趋势也是逐渐用B/S代替C/S。从国内诸多软件商积极投入开发B/S结构软件的趋势来看,B/S结构的大型管理软件势必在将来的几年内占据管理软件领域的主导地位。2.4数据库技术数据库是数据和数据库对象的集合,其中数据库对象指表(Table)、视图(View)、存储过程(StoredProcedure)和触发器(Trigger)等。数据库通过SQL(StructuredQueryLanguage)来对数据进行操作和管理,这里包括一些基本的操作如select、delete、insert、update语句。ADO(ActiveXDataObjects)是微软开发数据库应用程序的数据库访问技术。它被设计用来同新的数据库访问层OLEDBProvider一起协同工作,以提供通用数据访问(UniversalDataMySQL)。OLEDB是一个底层的数据库访问接口,用它可以访问各种数据源,包括传统的关系数据库。ADO封装了OLEDB程序中使用的大量COM接口,所以是一种高层访问技术。关于数据库管理系统和接口的原理如图2所示。MySQL是一个快速、多线程、多用户的小型关系型数据库管理系统。它支持正规的SQL查询语言和采用多种数据类型,能对数据进行各种详细的查询等。MySQL提供了一全套的数据库创建和访问机制,通过很直观的方式就可以创建、访问、修改数据库的表和项,并且能建立它们之间的各种数据关系。MySQL系列从90年代就发展起来,经过了多年的反展,它已经成为非常成熟的技术,面向中小型企业级应用。MySQL数据库的特点是数据库文件小而简单,不需要运行或者启动数据库服务进程就可以使用。通常MySQL数据库文件可以随网页文件一起方便地放在网站的目录中,正是由于这些特点,MySQL数据库通常被用来作为网站开发的数据库支持技术。对MySQL数据库的管理采用图形化管理工具phpMyAdmin。phpMyAdmin是一个用PHP编写的、基于Web的、跨平台的MySQL管理程序,支持简体中文,使用Web浏览器作为管理界面。通过phpMyAdmin可以进行绝大部分的MySQL操作,包括对数据库级操作,表级操作,以及数据管理等。图2-2数据库管理系统和接口的原理2.5本章小结本章介绍了房屋出租系统用到的相关技术,针对系统中使用到的技术做了简单的介绍。

第三章房屋出租系统需求分析3.1系统总体目标(1)数据共享建立统一的房屋信息数据库,使数据信息标准化和规范化,实现数据的一致性和共享性,提高信息查询的效率和准确度。(2)实现房屋出租的各项业务功能系统主要分为住户、房主、管理员三个角色。管理员实现租房信息管理、房屋信息管理、合同信息管理、注册用户管理、留言板管理、基本信息管理等功能。房主实现租房信息管理、查看租房信息、基本信息管理功能。住户实现信息管理以及基本信息管理功能。(3)规范房屋出租业务流程实现房屋出租的规范化,全面、科学、系统地进行管理;提供多种信息咨询渠道,最大程度地发挥本系统的作用;提高工作效率和管理水平,完善人事管理工作中的不足之处。(4)实现现代化的管理手段系统应具有清晰的界面,简单易操作;系统的不同用户应具有不同的操作权限;系统应具有数据库备份和恢复功能,提高数据的安全性;系统的运行应基于Internet,只要有网络就可以随时随地办公。论文中涉及的系统,其实质对支持以下功能:首先,管理员可以对系统访问;其次,对于相关信息,管理员有权限进行完善、修改、删减,从而实现了管理整个企业的人员信息。为了方便管理员的操作,要求系统简捷明了,登录界面具有人性化,此外,要注意下面各点:1、实现功能手段:决定着系统性能的好坏。2、程序的运行速度:速度的快慢意味着效率的高低。3、及时的单元测试:能否做到第一时间发现、解决问题。4、安全问题的性能可靠性:能否确保用户的安全使用。3.2系统可行性分析1操作的可行性分析为了尽量便于用户的使用,登录界面尽量简捷、人性化。采取常见的Window界面作为登录界面,而整个系统的开发业使用常见的Java。这些策略使得用户不需很长时间就能很快对系统非常熟悉,可以熟练掌握操作方法。除此之外,系统为了方便维修人员,添加了数据字典等,并在界面登录上给出一定的提示,使得整个系统更具人性化,用户操作起来更为简单。2管理的可行性分析企业要想长久地生存下去,首先必须具有良好的企业文化,其次在管理上体制要完善、制度要合理,再次要采用可持续发展的科学方法,最后还应与时俱进,不断进行企业改革,使得企业时刻适应社会的变革。其中最重要的就是管理方法一定要科学,只有这样企业的竞争力才能上升,才能得到长久的发展。3技术的可行性分析(1)硬件可行性分析论文中系统对于硬件方面的要求不存在特殊的地方,只要求硬件的配置一般即可,只需保证系统可以正常运行、具有较高的效率。若硬件水平较低,可能导致系统性能较低,效率较差,导致无法实现整个设计程序。目前看来,对硬件的要求很容易实现。因此,经过分析,硬件具有可行性。(2)软件可行性分析Java语言可以提供常见的类似机制、动态的借口模型,设计较为集中。另外,采用Java语言可以很容易实现模块化以及信息的隐藏。另外,代码的复用也可以得到很好的体现。因此,考虑到系统的实际情况,论文将其作为开发语言。经过以上分析可知,软件具有可行性。由此,我们从三个方面进行了可行性的分析,可以知道,系统的开发不具有问题。3.3系统功能需求分析企业房屋出租系统主要分为住户、房主、管理员三个角色。管理员实现租房信息管理、房屋信息管理、合同信息管理、注册用户管理、留言板管理、基本信息管理等功能。房主实现租房信息管理、查看租房信息、基本信息管理功能。住户实现信息管理以及基本信息管理功能。3.4系统非功能需求分析非功能性需求,指的是在达到用户要求后必须具备的非功能需求的特征。对于软件类产品而言,经常涉及到以下几个方面:系统是否兼容、系统是否完整、系统功能是否可靠、系统是否适应技术要求等。这些特征不但直接决定了软件的性能,而且对功能性需求产生巨大的影响,然而系统的非功能性需求却是最容易被轻视的。1稳定性要求整个应用软件系统能够连续7x24小时不间断工作。系统运行每1000小时中可用时间至少不小于999小时,故障间隔时间应大于1000小时。系统要保证数据的一致性,完整性,准确性要求达到99.99%。对用户输入的数据进行合法性检查,确保流程的通畅性,并且能够对错误数据进行自动纠错处理。2系统响应时间一般性操作最长不超过5秒,对一般性统计不超过100秒。当操作员做一些处理时间较长的操作时,在界面上能给出提示信息。在返回数据量过大导致响应时间过长时,能提供部分响应,例如分页取数据等,减少等待的时间。3数据处理要求系统做到不但能支持定期的自动数据备份操作,而且还要提供人工备份的操作;提供多种数据输出格式(EXCEL、XML、TEXT等文件形式),而且该输出格式可以方便快捷的倒回原来系统中。真正做到使系统能在数据损坏,丢失等情况下将备份数据倒回,实现数据恢复。且要求系统的数据在线保留三年。4系统的完整性系统正常运行、达到用户要求的前提保障。此类功能一般为必备的。主要包括下面几点:数据的管理、用户的管理、联机帮助、软件发布管理以及软件的在线升级。5系统的可扩充性与可维护性系统是否支持技术、业务需求上的改变。我们知道,在这两方面出现变动时,必将导致整个系统的调整,为了减少修改系统的麻烦,这就要求系统在最初设计时就应当提前考虑,留有一定的改进措施。所谓适应性,其实类似于可扩充性以及可维护性,主要体现在对变化的处理手段。不同点在于,适应性的前提是整个系统不进行变动。如软件具备较好的适应性,当一些技术上、业务需求上出现变动时,系统依然可以正常运行。这就要求,在设计之初,在各种条件、方式上就应该有所考虑。论文采用的开发平台为J2EE,经大量验证,此平台适应于系统的开发。6界面友好要求系统采用多媒体技术,综合图、文、声、像及影视等多种信息手段,使用户操作起来轻松自如,界面美观,富有动感。办公系统软件中所有办公事宜应该按照角色划分并细化到个人,系统能够根据每个用户的身份提供个性化的信息服务,保证组织每个成员不仅能根据自身角色完成工作流程要求的工作内容,还能对个人的工作信息进行管理(登记、查询、打印)。3.5系统开发环境与开发工具1系统的实现平台硬件平台:CPU:酷睿双核CPU;内存:1G以上。软件平台:操作系统:Windowsxp/Windows2003/Windows7/Windows2008;数据库:MySQL;浏览器:IE8.0,推荐使用IE8.0;Web服务器:IIS5。0;分辨率:1024*768以上。2开发工具的选择用到的工具: Myeclipse:用于前台应用程序的编写PowerDesigner:制作数据流程图、概念数据模型、物理数据模型MySQL:用于数据库的建立,为前台提供服务

第四章系统设计与实现在设计体系的时候要做到全方位的站在客户的立场上考虑问题,让最终的产品能够顺应大众用户的需求;同时也是为了给企业自身内部的发展埋下伏笔。这一章节将重点突出对于体系的结构框架的设计描述上,以详细的标明每一个数据库的主体结构框架。4.1设计目标与原则这一个体系的架构的设计要能够体现出和用户之间良好的交互性,且整个的板块界面要非常的清晰明了,能够为后期的数据扩展和保障数据安全护航,只有达到这一个目标才能够有更好的扩展空间,适应企业将来的发展需要。1.就整个体系的设计而言,这一系统必须要达到下述的要求:(1)数据的安全性房屋出租系统中存贮的数据都是企业内部的一些非常保密的不应该被外界发现的数据,为了保证这些数据的安全性,整个的体系必须要有相关的安全防范措施来应对这些潜在的问题。(2)容易使用性该系统的使用者应当对人力资源相关的业务流程有一个大概的认知程度,而且还必须对计算机相关的操作熟悉。所以在设计系统操作窗口的时候应该顺应大众使用者的习惯,在相关的语句上也尽量的做到专一和专业。(3)灵活性由于房屋出租管理这一块上涉及到各种各样的业务,而且主要包含的是对已有业务的一些更新和细化,另外还不断接受新的业务,因此设计出来的系统必须有能够接纳处理这些变化的能力。(4)可拓展延伸性管理的模式会随着时代和业务量的变化而发生变化,因此这一系统就必须有可拓展延伸性,从而来达到引进新业务板块目的。2.从系统实际操作的层次来看,该系统应满足以下原则:(1)可靠性实际中使用的系统每天都会处理很多的比较保密的资料,体系中的每一个小的缺陷会让用户的资料面临着泄漏的危险,因此要大力确保系统非常的可靠。(2)后期的维护保障性企业内部项目经营的扩大,使得这一体系的后来的维护保障的工作量激增,所以在设计的初期要使得体系内部相关参数在后期维护时候便于操作。(3)经济高效性在考虑了用户条件的前提下,还应该实现经济的高效性,尽量的少花钱多办事,为大众的投资降低相应的危险系数。4.2系统架构设计4.2.1总体架构设计系统总体架构设计是将一个整体的任务量肢解成很多个细小而又非常详细的分量,把这些分量进行整合又可以得到整个大任务。其大概的任务步骤是:1.把系统细分成每一个子板块2.预先设计好各个子板块的作用3.设计好每一个子板块之间的逻辑关系4.设计好子板块的界面及模块间信息的传输总体设计过程先确定可能达到最终目的的每一个小的具体方案,对于每一个小的方案而言,就得先找出在需求分析阶段的一些相关的资料。然后初步的设计出这些数据对应的软件,进行一些优化,得到一个相对可行的结构框架,做一些数据库设计模型,根据相关的标准做出最终的计划。系统运行流程如图4-1所示。图4-1系统运行流程图由图4-1分析所示,房屋出租系统的本系统主要分为住户、房主、管理员三个角色。管理员实现租房信息管理、房屋信息管理、合同信息管理、注册用户管理、留言板管理、基本信息管理等功能。房主实现租房信息管理、查看租房信息、基本信息管理功能。住户实现信息管理以及基本信息管理功能。4.2.2系统网络拓扑结构图本系统采用先进的B/S架构,该架构具有开发简、单共享性强、维护简单方便等诸多优点。本系统的网络拓扑图如图4-2所示:图4-2房屋出租系统的网络拓扑图4.3数据库设计4.3.1数据库的选定目前主流数据库主要有Oracle、SQLServer、Mysql、Access等。本系统运行在windows服务器上故而选择了MicrosoftSQLServer。MicrosoftSQLServer是一个关系型数据库,它的数据库引擎为关系型数据和结构化数据提供了更为安全而且可靠的存储功能。Mysql与MicrosoftVisualStudio、MicrosoftOfficeSystem以及新的开发工具包(包括BusinessIntelligenceDevelopmentStudio)紧密集成。4.3.2数据库概念模型设计数据库概念模型即房屋出租系统的实体—关系模型。房屋出租系统的整体E-R图如图4-4所示。图4-4房屋出租系统的整体E-R图具体属性如下:用户:ID、用户名、用户类别、姓名、性别、联系QQ、联系电话、联系邮箱、注册时间、审核状态。资讯:ID、标题、作者、发布时间等。房屋:ID、标题、户型、面积、装修、交通状况、配套设施、楼层、当前状态、发布时间等。合同:ID、住户、房主、申请内容、房屋、申请时间、房主回复、合同书等留言:ID、留言人、留言时间、留言内容、回复人、回复内容、回复时间等。然后根据具体的功能需求,对本系统的E-R图进行细化从而得到几种实体—关系模型,以下为部分实体—关系模型。(1)系统使用用户实体,如图4-5所示。图4-5用户实体图(2)资讯类实体图,如图4-6所示。图4-6资讯类实体图4.3.4数据库逻辑设计本系统主要用到了以下几张数据表。1、applyinfo表。表4-1applyinfo表字段名称数据类型长度是否允许空是否为主键idint11否是unamevarchar255是否tounamevarchar255是否ncontentvarchar255是否fidvarchar255是否savetimevarchar255是否recontentvarchar255是否docnamevarchar255是否statusvarchar255是否2、applyinfo表。表4-2applyinfo表字段名称数据类型长度是否允许空是否为主键idint11否是titlevarchar255是否authorvarchar255是否filenamevarchar255是否contentvarchar255是否savetimevarchar255是否3、hbnews表。表4-3hbnews表字段名称数据类型长度是否允许空是否为主键idint11否是unamevarchar255是否ptitlevarchar255是否addrsvarchar255是否hxvarchar255是否mjvarchar255是否zxvarchar255是否jtvarchar255是否ptssvarchar255是否floorvarchar255是否filenamevarchar255是否filename2varchar255是否filename3varchar255是否lxrvarchar255是否tevarchar255是否qqvarchar255是否statusvarchar255是否pricevarchar255是否savetimevarchar255是否4.4系统实现(1)数据库连接代码实现publicConnectiongetConn() { try { Stringd=newDate().toLocaleString().substring(0,9); Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/rentingsys","root","123"); } catch(Exceptione) { e.printStackTrace(); } returnconn; }(2)系统公共方法实现代码publicHashMapgetmap(Stringid,Stringtable) { List<HashMap>list=newArrayList(); try{ Statementst=conn.createStatement(); System.out.println("select*from"+table+"whereid="+id); ResultSetrs=st.executeQuery("select*from"+table+"whereid="+id); ResultSetMetaDatarsmd=rs.getMetaData(); while(rs.next()) { HashMapmap=newHashMap(); inti=rsmd.getColumnCount(); for(intj=1;j<=i;j++) { if(!rsmd.getColumnName(j).equals("ID")) { Stringstr=rs.getString(j)==null?"":rs.getString(j); if(str.equals("null"))str=""; map.put(rsmd.getColumnName(j),str); } else map.put("id",rs.getString(j)); } list.add(map); } rs.close(); st.close(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnlist.get(0); } publicStringinsert(HttpServletRequestrequest,HttpServletResponseresponse,Stringtablename,HashMapextmap,booleanalert,booleanreflush) { extmap.put("savetime",Info.getDateStr()); if(request.getParameter("f")!=null){ HashMaptypemap=newHashMap(); ArrayList<String>collist=newArrayList(); Stringsql="insertinto"+tablename+"("; Connectionconn=this.getConn(); try{ Statementst=conn.createStatement(); ResultSetrs=st.executeQuery("select*from"+tablename); ResultSetMetaDatarsmd=rs.getMetaData(); inti=rsmd.getColumnCount(); for(intj=1;j<=i;j++) { if(rsmd.getColumnName(j).equals("id"))continue; typemap.put(rsmd.getColumnName(j)+"",rsmd.getColumnTypeName(j)); collist.add(rsmd.getColumnName(j)); sql+=rsmd.getColumnName(j)+","; } sql=sql.substring(0,sql.length()-1); sql+=")values("; rs.close(); st.close(); }catch(SQLExceptione){ e.printStackTrace(); } Enumerationenumeration=request.getParameterNames(); Stringnames=","; while(enumeration.hasMoreElements()) { names+=enumeration.nextElement().toString()+","; } try{ Statementst=conn.createStatement(); for(Stringstr:collist) { if(names.indexOf(","+str+",")>-1) { String[]values=request.getParameterValues(str); Stringvalue=""; for(Stringvstr:values) { if(vstr==null)vstr=""; if(vstr.equals("null"))vstr=""; if(vstr.trim().equals(""))continue; if(request.getParameter(vstr)!=null&&!"".equals(request.getParameter(vstr))&&request.getParameter("dk-"+str+"-value")!=null) { Stringdkv=request.getParameter(vstr); Stringdknamevalue=request.getParameter("dk-"+str+"-value"); vstr+="-"+dknamevalue+":"+dkv; } value+=vstr+"~"; } if(value==null)value=""; if(value.equals("null"))value=""; if(value.length()>0)value=value.substring(0,value.length()-3); if(typemap.get(str+"").equals("int")) { sql+=(value.equals("")?-10:value)+","; }else{ sql+="'"+(value.equals("null")?"":value)+"',"; } }else{ if(typemap.get(str+"").equals("int")) { sql+=(extmap.get(str)==null?"":extmap.get(str))+","; }else{ sql+="'"+(extmap.get(str)==null?"":extmap.get(str))+"',"; } } } sql=sql.substring(0,sql.length()-1)+")"; System.out.println(sql); mOper(sql); st.close(); conn.close(); }catch(SQLExceptione){ e.printStackTrace(); } Stringstr=""; if(!reflush) str+="<!DOCTYPEhtmlPUBLIC\"-//W3C//DTDXHTML1.0Transitional//EN\"\"/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"; str+= "<scriptlanguage=javascript>\n"; if(alert){ str+="alert('操作成功');\n"; } if(reflush){ str+="parent.location=parent.location;\n"; } str+="</script>"; PrintWriterwrt=null; try{ wrt=response.getWriter(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } wrt.write(str); } return""; } publicvoiddelete(HttpServletRequestrequest,Stringtablename) { inti=0; try{ Stringdid=request.getParameter("did"); if(did==null)did=request.getParameter("scid"); if(did!=null){ if(did.length()>0){ Statementst=conn.createStatement(); st.execute("deletefrom"+tablename+"whereid="+did); st.close(); } } }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } }(3)系统登录实现代码publicListfindByExample(Sysuserinstance){ log.debug("findingSysuserinstancebyexample"); try{ Listresults=getHibernateTemplate().findByExample(instance); log.debug("findbyexamplesuccessful,resultsize:" +results.size()); returnresults; }catch(RuntimeExceptionre){ log.error("findbyexamplefailed",re); throwre; } } publicListfindByProperty(StringpropertyName,Objectvalue){ log.debug("findingSysuserinstancewithproperty:"+propertyName +",value:"+value); try{ StringqueryString="fromSysuserasmodelwheremodel." +propertyName+"=?"; returngetHibernateTemplate().find(queryString,value); }catch(RuntimeExceptionre){ log.error("findbypropertynamefailed",re); throwre; } } publicListfindAll(){ log.debug("findingallSysuserinstances"); try{ StringqueryString="fromSysuser"; returngetHibernateTemplate().find(queryString); }catch(RuntimeExceptionre){ log.error("findallfailed",re); throwre; } }(4)房屋出租信息查询实现代码publicHouseinfofindById(java.lang.Integerid){ log.debug("gettingHouseinfoinstancewithid:"+id); try{ Houseinfoinstance=(Houseinfo)getHibernateTemplate().get( "Houseinfo",id); returninstance; }catch(RuntimeExceptionre){ log.error("getfailed",re); throwre; } } publicListfindByExample(Houseinfoinstance){ log.debug("findingHouseinfoinstancebyexample"); try{ Listresults=getHibernateTemplate().findByExample(instance); log.debug("findbyexamplesuccessful,resultsize:" +results.size()); returnresults; }catch(RuntimeExceptionre){ log.error("findbyexamplefailed",re); throwre; } } publicListfindByProperty(StringpropertyName,Objectvalue){ log.debug("findingHouseinfoinstancewithproperty:"+propertyName +",value:"+value); try{ StringqueryString="fromHouseinfoasmodelwheremodel." +propertyName+"=?"; returngetHibernateTemplate().find(queryString,value); }catch(RuntimeExceptionre){ log.error("findbypropertynamefailed",re); throwre; } } publicListfindAll(){ log.debug("findingallHouseinfoinstances"); try{ StringqueryString="fromHouseinfo"; returngetHibernateTemplate().find(queryString); }catch(RuntimeExceptionre){ log.error("findallfailed",re); throwre; } }4.5界面运行效果4.5.1系统登录界面效果如图4-8所示。图4-8系统登录界面效果4.5.2房屋资讯管理界面效果如图4-8所示。图4-8房屋资讯管理界面效果4.5.3房屋信息管理效果如图4-9所示。图4-9房屋信息管理效果4.5.4合同信息管理界面效果如图4-10所示。图4-10合同信息管理界面效果4.5.5注册用户管理效果如图4-11所示。图4-11注册用户管理界面效果4.5.6留言板管理界面效果如图4-12所示。图4-12留言板管理界面效果4.5.7基本信息管理界面效果如图4-13所示。图4-13基本信息管理界面效果第五章系统测试5.1软件测试及工具5.1.1软件测试系统的测试不仅要检验系统是否实现了相应的功能,还需要检查系统的功能是否存在缺陷。在执行测试之前,根据系统的整体情况,拟定测试计划,并严格按照计划来进行测试。为更加真实的模拟实际环境,对测试用例的设计力求完美。不仅要考虑到正确的输入输出,同时也要对系统处理错误信息的能力进行检查。在性能方面,通过场景的设置,模拟真实环境下,系统对用户请求的响应情况,以此来发现系统存在的性能瓶颈,提出相应的修改意见。5.1.2软件工具软件测试工具就是通过一些工具能够使软件的一些简单问题直观的显示在读者的面前,这样能使测试人员更好的找出软件错误的所在软件测试工具也分为自动化软件测试工具和测试管理工具。软件测试工具存在的价值是为了提高测试效率,用软件来代替一些人工输入。常用的软件测试工具分为:[开源测试工具]:开源测试管理工具:Bugfree、Bugzilla、TestLink、mantis开源功能自动化测试工具:Watir、Selenium、MaxQ、WebInject开源性能自动化测试工具:Jmeter、OpenSTA、DBMonster、TPTEST、WebApplicationLoadSimulator[TestDirector]:企业级测试管理工具,也是业界第一个基于Web的测试管理系统。[QualityCenter]:基于Web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷。[QuickTestProfessional]:用于创建功能和回归测试。[LoadRunner]:预测系统行为和性能的负载测试工具。[其他工具与自动化测试框架]:RationalFunctionalTester、BorlandSilk系列工具、WinRunner、Robot等。5.2测试方法5.2.1功能测试功能测试从用户的角度出发,对系统提供的各种功能进行测试,主要是黑盒测试。它把系统看作一个黑盒子,不考虑系统内部结构以及系统的具体实现方法P[3]P。通过逐项测试,来检查系统的各个功能是否完善,输入正确的数据能否得到期望的输出结果,输入错误的信息时系统能否进行相应的处理。5.2.2性能测试性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。5.3系统配置要求CPU:酷睿双核CPU;内存:1G以上。或者CPU:AMDAthlon(tm)64X2DualCoreProcessor3800+内存:1G操作系统:MicrosoftwindowsXPProfessional版本2002ServicePack35.4测试内容登录模块测试管理员登录界面如图5-1所示,管理员需要输入正确的用户名和密码才能登录系统。不同权限的管理员可以进入系统之后,将有不同的操作。图5-1系统登录界面测试用例设计因为登录时输入的情况可能存在差异,有可能用户输入了错误的用户名和密码,或者正确的用户名和错误的密码等,所有在设计测试用例时,主要采用等价类划分和边界值测试的方法。测试用例如表5-1所示。表5-1(a)管理员登录模块测试用例表头项目名称管理员登录模块测试开发人员XXX模块名称管理员登录模块用例作者XXX参考信息需求规格说明书、设计说明书测试类型功能测试设计日期2013-12-16测试人员XXX测试方法手动测试+自动测试测试日期2013-12-16优先级1测试对象测试管理员能否正常登录前置条件正确的用户名admin和密码admin表5-2(b)管理员登录模块测试用例用例编号操作输入数据预期结果实际结果测试状态(P/F

温馨提示

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

评论

0/150

提交评论