目 录
摘 要 I
Abstract II
引 言 1
1 相关技术介绍 3
1.1 JSP介绍 3
1.2 MySQL介绍 3
1.3 B/S开发模式 3
1.4 Java介绍 4
2 系统分析 5
2.1 可行性研究 5
2.1.1技术可行性 5
2.2.2经济可行性 5
2.3.1操作可行性 5
2.2 需求分析 6
2.2.1系统用例图 6
2.2.2系统功能模块需求分析 6
2.3 系统流程 8
3 系统设计 9
3.1 系统设计目标 9
3.2 系统功能设计 9
3.3 数据库设计 9
3.3.1数据库的概念结构设计 9
3.3.2数据库的逻辑结构设计 10
4 系统实现 15
4.1开发环境 15
4.2开发规范 15
4.3数据库实现 15
4.4 整体结构设计 15
4.5 系统登陆界面实现 16
4.6 管理员登陆界面后台 17
4.7 业主登陆界面后台 19
5 系统测试 21
5.1 测试定义 21
5.2 测试目的 21
5.3 测试用例 21
5.4 压力测试 22
5.5 测试结论 22
结 论 23
致 谢 24
参考文献 25
摘 要
在如今的这个网络覆盖的社会生活中,老旧小区的物业管理都是人工来实现的,工作实施起来会非常的复杂而且不方便,管理层非常不利于管理。而现在计算机都可以轻松实现。现在随着小区的规模越来越大,物业公司需要进行管理的数据也就越来越多,所以说原本简单的信息管理系统也就已经不可以满足管理者对物业处理的需求,其中的问题主要表现在系统功能的单一,对物业公司相关业务数据信息的检索与统计操作不便等许多问题,而且在部署局域网之中的管理系统,不仅极大的增加了日常维护的成本,而且在一些有着多个小区需要管理的大型物业公司使用时,增加了工作量。
目前社会伴随着城市人口栖身的集中化越来越严重,老旧小区的人工管理模式也慢慢跟不上现在经济发达的社会,我们在这种情况下应该通过计算机网络来提供一个方便快捷的物业管理系统,来加大小区物业管理的工作效率,为业主们提供更好的便民服务。在这种情况之下,急需对小区物业管理系统进行整体改造升级,进而来提升管理者对小区物业管理的办公效率。对于小区物业管理系统来说,主要采用Java开发平台,采用MVC架构进行开发。目前主要预想实现的功能有管理员后台管理模块和业主用户后台管理模块。其中管理员后台角色分为四个,分别是主管、经理、安全管理员、收费管理员。
关键词:Java;物业管理;MySql;servlet;javaScript
Abstract
In today’s social life covered by the network, the property management of the old community is realized manually. The implementation of the work will be very complex and inconvenient, and the management is not conducive to management. Now computers can be easily implemented. Now with the growing size of the community, the property companies need more and more data to manage, so the original simple information management system has not been able to meet the needs of managers for property processing. The main problems are the single function of the system, the inconvenience of retrieval and statistical operation of relevant business data and information of the property companies and many other problems, And in the deployment of the management system in the LAN, not only greatly increased the cost of daily maintenance, but also increased the workload in some large property companies that have multiple communities to manage.
At present, with the concentration of urban population becoming more and more serious, the manual management mode of the old community is also slowly behind the current economic developed society. In this case, we should provide a convenient and fast property management system through the computer network to increase the working efficiency of the property management of the community and provide better convenience services for the owners. In this case, it is urgent to upgrade the whole property management system of the community, so as to improve the office efficiency of the property management of the community. For the community property management system, mainly using Java development platform, using MVC architecture for development. At present, the main expected functions are administrator background management module and owner user background management module. The administrator background role is divided into four parts: supervisor, manager, security administrator and charge administrator.
Keywords: Java; property management; MySQL; servlet; JavaScript
引 言
在21世纪,物业管理有了新的发展。现阶段,国内的小区物业管理系统跟不上物业公司的管理升级,这已成为最大的问题。基于业务需求,定义了住宅小区房地产管理系统的功能模型和具体实现系统,并在此基础上进行了开发,确定了功能结构图和数据流程图,之后来进行测试和开发。住宅管理体制的现代化是必不可少的住宅物业管理系统可以为管理者和业主提供更舒适、更快、更满意的住宅小区问题解答。随着社区规模的不断扩大和家庭数量的不断增加,工作量也越来越大,因此开发一个B/S模式的房地产管理系统是非常必要的。
随着我国经济的发展和城市的发展,居住区已成为人们生活的主流。住宅小区房地产管理应适应当今社会的市场需求。如今许多现代企业都追寻的是高效率的办理各种任务,还有系统化的工作,达到标准化和自动化。这样工作起来才能够方便快捷。
首先来讲我们国家目前的一个非常注重的产业,就是房地产行业, 网络传输的速度因为网络技术的飞速进步而变得越来越快。技术可行性对于整个物业管理系统的开发是关键环节,在项目需求设计阶段就应该深入的考虑到所用技术是否能够满足后期系统功能的开发。如果该技术不能满足,应该及时的调整所用技术或者对该功能的实现逻辑进行转化。
作为部分计算机应用程序具有利用计算机管理公司各种信息的优势,人工管理的优势不一致示例:快速呼叫,搜索舒适,这些效益可以显著提高工作效率,也是科学规范公司治理与世界接轨的重要前提。我预计设计出来的物业管理系统成为现在社会追便民的物管系统,让老百姓体验到计算机网络化管理下的物管系统是多么的方便,也让管理者更加方便的管理自己的小区系统。
本课题需要重点解决的问题有以下几条:
(1)小区业主可以登录到网站对小区信息进行查看;
(2)小区业主可以登录到网站进行投诉和报修;
(3)小区管理人员可以登录到网站进行对小区信息和公告的维护和修改,并高效的管理系统。
(4)小区管理人员可以登录到网站进行对小区业主的投诉和报修就行管理,给小区业主创造一个好的生活环境。
本文的大致结构是:引言,描述本系统的选题背景意义和发展趋势;
第一章是对小区物业管理系统相关技术的综述,将完成本系统所需要的每个技术进行描述,并标明每个技术的用途;第二章是对这个系统需求分析的综述,通过对本系统进行需求分析,描述各个模块功能;第三章是系统设计,表明此物管系统的设计想法和实现程序的过程;第四章是小区物管系统系统功能实现,这章对与这个系统的每个功能的实现,我都进行了详细的描述;第五章是系统测试,本系统的测试信息;及对本系统做一个总结,总结过程中遇到的问题以及感谢所有人的指导帮助。
1 相关技术介绍
1.1 JSP介绍
利用JSP技术开发的Web应用程序是基于Java的,JSP技术具有良好的跨平台功能。包括业务代码的分离和重用,Java和servlet功能还有预编译功能[1]。JSP是能够独立使用的编程语言,能够嵌入在html语言内运行,由于JSP参照了很多编程语言的特性,所以JSP在Web的脚本技术当中占有很重要的位置,对于编程行业的初学者来说,JSP这种编程语言是容易学习,并且具备许多高级的特性[2]。JSP与 Servlet是一样的,都是在服务器端口执行,一般返回给客户端的就是一个HTML文本,所以客户端只需要有浏览器就可以轻松浏览。HTML代码和嵌入其中的Java代码构成了JSP页面[3]。
在程序的开发过程中,使用JSP也不失为一种正确的选择,像收集操作以及字符串信息的处理方面等等,JSP都能很轻松地解决,帮助程序开发者省下许多时间。所以就此看来,使用JSP可以自由的选择Web服务器、操作系统和合适的数据库管理系统[5]。
1.2 MySQL介绍
网络应用程序中最重要的一种技术就是数据库[6]。添加数据、删除数据,检索数据并管理数据,这些都是所有的软件开发人员现如今都在面临的疑点。与其他别的的大型数据库例如Oracle、SQL Server等相对比,MySQL必然会有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。在目前这个阶段,它所具备的功能点已经完全可以满足一些中小企业和个体消费者的需求。MySQL对所有用户采用开放原则,所有的开发者可以根据自身的具体需求对MySQL提供的相关功能进行调整,已达到完成自己项目的目的,因此,MySQL是及其的受开发者的关注的。所以人们认为它是处理数据的最清晰选择。
1.3 B/S开发模式
现如今,B/S(浏览器/服务器)结构是主流网络结构,它能够帮助开发者一定程度上的减少不必要的操作,其核心处理点已经转移到服务器上,对于开发者来说是极其有好的。用该模式只需要安装浏览器即可。并且安装上MySQL数据库等数据库[7]。启用的浏览器与服务器数据库互动几乎所有的信息数据。许多特殊软件能够完成的事情,也可以通过B/S结构模式被应用。结合多种技术,就能够帮助程序开发者节约很多的开发成本[8]。目前B/S结构成为程序开发主流结构,它最好的地方就是没有地点限制还不用专门安装软件,笔记本或者电脑能够上网就能访问系统。系统使用B/S进行开发在后期系统维护上面就会很省事,不用什么问题都在服务器上面操作,简单的客户端处理就解决部分问题,开发出来的程序与用户交互性上面也会增强,还可以实时刷新浏览器进行程序局部的数据信息更新。
相比之下C/S一般来说是用于建立在一个用户专用的虚拟局域网络上,局域网之间再通过专门的网络服务器为每个用户同时提供网络连接和局 域网络之间数据交换两种网络服务。B/S是建立在一个广域网之上的,租用移动设备,信息自己收集和管理。
1.4 Java介绍
由SUN公司推出的Java语言是一种现今在世界上比较主流的面向对象的语言 [9]。它是可以在多种平台上运用的,兼容性比较强,适应市面上大多数操作系统,不会出现乱码的现象,其扩展性和维护性都更好,具有分析问题和解决问题的能力,是面向过程的程序设计方便编写的代码更强壮。Java相对其它语言来说,比较简单,编译起来更方便一些,安全可靠性高。不完全统计,现在全世界大约有2000多万人在使用它。Java既可以镶嵌使用又可以独立的使用[10]。Java大致可以分成两个部分,一种部分是Java负责的编译,另一种是Java负责的运行。Java和C++语言很相像,但Java在编程时是一种以对象为导向的方式来进行编译的,使得编出来的软件可以单机使用,也可以在互联网上使用,检查出错更为方便。Java分布式、体系结构中立的特点也使得其存储更快,编译更简单。面向对象包括四个特点,一是封装,就是说在定义类的时候可以实现一定的功能和属性。二是抽象,属于类的一种,可以把一个具有共同属性的类封装在一个抽象里,便于简单编议。三是继承,顾名思义就是带有前者的特性。还有一个就是多态的特点,可以多种一起运用,表现了它可扩展性好。
2 系统分析
2.1 可行性研究
2.1.1 技术可行性
这个物管系统以JSP技术和MySQL数据库管理系统紧密结合。由于JSP的开发平台使用起来非常便利,具有很强大的功能,因此,完整的开发整个项目是绝对没有任何困难的,该平台也是现阶段主要的常用开发平台。MVC开发模式的一个主要目的就是很好地实现了Web应用程序系统的主要职能和分工, MVC部署、可维护性、有利于对软件工程师人性化的开发和管理。对于我们来说,大部分基于Web的应用程序都基本上是使用像ASP,PHP,JSP这样的应用程序语言来进行创建的。他们将数据库查询的数据表示。MVC基本上来说就是强制性的将他们完全分开[11]。尽管我们构造一个MVC的应用程序系统需要一些额外的技术和工作,但是他给我们使用带来的方便和好处仍然是毋庸置疑的。本项目的Web技术已经发展的很成熟。
2.1.2 经济可行性
在二十一世纪,许多现代企业都追寻的是高效率的办公,还有系统化的工作,工作达到标准化和自动化[12]。首先来讲我们国家目前的一个非常注重的产业,房地产行业, 网络传输的速度因为网络技术的飞速进步而变得越来越快。技术可行性对于整个物业管理系统的开发是关键环节,在项目需求设计阶段就应该深入的考虑到所用技术是否能够满足后期系统功能的开发。如果该技术不能满足,应该及时的调整所用技术或者对该功能的实现逻辑进行转化。
2.1.3 操作可行性
首先本系统的运行模式在本用户组织中是可行的[13]。该系统的运作应考虑到管理人员和考生的使用需要,同时应考虑到面对常用功能和易出错功能是可以给与人性化的提示,并可获得对操作结果的反馈。本物业管理系统具备管理和互动的功能,而且操作非常简单。并且系统使用常见的登录界面,系统的开发使用的是JSP技术,这些就会让管理人员和学生不需要花费大量的时间去熟悉系统就能够掌握系统的操作方法。
在系统的开发初期就将系统的操作简单性进行了全面的设计,为了提高操作效率和使用的间接性,所有涉及到输入操作的地方都能够智能选择,整体使用十分便捷。通过以上对系统的可行性进行研究,在综合考虑各种因素后,对系统软件提出了较好的解决方案和初步方案。对于这套住宅物业管理系统,在投入使用前,工程师能够熟练开发和操作该系统,并且会对用户群体进行专业的培训。
2.2 需求分析
2.2.1 系统用例图
系统的首先我们所设计的物管系统的核心主要用户就是管理员,其中包括了六个模块,我们的管理员对所有的系统内注册成为小区业主的用户都有对其操作的管理权限,使得能随时随地了解小区收费及投诉信息的各项情况.修改密码用户管理投诉管理壹陆系统报修管理有权限的管理人员收费管理环境信息交流信息。系统用例图如图2.2.1所示。
图2.2.1系统用例图
2.2.2 系统功能模块需求分析
操作非常便捷和便民的提示信息是此物管系统最大的特点,此物业管理系统可以实现下面几个基本的功能:
(1)有高安全性,保护业主信息。系统页面干净简单,方便使用。
(2)小区管理员有着管理功能,分别是处理业主保修信息和管理信息;注册业主信息;对业主收费信息的管理;还有管理小区公告和楼宇房产。
(3)小区的业主的功能分别是对小区管理的投诉;还有对小区公告的查询;对小区管理员的报修;对所需费用的査看;还有对环境设施的查询。
管理员的功能模块介绍:
(1)业主投诉模块:这个模块是管理员对业主投诉信息的管理,有查看和处理删除投诉信息的功能;(2)业主注册模块:这个模块是管理员对业主个人信息的管理,有着注册和查询删除业主信息的功能;(3)收费管理模块:这个模块是管理员对业主收费信息的管理,有查看和添加删除业主收费信息的功能;(4)维修管理模块:这个模块业主在网上报修后,管理员去维修服务,有着查看和处理删除维修信息的功能;(5)公告模块:这个模块是管理员在网站上发布近日的小区公告,有查看和添加删除小区公告信息的功能;(6)环境设施模块:这个模块是管理员对环境设施的管理,有着查看和添加删除环境设施的功能。管理员功能模块图如图2.2.2(1)所示。
图2.2.2(1)管理员功能模块图
业主的功能模块介绍:
(1)投诉模块:这个模块是业主对小区的投诉管理,有着查看和添加删除投诉的功能。(2)维修模块:这个模块是业主对物业的报修管理,有着查看和添加删除报修的功能。(3)收费模块:这个模块里,业主可以对关于自己的收费信息进行査看。(4)查看信息模块:这个模块里,业主可以看小区近期的公告信息,比如停水信息的查看。(5)环境设施模块:这个模块业主可以查看小区的环境设施。业主功能模块图如图2.2.2(2)所示。
图2.2.2(2)业主功能模块图
2.3 系统流程
首先我们的小区业主用户在进入物管系统是必须要经过几个步骤,第一步是登录,也就是输入用户名和密码,之后服务器会对其进行确认,最后业主会安全的进入系统。此系统的主要想达到的目标就是让物业管理系统更加的自动化和系统化[15]。设置三个级别的用户,为每种类型的用户设置不同的权限:客人是只浏览信息(业主);管理员是提供系统的实际操作功能(适合物业管理人员);超级用户是拥有系统的所有权限(系统维护管理人员)。具体操作流程图如图3.3所示
图2.3系统流程图
3 系统设计
3.1 系统设计目标
对于此物管系统来说,设计系统阶段的主要任务就是设计系统的总体结构,也就是系统总体功能的实现,可以提升物管系统的每一项功能点。这个任务阶段是非常重要的,因为它将整个物业管理系统正确的划分了几个功能模块,并且合理的处理了前台和后台模块的关系,确立了各个模块的内部结构。
3.2 系统功能设计
在整个小区物业管理系统的功能设计过程,必须要完成基础的模块功能,进而组合成最终的功能。对于每一个小的目标而言,必须先了解一些相关的需求分析的信息[16]。系统的所有设计应该采用第一阶段设计,第一阶段优化设计,第一阶段最终设计这三个过程。当需要添加新的需求是则进行第二阶段的设计。这个系统是为了让小区管理者的小区业主进行网络化的管理,这样既可以提高管理者的工作效率,也可以让业主更加方便。对于该系统而言,系统功能结构图如图3.2所示。
图3.2系统架构图
3.3 数据库设计
3.3.1 数据库的概念结构设计
建设一个数据库模型是对现实世界的客观存在物体进行抽象的行为,对其相关属性进行具体的描述。因此,概念模型是进行数据库设计的重要工具[17]。实体关系图是在概念模式的设计中最常见的设计方法。根据系统的功能模块划分,具体分析了本系统中主要的实体,本系统的E-R模型图如图3.3.1所示。
图3.3.1 E-R模型图
3.3.2 数据库的逻辑结构设计
数据库概念模型在所有特殊规定的数据库管理系统中都是独立的,所以说我们转换时要依据数据库管理系统的特点[18]。也就是变为根据我们说学专业处理的逻辑模型,通过E-R模型,建立了以下数据库表的结构,下面详细说明一下每个数据表。包括了住户表、小区公告表、小区建筑表、小区收费表、小区收费表、管理员信息表、小区维修表、小区房产表和小区环境设施表。
住户表(residents)主要记录业主信息。包括姓名、电话、邮箱、身份证号、联系地址等,该表以自增长字段res_id作为主键,使每条记录具有唯一性。具体字段如表3.1所示。
表3.1住户表(residents)
字段名 类型 约束 描述
res_id int(11) KEY 编号
room_id int(11) NOT NULL 房间号
res_name varchar(20) NOT NULL 姓名
res_phone varchar(20) NOT NULL 电话
res_email varchar(20) NOT NULL 邮箱
res_units varchar(20) NOT NULL 工作单位
res_id_card varchar(20) NOT NULL 身份证号
res_address varchar(20) NOT NULL 联系地址
res_user_id varchar(20) NOT NULL 用户名
res_user_password varchar(20) NOT NULL 密码
res_note varchar(20) NOT NULL 备注
小区公告表(announcement)主要记录小区公告信息。包括公告名称、公告起始时间、公共内容、发布人等,该表以自增长字段ann_id作为主键,使每条记录具有唯一性。具体字段如表3.2所示。
表3.2小区公告表(announcement)
字段名 类型 约束 描述
ann_id int(11) KEY 编号
ann_name varchar(20) NOT NULL 公告名称
ann_begin_date varchar(20) NOT NULL 公告开始时间
ann_end_date varchar(20) NOT NULL 公告结束时间
ann_content varchar(20) NOT NULL 公共内容
ann_release varchar(20) NOT NULL 发布人
小区建筑表(building)主要记录小区内建筑信息。包括建筑类型、建筑名称、建筑高度等,该表以自增长字段bui_id作为主键,使每条记录具有唯一性。具体字段如表3.3所示。
表3.3小区建筑表(building)
字段名 类型 约束 描述
bui_id int(11) KEY 编号
bui_type_name varchar(20) NOT NULL 建筑类型
bui_name varchar(20) NOT NULL 建筑名称
bui_layer int(11) NOT NULL 建筑层数
bui_area varchar(20) NOT NULL 建筑占地
bui_date varchar(20) NOT NULL 建成时间
小区收费表(charge)主要记录小区内收费信息。包括收费名称、业主余额、业主编号、收费类别、收费内容、收费价格、收费日期、发布人等,该表以自增长字段cha_id作为主键,使每条记录具有唯一性。具体字段如表3.4所示。
表3.4小区收费表(charge)
字段名 类型 约束 描述
cha_id int(11) KEY 编号
bui_name varchar(20) NOT NULL 收费名称
room_number varchar(20) NOT NULL 房间号码
res_id int(11) NOT NULL 业主编号
cha_type_name varchar(20) NOT NULL 收费类别
cha_type_standard varchar(20) NOT NULL 收费内容
cha_number int(11) NOT NULL 收费数
cha_price varchar(20) NOT NULL 收费价格
cha_begin_date varchar(20) NOT NULL 收费日期
cha_balance varchar(20) NOT NULL 业主余额
cha_head varchar(20) NOT NULL 发布人
小区投诉表(charge)主要记录小区业主投诉信息。包括业主编号、投诉日期、投诉内容、备注信息、被投诉人等,该表以自增长字段comp_id作为主键,使每条记录具有唯一性。具体字段如表3.5所示。
表3.5小区投诉表(charge)
字段名 类型 约束 描述
comp_id int(11) KEY 编号
res_id int(11) NOT NULL 业主编号
comp_date varchar(20) NOT NULL 投诉日期
comp_title varchar(20) NOT NULL 投诉内容
comp_content varchar(200) NOT NULL 备注信息
comp_people varchar(20) NOT NULL 被投诉人
管理员信息表(property_management)主要记录管理人员的信息。包括管理员编号、管理者姓名和性别、管理者的类别、管理员电话、管理员备用电话、管理者的工作内容、管理的身份证号、管理员的籍贯、管理员账号、管理员密码等,该表以自增长字段pm_id作为主键,使每条记录具有唯一性。具体字段如表3.6所示。
表3.6管理员信息表(property_management)
字段名 类型 约束 描述
pm_id int(11) KEY 编号
pm_number _id int(11) NOT NULL 管理员编号
pm_name varchar(20) NOT NULL 管理员姓名
pm_gender varchar(20) NOT NULL 管理员性别
pm_position varchar(200) NOT NULL 管理员类别
pm_work varchar(20) NOT NULL 管理员工作内容
pm_card_id varchar(20) NOT NULL 管理员身份证号
pm_address varchar(20) NOT NULL 管理员籍贯
pm_phone varchar(20) NOT NULL 管理员电话
pm_mobile_phone varchar(20) NOT NULL 管理员备用电话
pm_userid varchar(20) NOT NULL 管理员账号
pm_password varchar(20) NOT NULL 管理员密码
小区维修表(repair)主要记录小区业主维修信息。包括楼宇名称、房间号、报修业主、报修时间、报修内容、维修状态等,该表以自增长字段rep_id作为主键,使每条记录具有唯一性。具体字段如表3.7所示。
表3.7小区维修表(repair)
字段名 类型 约束 描述
rep_id int(11) KEY 编号
bui_name varchar(20) NOT NULL 楼宇名称
ins_name varchar(20) NOT NULL 单元名称
room_number varchar(20) NOT NULL 房间号
state_name varchar(20) NOT NULL 维修状态
res_id int(11) NOT NULL 报修业主
rep_date varchar(20) NOT NULL 报修时间
rep_title varchar(20) NOT NULL 报修内容
小区房产表(charge)主要记录小区内房产信息。包括房产编号、楼宇编号、房产级别、房产类别、业主编号、房产朝向、房产规格、房产编号、房产层数、建筑面积、使用面积等,该表以自增长字段room_id作为主键,使每条记录具有唯一性。具体字段如表3.8所示。
表3.8小区房产表(charge)
字段名 类型 约束 描述
room_id int(11) KEY 编号
ins_id int(11) NOT NULL 楼宇编号
表3.8续表
dec_name varchar(20) NOT NULL 房产级别
fun_name varchar(20) NOT NULL 房产类别
res_id int(11) NOT NULL 业主编号
tow_name varchar(20) NOT NULL 房产朝向
room_type_name varchar(20) NOT NULL 房产规格
room_number varchar(20) NOT NULL 房产编号
room_layer int(11) NOT NULL 房产层数
room_construction_area varchar(20) NOT NULL 建筑面积
room_using_area varchar(20) NOT NULL 使用面积
小区环境设施表(facilities)主要记录小区内环境设施信息。包括设施类别、设施名称、设施负责人环境设施详细说明等,该表以自增长字段fac_id作为主键,使每条记录具有唯一性。具体字段如表3.9所示。
表3.9小区环境设施表(facilities)
字段名 类型 约束 描述
fac_id int(11) KEY 编号
fac_type_id int(11) NOT NULL 设施类别
fac_name varchar(20) NOT NULL 设施名称
fac_head varchar(20) NOT NULL 设施负责人
fac_contact varchar(20) NOT NULL 设施联系人
fac_phone varchar(20) NOT NULL 联系人电话
fac_instructions varchar(200) NOT NULL 环境设施详细说明
以上就是对系统的设计方案全面且细致的阐述。第一步介绍了该小区物业管理系统的管理员核心功能模块和普通用户的核心功能模块,然后分别展示了系统管理员以及用户的功能,最后展示了本系统数据库的设计。
4 系统实现
4.1开发环境
此物管系统以Windows 10操作系统为开发环境,8GB的显示内存和16GB的内存,开发工具是MyEclipse10;足以满足基于Java的物管系统的开发需求。数据库使用MySQL5.7版本的数据库来存储数据,电脑性能为Intel®i7处理器,足以满足开发需求。
4.2开发规范
本系统完全按照Java的命名规范来进行命名,在类或接口中的方法名一般小写字母开头,以驼峰命名法来进行命名。规范的命名和注释可以增加代码的可读性,方便开发人员找到对应的方法[19]。
4.3数据库实现
根据实体关系,设计包括住户表、小区公告表、建筑表、收费表、投诉表、管理员信息表、维修表、房产表等22张表,如图4.3所示。
图4.3系统数据库界面
4.4 整体结构设计
首先,它可以输入小区业主的基本数据,在运行中可以完成添加、修改、删除、查询、设置新用户、更改密码等操作。可以达到住户和管理人员日常业务的要求。这个物管系统主要有住户的基本信息;住户的报修和投诉,管理员对住户的保修和投诉进行查看和管理;住户对小区费用的管理。最后结合系统内其他的功能点,总结归纳出本系统预期要达到的整体功能结构如图4.4所示。
图4.4结构功能图
4.5 系统登陆界面实现
通过分析,进行了建模,数据库的后台工作已经完成。下面是网页登陆界面。智远物业管理系统分为下面三个部分:用户登录;系统主平台;通过主平台调用的功能模块。登陆运行效果如图5.5所示。
图4.5 登陆页面
在登陆的页面首先输入用户名和密码,之后点击登陆按钮,跳转到登陆的界面中,该系统服务会判断用户名,密码和验证码是否正确,验证通过后即可进入对应的页面,关键代码如下:
public class ResidentsServiceImpl implements ResidentsService {
ResidentsDao dao=new ResidentsDaoImpl();
public ArrayList showResidentsInfo(Residents res) {
return dao.QueryInfo(res);
}
//业主登录
public Residents Residentslogin(Residents residents) {
return dao.Residentslogin(residents);
}
//管理员登录
public int changeUserPassword(Residents residents) {
return dao.updateUserPassword(residents);
}
//查询用户是否存在
4.6 管理员登陆界面后台
通过JavaScript编程实现后台的编程,下拉框都是通过在后台管理的数据库表中获取到的,然后通过JSON来在前台展现[20]。在物管系统的主页面上可以看到左方的页面上展示了六个功能模块,这六个功能模块是管理员可以操作的,进入相对应的管理页面可以链接进入子菜单,并且蓝条显示,所有管理模块都有和其对应的子菜单。程序运行效果图如图4.6.1所示。
图4.6.1管理员运行效果图
其中包括了六个功能模块,分别是小区管理,楼盘管理,物业管理,收费管理,用户管理还有系统管理。其中小区公共设施的管理程序运行效果图如图4.6.2所示:
图4.6.2添加编辑公共设备运行效果图
在管理员登陆后可对其进行添加和编辑[21]。主要代码如下:
public ArrayList queryfacilities_typeandadmain() throws Exception {
conn = MysqlDBUtil.getConnection();
String sql = “select * from facilities_type”;
rs = MysqlDBUtil.executQuery(conn, sql, null);
ArrayList arrayList = new ArrayList();
while (rs.next()) {
String str = rs.getInt(“fac_type_id”) + “-” + rs.getString(“fac_type_value”);
arrayList.add(str);
}
rs = null;
arrayList.add(“&”);
String sql2 = “select distinct(pm_name),pm_id from property_management”;
rs = MysqlDBUtil.executQuery(conn, sql2, null);
while (rs.next()) {
String str2 = rs.getInt(“pm_id”) + “-” + rs.getString(“pm_name”);
arrayList.add(str2);
}
MysqlDBUtil.closeAll(conn, pm, rs);
return arrayList;
}
物业管理系统中包括对住户投诉的管理和对住户报修的管理。程序运行效果图如图4.6.3所示:
图4.6.3业主的投诉和报修效果图
在管理员登陆后可对其进行审核。主要代码如下:
public ArrayList bui_ins_layer(String bui_id) throws Exception {
ArrayList arrayList = new ArrayList();
conn = MysqlDBUtil.getConnection();
String sql = “select ins_id,ins_name from instructions where bui_id = ?”;
strings = new String[] { bui_id };
rs = MysqlDBUtil.executQuery(conn, sql, strings);
while (rs.next())
arrayList.add(rs.getInt(“ins_id”) + “-” + rs.getString(“ins_name”));
rs = null;
strings = null;
arrayList.add(“&”);
String sql1 = “select bui_layer from building where bui_id = ?”;
strings = new String[] { bui_id };
rs = MysqlDBUtil.executQuery(conn, sql1, strings);
while (rs.next())
arrayList.add(rs.getInt(“bui_layer”) + “”);
MysqlDBUtil.closeAll(conn, pm, rs);
return arrayList;
}
4.7 业主登陆界面后台
通过JavaScript编程实现后台的编程,下拉框都是通过在后台管理的数据库表中获取到的,然后通过JSON来在前台展现[22]。业主登陆到界面后可以看到小区的详细信息;还有小区的公告和小区的管理员;并且业主可以进行投诉和报修;查看自己的物业费用与其他费用;查看自己的详细信息并修改密码。程序运行效果图如图4.7.1所示:
图4.7.1业主运行效果图
在业主登陆后可对其操作。主要代码如下:
conn = DBHelper.getconnection();
try {
psta = conn.prepareStatement(sql);
psta.setInt(1, res.getRes_id());
rs = psta.executeQuery();
while (rs.next()) {
Residents re = new Residents();
re.setRes_address(rs.getString(“res_address”));
re.setRes_email(rs.getString(“res_email”));
re.setRes_house_card_number(rs
.getString(“res_house_card_number”));
re.setRes_id(rs.getInt(“res_id”));
re.setRes_id_card(rs.getString(“res_id_card”));
re.setRes_name(rs.getString(“res_name”));
re.setRes_note(rs.getString(“res_note”));
re.setRes_phone(rs.getString(“res_phone”));
re.setRes_user_id(rs.getString(“res_user_id”));
re.setRes_user_password(rs.getString(“res_user_password”));
arr.add(re);
}
物业在登陆后可以对管理员的投诉和跟物业报修,如图4.7.2所示:
图4.7.1业主运行效果图
5 系统测试
5.1 测试定义
有制度的测试可以规避以后错误的发生,为了减少错误的存在,优化系统功能,本章进行必要的测试[24]。测试不仅是系统开发的开始,而且应该贯穿整个系统的整个生命周期。评估系统质量的方法不局限于系统编码和过程,应该与软件设计工作和历史需求分析密切相关。系统错误,不一定是代码错误,可能是阶段的设计摘要和设计细节存在问题,问题也可能出现在需求分析阶段。从实际情况来看,最初的问题很可能是一个小错误,根据按钮的原理,按钮后的按钮位错将是所有位错。该系统的原因也同样适用,随着后续的开发工作,误差将越来越严重。
5.2 测试目的
软件测试,小区管理员登记业主,登陆测试软件的使用;业主登陆之后可以正常查看信息,修改个人资料,提交关于小区的信息,进行缴费等操作。业主可以正常查看小区公告,可以对小区的管理员进行投诉,可以提交报修。测试的目的可以概括为以下几点:首先,用户界面和客户需求是一致的,设置界面和设计风格统一;第二,创新设计接口规范设计标准,具有独特的审美特征;最后,在软件运行中不出现错误。
5.3 测试用例
此物业管理系统的主要模块分为:登陆模块、管理员界面模块、用户界面模块、修改密码模块、安全退出模块。本系统针对各模块功能中的主要操作进行了用例测试。测试结果如图表5.3所示。
表5.3系统用例测试结果表
用例编号 用例分类 用例目的 预期结果 测试结果
Case1 登陆模块 用户登陆 跳转页面 结果相同
Case2 登陆模块 管理员登陆 跳转页面 结果相同
Case3 登陆模块 验证码测试 正确显示 结果相同
Case4 管理员界面模块 添加与编辑设施 正确显示 结果相同
Case5 管理员界面模块 添加与编辑公告 正确显示 结果相同
Case6 管理员界面模块 添加与管理小区楼宇 正确显示 结果相同
Case7 管理员界面模块 添加与查询房产信息 正确显示 结果相同
Case8 管理员界面模块 管理住户投诉 正确显示 结果相同
Case9 管理员界面模块 管理住户报修 正确显示 结果相同
表5.3续表
Case10 管理员界面模块 添加与编辑收费类型 正确显示 结果相同
Case11 管理员界面模块 添加与编辑收费费用 正确显示 结果相同
Case12 管理员界面模块 添加与编辑住户信息 正确显示 结果相同
Case13 管理员界面模块 添加与编辑管理员信息 正确显示 结果相同
Case14 用户界面模块 查看小区信息与公告 正确显示 结果相同
Case15 用户界面模块 查看小区管理员 正确显示 结果相同
Case16 用户界面模块 投诉与报修 正确显示 结果相同
Case17 用户界面模块 查看物业费等其余费用 正确显示 结果相同
Case18 修改密码模块 业主与管理员修改密码 正确显示 结果相同
Case19 安全退出模块 安全退出系统 正确显示 结果相同
5.4 压力测试
打开Jmeter软件,首先进行Web服务器配置,之后启动测试,对15个接口每个测试100次,测试完成后,打开测试结果,可以看到共发送1500次HTTP请求,平均响应时间7500ms,最快响应速度581ms,最慢反应速度31907ms,异常发生率0%,数据吞吐量22.2sec。结果如图5.4所示。
图5.4测试信息汇总图
5.5 测试结论
通过测试,基本功能都可以正常操作,业主可以通过小区管理员来进行添加;所有的信息都可以登记在案,登记过后的业主都可以通过前台进行登陆。登陆之后的业主可以正常查看功能信息,自行提交报修的业务,也可投诉小区物业管理员,但是需要写清楚原因。还可以通过自己的后台页面进行缴费等操作,大大的提高业主和物业之间的关系[26]。测试时用到了接口测试软件对后端接口进行测试并使用浏览器对前端进行了测试,以保证用户的用户体验能足够好。通过对基于Java的物管系统的所有的功能和界面的测试确保了本系统符合需求和规范。经过对基于Java的物管系统的界面和各项功能的一系列测试,得出该项目基本可以满足用户需求。
结 论
成功地完成了本次开发的基于Java的物管系统设计与实现。在这次自己独立完成毕业设计的期间体会到了很多的东西,另外想说的就是独立开发软件真的很能让人在开发期间得到锻炼,开发过程中从需求分析开始到最后的项目测试为止,每一步都要小心翼翼的完成,一步一步来,不然任何环节出现了差错,返工起来也很麻烦。希望以后能在原有制度的基础上,对社区的性质做进一步的研究,增加新的功能。最后,开发一套完善的物业管理信息系统。 在该系统的开发过程中,在固定资产管理需求模式下,加入了一些更加人性化的理念思想和新创意。开发系统过程中,遇到了很多的难题,比如基于Java的物管系统需要具有什么样的功能,这个还是思考了很久,后来同学提示了一下,参考别人做好的系统,看看人家设计了什么功能,多多参考下,后来这个问题就很好解决了。最难的就是系统编码了,本人本来就比较粗心,编码出现很多不该出现的错误,不该打空格也不小心键盘空格键多敲了两下,结果程序运行经常出错,找了好久都没有解决,后来无奈找到同学帮忙看看,慢慢检查终于找到问题了,编码过程真的很费脑筋,还好最后完成了功能要求。系统整体界面虽然不是很好看,但起码不花哨,用户使用起来整体感觉就是简洁,功能体验虽然有点啰嗦,但是需要的功能都已经具备了。
本人目前还是学生,所以说开发程序肯定是不会考虑周全,程序完成开发后也经过了一系列测试,整体来说还是没有发现明显的操作逻辑错误,本人在毕业设计制作过程中不仅知识有所增加,独立学习的能力也有所提高了,更重要的就是遇到问题向周边同学寻求帮助,这个是很有必要的。希望之后在原有功能的基础上,对物管系统进一步的研究,增加更加便民的功能。最后,开发出一套完美的物业管理系统。
致 谢
本次设计历时三个月。在本次毕业设计中,能够基本顺利的完成任务,首先,我要感谢我的导师,顺利的完成任务是与李朋老师和王凤伟老师的耐心指导分不开的。两位老师无论是在毕业设计过程中,还是在论文完成中都给予了我极大的帮助。同时,两位老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅。他勤奋严谨的教学态度也给我留下了极为深刻的印象。我从老师身上学到了很多东西。在理论上还是在实践中,我能力都得到不少的提高,这对于我以后的工作和学习都有一种巨大的帮助,在此,特向李朋老师和王凤伟老师表示由衷的感谢。两位老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样,起到了指明灯的作用。
同时也要感谢我大学中的每一位任课老师,是他们的教会我专业领域的知识,让我拥有学习到知识的同时也从他们身上学到了专注仔细和认真负责的美好品质。老师们辛苦教导我们四年,真的是很感谢一直默默付出的他们。其次我要感谢同组同学对我的帮助和指点,没有他们的帮助和鼓励,这次毕业设计就不会如此的顺利进行。最后,我要感谢我的父母和家人,是他们的鼓励与支持让我能在大学四年快乐的学习,让我不断的克服困难,让我不断的完善自己,我会在他们的陪伴下变得更加优秀的。
参考文献
[1] 谢宋和, 甘勇. 单片机模糊控制系统设计与应用实例[M]. 北京: 电子工业出版社, 1999.5:20-25.
[2] 潘新民, 王燕芳. 微型计算机控制技术[M], 第2版. 北京: 电子工业出版社, 2003.4:305-350.
[3] 范立南, 谢子殿. 单片机原理及应用教程[M]. 北京: 北京大学出版社, 2006.1:123-130.
[4] Newman W M, Sbroull R F. Principles of Interactive Computer Graphics[M]. New York: McGraw Hill, 1979.10:10-25.
[5]卜小明, 龙全求. 一种薄板弯曲问题的四边形位移单元[J]. 力学学报, 1991,23(1) :53-60.
[6] Mastri A R. Neuropathy of diabetic neurogenic bladder[J]. Ann Intern Med, 1980, 92(2) :316-318.
[7] 范立南, 韩晓微, 王忠石等. 基于多结构元的噪声污染灰度图像边缘检测研究[J]. 武汉大学学报(工学版), 2003,49(3) :45-49.
[8] 吴建,张旭东.JSP网络开发入门与实践[M].人民邮电出版社,2006.
[9] 杨选辉.信息系统分析与设计[M].北京:清华大学出版社,2008.
[10] 朱蓉. 基于模糊理论的查询技术研究[J].计算机应用研究,2003年05期.
[11] 张启锋. 准确查询与模糊查询的设计方法[J]. 计算机应用研究, 1988年04期.
[12] 许龙飞. 模糊信息查询技术研究[J]. 暨南大学学报,1994年01期.
[13] 胡皓,罗景青.基于模糊理论的查询技术研究[A]. 2006 通讯与信息技术会议论文集(下)[C], 2006.
[14] Vivek Chopra.Professional Apache Tomcat 5[M].Wrox,2004
[15] Erich Gamma and Kent Beck.Contributing to Eclipse:Principles,Pattens,and Plugins [M]. Addison-Wesley Press,2003.
[16] 孙卫琴. 基于MVC的JavaWeb设计与开发. 北京: 电子工业出版社2004.
[17] 王雨竹. MySQL入门经典. 北京:机械工业出版社2013
[18] Maydene Fisher, Jon Ellis, Jonathan Bruce著. JDBC API Tutorial and Reference, Third Edition. 11 June, 2003.
[19] 邓子云. JSP网络编程从基础到实践[M]. 北京:电子工业出版社, 2009.
[20] Todd Cook. JSP从入门到精通[W]. 北京:电子工业出版社, 2003.
[21] Mourad Badri,Linda Badri,Oussama Hachemane,Alexandre Ouellet. Measuring the effect of clone refactoring on the size of unit test cases in object-oriented software: an empirical study[J]. Innovations in Systems and Software Engineering, 2019, 15(2) .
[22] 李建中,王珊.“数据库系统原理(第2版)”电子工业出版社.2004.9.
[23] 王雨竹. MySQL入门经典. 北京:机械工业出版社2013.
[24] 陈Maydene Fisher, Jon Ellis, Jonathan Bruce著. JDBC API Tutorial and Reference, Third Edition. 11 June, 2003.
[25] 邓子云. JSP网络编程从基础到实践[M]. 北京:电子工业出版社, 2009.
[26] Todd Cook. JSP从入门到精通[W]. 北京:电子工业出版社, 2013.