摘要:随着信息化的到来,计算机技术在人们的生活和工作当中起到了越来越重要的作用,通过信息化的技术来建设流浪动物管理系统,提升动物信息交互的效率,具有重要的意义。本文首先从系统的功能需求和非功能需求两个方面对系统进行分析,然后对系统架构、系统功能模块以及系统的数据库进行设计,然后通过设计文档对系统进行编码实现,通过动物信息交互网的构建,为热爱动物的人士提供了信息交流的平台。
关键词:动物信息交互;网站建设;流浪动物领养
1 引言
在现在猫狗等小动物自被驯化以来,作为人类的伙伴,他们也有自己的理智与情感,我们应该给予充分的尊重和关怀。但是随着人们的娱乐生活呈多样化发展,猫狗等小动物数量日益增多、部分人们的嫌弃和遗弃,流浪动物的数量也在逐年攀升。这就需要社会机构或者热心人士关怀和救助这些流浪动物。在社会网络化的背景下,推进人与动物和谐共处符合时代特点。而我们开发一个自愿救助流浪动物网站能够为一些机构和爱心人士提供平台,让小宠物们能更好的找到主人使它们也更容易的生存下去。同时,也可以为一些不愿意继续养宠物的主人提供转让服务。提高人们的动物保护意识,动物也是大自然的一员人们应该保护它们,倡导爱护动物的社会风气,促进人与动物更和谐的相处。在我国,由于遗弃动物、妨害动物福利等行为缺乏相应的法律约束,救助组织之间也缺少有效合作与协调,加之管理不善等原因,流浪动物问题一直未能得到有效的控制和解决。本课题的研究符合时代现状,将为营造一个人与自然动物生命体和谐共处的良好社会环境走出一小步
随着计算机技术的发展,深刻地改变了人们的工作和生活。在现代社会中,各个行业几乎都有计算机软件的应用,比如教育,工业,农业,银行,航空,政府部门,居家生活等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。因此开发一个在线的宠物救助领养系统就成了当务之急。
我国流浪动物主要是指散步于各大公园、社区以及城乡结合部等人口较少地区的无主犬和猫。有报道称北京流浪动物数量已经超过百万,其余各大城市均存在数量不等的流浪动物,但是数量难以估计。数量众多的流浪动物不仅影响城市的面貌,而且危及人们的日常生活。在我国,狂犬病的发病率和致死率多年来居各类传染病之首,流浪动物对病原体的传播已经构成对广大居民生命和健康的威胁,也进一步提升了人们对卫生安全隐患新的担忧。
目前我国设计动物保护的法律虽有野生动物保护法、畜牧法等法律以及北京、上海等地方制定的养犬管理条例等法规,但由于没有专门的反虐待动物法律法规,致使虐待、遗弃犬猫等行为并无实质法律约束,这是流浪动物产生的主要根源。监管部门不明确,宠物市场管理混乱,目前我国只有部分经济较为发达地区有政府设立流浪动物收容机构,尚有部分省市的收容机构由民间的动物爱好者和爱心人士出资建立,大部分地区没有收容机构。而现有的机构之间缺乏有效协作,大都面临场地有限、资金匮乏的尴尬处境。
我国台湾地区1988年颁布了《动物保护法》,国外流浪动物管理措施,英国是对动物保护立法较早的国家,1822年便出台了世界上第一部与动物福利有关的法律“马丁法案”。目前,英国实施的是1911年颁布的《动物保护法》,之后也陆续出台了很多专项法律,在保证动物不受虐待方面有非常细致的规定。英国“反虐待动物协会(PSPCA)”也是最早成立的动物福利组织。此外,美国、意大利、日本、新加坡等100多个国家和地区均出台有关动物保护法和相应的管理条例和法规。
上个世纪末期,网络技术逐渐开始流行起来,互联网发展进入了起步阶段。到了新世纪初期,信息化技术开始逐渐发展,计算机应用技术逐渐体现出优势来。接着,大量的电脑进入了千家万户,更是诞生了大量的管理平台。信息化时代逐渐来临,互联网成为时代下媒体关注的核心内容。我国公民的动物保护意识不断增强,尊重保障动物福利的观念和主张被越来越多的人接受,动物保护统一立法呼声日益高涨。参照国外立法实践,结合我国国情,为流浪动物开发一个在线的救助领养平台是重中之重。根据我国当前地区发展不平衡的现状,以及传统的流浪动物治理模式以政府部门限制、捕杀为主,民间公益组织、流浪动物收容所救助为辅,关注流浪动物的普通群众参与感若弱。我们可以建立流浪动物管理系统进行云救助,将公益组织、流浪动物收容所、流浪动物关爱人士、商业组织以及普通群众等整合在一起,充分满足了普通群众参与流浪动物救助的需求,极大地调动了普通群众参与的积极性,依法划分各相关部门的职责,形成“分工明确、有效写作、群众参与”的管理模式,逐步完善宠物管理市场,以减少宠物的过度消耗,减缓品种培育速度,降低资源的消耗。既可以为没有收容机构的大部分地区提供了一个方向同时也可以统一整合经济较为发达的部分地区以及宠物饲养量较大的地区的收容机构。流浪动物管理系统还可以利用各种媒体,通过多种形式,多方位,多层次广泛宣传,努力提升群众的动物宠物相关科学知识和法律知识的水平,增强动物保护意识,提高广大民众遵守法律法规的自觉性,倡导社会文明与爱心,真正的把动物作为人类的朋友善待,在全社会营造保护动物的良好氛围。
系统主要是基于JAVA开发和设计的,主要通过JSP技术实现与SQL数据库的即时交互,JSP技术有很多优点,标签的可扩充,可移植性,易用性都比较强,同时利用MYSQL的数据独立性、安全性等特点,在软件项目中对数据进行操作,可以保证数据准确无误,降低开发软件的时间。MYSQL还支持多线程,能方便的对资源系统充分利用,更有效的提高了速度。通过对CSS样式的利用使得页面非常美观,具有很好的用户体验。程序主要由HTML、CSS样式文件、Java程序和部分JavaScript脚本组成,系统基于了SSM框架,本系统力求结合实际找出一种切实可行的开发方案,经过反复研究和学习,借助Java编程语言、MySQL数据库和Tomcat服务器来完成系统的所有功能,最后进行系统测试,来检测系统的权限和漏洞,从而将系统完善,达到符合标准。
调查积累:从相关的书籍期刊中,收集材料,经过鉴别和归纳,加以整理。对与之相关的各种情况现状进行实地调查,从中收集有价值的第一手数据。
分析综合:参照网上公布出来的流浪动物实际情况,根据已经查阅整理出的资料进行分析研究,并对研究结果进行综合整理,做出总结。
1.4 研究内容
(1)采用B/S模式进行开发,其优点是后台与前台处理层次分明,而且符合众多已经习惯网页方式的用户。
(2)采用面向对象的开发与设计理念。运用面向对象技术的前提是对整体系统的高度和准确抽象,通过它可以保证系统良好的框架,进而带来产品较强的稳定性和运行效率。
(3)采用模块化设计。模块化设计要求将整个系统划分成基于小的模块,有利于代码的重载,简化设计和实现过程。
(4)简单方便的系统界面。设计简单友好的系统界面,方便用户较快的适应系统的操作。
(5)速度优先原则。由于此工具最重要的评测标准就是速度,因此在设计过程中,具体过程尽量做到资源占用少,速度快。
(6)设计既要突出重点,又要细致周到。要符合设计需求,在有可能改进的地方进行扩充,使系统更适应用户的需要。
2 系统开发技术
2.1 SSH框架技术
SSH框架主要是通过Struts+Spring+Hibernate框架共同整合的一个符合框架。解决了开发代码麻烦的弊端。并且他的分层结构十分的清晰,开发者能够很好的理清每个层次之间的关系。在编写一些解析代码的时候也可以快速的找到代码的所在位置。其中Spring框架主要的作用是解决了代码开发复杂的问题。Struts框架主要起到了分离的作用。结合了每个分离的结构。通过配置文件将这些代码联合在一起。可以通过SpingMvc的配置文件设置连接数据库的信息。最后是Hibernate框架他的作用是直接和数据库对接。执行一些数据库相关的sql语句。将数据库表和系统开发的实体形成映射。完成数据的插入和查询的功能。
2.2 MVC模式
MVC模式是web项目常用的模式:
(1)MVC模式使得系统的开发具备了模块化的思想,降低了系统的耦合性,各个功能模块之间相互独立,互不影响,开发者只需要专注系统本身的业务逻辑即可。
(2)在软件开发过程中,开发者往往会使用到同一个模型的情况,通过MVC模式可以降低程序开发的工作量,还可以提升代码的复用率。
(3)使用MVC模式开发系统,代码结构清晰,降低了开发者的开发难度节约了开发成本。
2.3 MySQL数据库
MYSQL翻译为中文是数据库管理系统,MySQL数据库可以支持上千万数据存储和查询。对数据流程进行详细的分析,便于对数据数据库表结构的设计。能够确保软件系统能够较好运行在不同的系统之上。为方便实现对数据的不同访问,我们在对数据进行存储时,一般根据数据之间的关系按照一定格式将其存储在外部设备中。数据就是实现对不同数据的管理。数据库具有很强的数据存储和管理能力,很容易实现数据的增删改查等相关功能。目前运行速度最快SQL语言数据库的代表之一。完全免费吸引大量公司借助网络下载MySQL数据库,大大降低总体拥有成本。
一套基于Vue的一个UI框架,Element组件适用于Vue2.0,Vue3.0。
设计原则遵循一致性,易用性,效率性,可控性。事实上从桌面网页到手机小程序,组件库囊括布局、表单、表格、通知、导航、标签、弹出框等控件,满足用户应用场景多样化需求。
它完全支持主题偏好设置,凡是全局组件和配置视图版式布局,选用默认主题器实时编辑预览样式网页,同时,它还可以基于新的自定义样式生成一个完整的样式包,以便直接下载。
所有的国际化方案都会用到语言包,Element-UI未引入vue-i18n,不过它是可以很好地与vue-i18n兼容的。
详细文档指南可以让初学者快速上手,安装Element UI,借助Vue脚手架创建项。在Vue脚手架项目中安装Element UI。
友好的文档和演示,提到安装两种模式(NPM和CDN)完全引入和局部引入,成本低利于维护,同时广泛支持各类语言包。
前端对于工程化的要求越来越高,为了保证大家代码风格的一致性,通过统一的规则进行代码的编写和注释的编写,借助了webpack并配置了Hot Reload,利用模块化开发的思想构建,部署公共模块的组件依赖,持续集成。
原生API和函数库以及框架三者之间的区别。原生API,浏览器/平台已实现的,咱们可直接使用的原生函数。函数库(library),基于原生API基础上,封装出更多的接口服务,为外部所使用。为了解决原生API和函数库存在代码繁琐的问题,从而提出框架(framework)概念。前人将多次成功项目的经验总结起来,形成的半成品项目,优势是后人继续开发即可,项目整体代码和做事的步骤极简化,不再需要大量重复手工劳动。存在不足,需要改变原有的处理问题的方法,像Vue一样JS没有搜索方法,页面双向绑定数据可以呈现在它想显示的区域。
什么是渐进式,虽然提供了很多的组成部分,但不强迫必须全部使用。相比AngularJS和React要求严格,必须打包全套使用。适用于以数据操作为主的项目(WEB、APP)。增删改查,多数应用都是以数据操作为主的。vue.js可以通过两种方式安装,直接下载并使用script引入vue.js文件,或者使用Vue-CLI脚手架工具。
Vue.js声明式模板语法被允许渲染数据进DOM的系统,响应式布局,不再和HTML直接交互。其易用,灵活,高效的特点,对于已经学会了HTML、CSS、JavaScript的开发者而言,Vue-CLI脚手架是一个项目创建工具,在命令行中运行。脚手架项目:Vue+Webpack+Babel+Node/Express本身就是一个服务器端应用。
当前最流行的前后端分离技术栽Vue+Spring Boot。Vue是有着双向控制功能,它的前端视图都是基于JS渲染,借助后端生成页面传递数据,自动渲染页面。
前端的技术只要是html,CSS,JS,通过模板引擎后端控制前端,前后端分离的时代,后端团队负责后端的分离包括控制层和服务层以及数据访问层,前端分离有控制层和视图层可以伪造后端数据JSON已经存在,前端工程依旧能够运行。前后端借助交互API接口,好处是相对独立,松耦合。可以部署在不同的服务器上。前后端分离,可能会由于交流的不及时导致问题的出现,解决方案归纳为:
- 首先制定Schema(计划提纲),试试更新最新API,降低集成风险。
- 早些年制定World计划文档,需要下载文档,可是文档每次变动部分内容,团队开发人员众多,协调费时费力。
- 前后端分离,后端更新内容,前端生成页面展示API,并且前端还可以测试API正常运行连接成功。前端测试后端接口使用Postman,后端提供接口需要实时更新最新的消息以及改动。
- Swagger可以对接口进行管理,通过文档的形式让开发者可以一目了然的了解接口的信息,降低了前后端开发人员交流的成本。
传统项目使用session存在缺陷,放入到服务端,信息无法共享。Session类似Redis存放缓存内容。Session中的session id类似于token。现在大型项目都是基于token替代Session。
基于传统的token认证。用户登录,服务端给返回token,并将token保存在服务器。以后用户再来访问,需要携带token,服务端获取token后,在去数据库获取token进行校验。
前后端分离项目基于token实现用户登录。
验证账号密码,成功验证成功情况下。
生成对应token,采用uuid。
将该token缓存到Redis中,Redis key等同于token,value等同于userid。
最后返回token给客户端,客户端将token保存在cookie中。
查询情况下,客户端每次请求得时候在请求头中传递该token,服务器接收到token,从Redis中查找对应key,对应value user id。再根据userid查询用户信息返回给客户端。
Token的优点,能够隐藏参数的真实性,临时且唯一,缓存有效机制,保证安全性。使用token的情况必须依赖于服务端Redis。假设发生高并发情况,频繁借助token查询Redis,可能对服务端压力过大。
JWT(全称JSON WEB TOKEN)实际和token基本设计思想一样。
JWT是用来解决用户认证(前后端分离/微信小程序/app开发)。
JSON,数据交换格式,轻量级,跨语言,减少宽带,可读性高。
JWT由三部分组成,Header头部,Payload负载,Signature签名。
JWT优势相较于基于传统的token相比,它无需在服务端保存token,只需要在客户端重新解密。JWT认证。用户登录,服务端给用户返回一个token(服务端不保存)。以后用户再次访问,需要携带token,服务端获取token后,再做token的校验。
3 系统需求分析
3.1 系统功能需求分析
用户服务模块包括了宠物领养、宠物零食两大功能模块。
宠物领养可以为用户提供待领养的宠物的信息。在页面中,宠物领养展示了宠物的详细信息,在页面右侧列表中展示了待领宠物狗品种和待领宠物猫品种。
宠物零食可以为用户提供宠物零食的信息。在页面中,宠物零食展示了宠物零食的详细信息,在页面右侧列表中展示了宠物狗零食和宠物猫零食。
用户服务功能模块的用例如图3-1所示。
图1 用户服务功能模块的用例
3.1.2 信息科普功能模块分析
信息科普功能模块包括了百科社区和新闻速递。
百科社区页面展示了宠物狗饲养注意事项以及宠物猫饲养注意事项,在页面右侧列表还展示了宠物饲养的常见问题。百科社区为用户提供了宠物饲养的相关常识性问题,为用户更好的领养宠物提供了科学的指导。
新闻速递展示了当前宠物领养的热点新闻,用户点击热点新闻可以查看新闻详情,了解更多关于宠物领养的相关新闻信息。
信息科普功能模块用例如图2所示。
图2 信息科普功能模块用例
3.2 系统非功能需求分析
1.可移植性需求
具体来说,该系统是一个面向宠物管理机构的应用系统,由于各家宠物管理机构都有自己的内部系统,所以如果这些机构用户想要将该系统中的流浪动物管理功能模块给独立开来并且集成到自家内部系统中去,这就要求该系统有非常好的低耦合且可移植性。
2.可扩展性需求
该系统是一个面向宠物管理机构的系统应用,其业务逻辑复杂,涉及到管理系统和应用系统。其中,本系统中的智能流浪动物管理子系统就是其中一个业务应用系统。这样拆分成子系统是为了实现总系统的扩展性需求,在系统中,将系统拆成两个子系统,偏向于机构用户的应用系统可以根据其业务拆成子系统,在后续扩展其他业务应用时,可以类似地扩展新的应用系统,将其与管理系统相连,用来降低不同业务之间的依赖以及代码之间的耦合,从而提高系统的开发效率以及方便后续扩展其他的业务功能,使得整个系统方便去扩展。
系统应具有良好的可扩展性,当业务增加、数据量增长以及应用需求变化时,平台的软硬件都能做到平滑扩展,以适应功能和容量的要求。
基础架构由传统模式向互联网模式转变。为了达到分布式+平台化的设计目标,提供一套“框架+工具”。
框架是指集成和沉淀所需各种组件的分布式开发框架,工具是指的是运行环境管控工具。
分布式,解决运行效率问题
将传统的系统移植到分布式架构上,提高应用的水平弹性扩展能力,并可通过集成第三方IaaS方案获得可向资源池部署的能力。
平台化,解决开发效率问题
融合多种分布式开发框架,内置各种开发引擎,通过数据服务封装使得数据与服务分离,降低开发门槛,支持应用的快速上线。
可视化,解决问题分析问题
提供可视化运维。包括服务资源的管控,能力的调用。便于运维人员及时发现问题,响应问题。
3.可维护性需求
该系统的验证、打包、发布要通过GitLab CI/CD工具来实现的,通过.gitlab-ci.yml配置文件进行系统的构建,就可以自动的启动服务。Gitlab CI/CD是持续集成框架,降低了系统部署的工作量。
其次,系统中具有完整的日志记录,包括对GIN框架自带的接口调用记录,还有使用logrus库记录的用户操作日志等,数据可追溯。
4.性能需求
(1)要求数据传输网络畅通、可控、可靠及可扩充;要求采用性能稳定的服务器、安全可靠的操作系统以及大型数据库,保证系统良好的性能,并可扩充。
(2)系统应满足用户的要求,稳定、可靠、实用。人机界面友好,输出、输入方便,图表生成灵活美观,检索、查询简单快捷。
根据业务处理类型的不同,把作业划分为交互类业务、查询类业务和统计分析类业务,分别给出响应时间要求的参考值,包括峰值响应时间和平均响应时间。
(3)交互类业务是指平时工作中在系统中进行的业务处理,如录入,修改或删除一条记录等操作。平均响应时间:1~1.5秒;峰值响应时间:2~3秒。
(4)如信息查询、统计报表生成的信息查询等。查询业务由于受到查询的复杂程度、查询的数据量大小等因素的影响,需要根据具体情况而定,在此给出三个参考范围:简单查询平均响应时间:1~3秒;复杂查询平均响应时间:5~10秒;极限数据查询时间:最大样本量时数据查询时间不超过30秒。
5.系统运行环境需求
(1)操作系统:服务器端以及数据库,可以兼容不同Linux发行版或Windows不同版本;
(2)浏览器:可兼容主流浏览器(IE10以上、谷歌浏览器65以上)。
6.安全性需求
(1)实体安全:保障物理环境、网络设备、数据媒体及其它相关物理实体的安全,防止自然灾害、有害环境、电源及设备故障、人为操作失误造成损失。
(2)系统安全:保障操作系统、网络通信系统和应用软件的安全,防止非法入侵、恶意攻击、IP地址欺骗、病毒传播等行为。
(3)信息安全:确保资料在采集、存取、处理、使用和传输中的机密性、完整性、可用性、不可否认性以及用户的可控性,防止数据的丢失、破坏、失密。
(4)管理安全:与安全技术措施相配套的风险分析与安全评估、安全证书与密钥管理、数据备份、安全监控与审计等制度,以及机构和人员管理。
4 系统设计
4.1 系统设计原则
系统设计是该流浪动物管理系统得以运行实施的重要环节,在设计中要软件的稳定、灵活与实用性等原则。
(1)实用性原则
在互联网不断发展的前提下,要满足用户对于流浪动物管理的需求,就需要遵循实用性的原则,以用户为中心,设计出来的系统,要与用户的实际情况相吻合,并将经济投入最小化作为切实的目标,本文依据用户的需求进行系统的设计与实现系统的设计目标就是实现利益的最大化,通过合适以及实用的功能来满足用户的需求,并不一定要开发多么复杂的功能,适合用户需求的才是最佳的系统。
在进行系统的设计与实现时,需要把握系统的重点功能,在于流浪动物管理人员进行积极的交流之后,发现本文设计的需求当中只有20%的功能是经常被使用到的,因此需要对这20%的功能投入重点的经历来进行开发,系统的设计与实现需要针对主要功能进行关注。
(2)稳定性的原则
系统的不稳定时,最严重的会导致数据的丢失,数据是一个信息化系统的最重要组成部分,数据的丢失直接影响了系统的运行,造成系统无法使用,通过服务器的硬件和软件的相辅相成作用来保护系统的稳定运行,是管理人员需要重点关注的问题,管理人员需要通过软硬件的选择来做好整体的规划,设计出合理的稳定的系统框架,来确保系统的稳定运行并做好应急的预案,确保系统稳定运行。
(3)可扩展性的原则
无论是什么样的系统在设计之初都需要对用户的需求进行充分的调研,为确保系统后续的可扩展性打下良好的基础,在系统设计时,要预见客户可能变化的需求,当用户的需求以及业务发生变化时,系统的设计需要足以支撑用户需求的变化,如果无法做到这一点,则说明了系统结构设计上存在缺陷,不满足可扩展性的要求,因此需要依据用户实际的需求来设计系统的结构满足系统的可扩展性需求。
(4)舒适体验原则
流浪动物管理系统是为网吧的日常运作提供管理服务,在这个过程当中需要考虑到用户的体验系统的实现,细节是用户不关注的问题,用户最关注的问题是系统的操作舒适性,以及界面的便捷性,在系统设计时需要对界面进行着重的设计,让系统的操作更加的流畅,使系统更加的实用简洁的画面,让用户的体验感提升得到用户的好感,通过实际的需求来对用户的具体需求进行实现,提升用户使用系统的体验感。
(5)维护和经济性原则
在系统设计开始就需要考虑后期的运维事宜,让系统尽量的保持灵活性,可以降低后期运维的成本,又能提升系统的运行效率,当系统的用户越来越多时,系统就可能会因为并发输的提升而导致响应速度的降低。因此在系统设计时需要考虑到维护的成本,用最小的经济投入来实现最大化的系统运行效率。
4.2 系统架构设计
为实现系统能够更加稳定、安全和高效运行,当前系统研发者普遍使用B/S架构组建整个系统。此次流浪动物管理系统的B/S架构组建设计图如图3所示。
图3 系统架构设计
根据图3所示,股票交易管理系统大体架构分为表示层、业务逻辑层和数据存储层。具体来说,这三个层面的架构内容分别为:
(1)表示层:表示层是最终展示业务功能的界面,直接与用户打交道,因此界面的舒适性需要达到用户的需求。系统的实现细节是用户不关注的问题,用户最关注的问题是系统的操作舒适性,以及界面的便捷性,在系统设计时需要对界面进行着重的设计,让系统的操作更加的流畅,通过合理的页面布局提升用户的体验感,让用户对系统有更加有好的认识,系统的页面设计以用户的需求为中心,让用户达到舒适体验的原则。
(2)业务逻辑层:业务逻辑层主要是处理系统的业务逻辑。
(3)数据存储层:数据存储层提供了数据的存储及持久化。
4.3 系统功能模块设计
如图4所示,流浪动物管理系统整体结构中,由前台系统对系统中各项功能模块进行具体管理和操控,以此为结构基础使整个系统进行规范、有序的运行,从而为用户提供良好的流浪动物管理使用体验。
4.4 数据库设计
4.4.1 数据库E-R图设计
在进行概念设计时,人们会首先将抽象的概念转化为可以直观应用的信息,并且将信息转换为可以理解的世界,也就是说将现实中较为抽象的部分以信息来体现这种信息,并不依赖于计算机系统或概念集结构,而是将其进行全面转换,使之成为计算机上某一个DBMS支持的数据模型。实际上,概念模型可以理解为是现实世界与机器世界中的中间体。
(1) 实体 (entity)
现实中客观存在的事物称之为实体,也就是现实中的人事物以概念或联系的形式构成实体,也就是一个学生一门课程、一个客户、供应商、一本书均是实体
(2) 联系 (relationship)
实体内部的联系也就是实体间各个属性间存在的关系,图7示出了基于数据流分析描绘酒店预订管理系统的全局E-R模型。
图7 数据库E-R图
4.4.2 数据库表设计
表1宠物信息表
字段 | 长度 | 是否为空 | 备注 |
id | Int(11) | 否 | 主键 |
petName | Varchar(20) | 否 | 宠物名称 |
petSex | Varchar(5) | 否 | 宠物性别 |
petBirthday | Date | 否 | 宠物出生日期 |
petHairColor | Char(10) | 否 | 毛色 |
petWeight | Char(10) | 否 | 重量 |
petHeight | Char(10) | 否 | 身高 |
petType | Char(10) | 否 | 宠物种类 |
表2 宠物送养表
字段 | 长度 | 是否为空 | 备注 |
id | Int(11) | 否 | 主键 |
petSex | Varchar(5) | 否 | 宠物性别 |
petBirthday | Date | 否 | 宠物出生日期 |
petHairColor | Char(10) | 否 | 毛色 |
petWeight | Char(10) | 否 | 重量 |
petHeight | Char(10) | 否 | 身高 |
petType | Char(10) | 否 | 宠物种类 |
Time | Date | 否 | 送养日期 |
表3 宠物入库审核表
字段 | 长度 | 是否为空 | 备注 |
id | Int(11) | 否 | 主键 |
petId | Varchar(5) | 否 | 宠物 ID |
Time | Date | 否 | 发布时间 |
status | Char(5) | 否 | 领养状态 |
表4 宠物领养表
字段 | 长度 | 是否为空 | 备注 |
id | Int(11) | 否 | 主键 |
petId | Varchar(5) | 否 | 宠物 ID |
Time | Date | 否 | 订单时间 |
Remarks | text | 否 | 备注 |
4.4.3 数据库管理与优化
随着系统的不断使用,系统的用户量越来越大,导致了数据量也不断的增多,这对于数据库来说是一个挑战,数据量的不断增多会影响到数据库的性能,提升了数据库的响应时间,降低了用户的体验感。因此需要对数据库进行管理与优化。
(1)信息备份
信息备份是对数据库的数据备份到其他存储中,这样可以避免因异常事件导致数据库数据的丢失,即便线上环境数据库数据丢失,也可以通过备份还原。通过数据备份的方式来恢复数据库的数据,避免了系统遭受瘫痪的风险。
(2)事务日志备份
数据库服务器除了数据持久化功能外,还会进行日志备份,对数据库的事务进行备份。日志备份可以自定义进行。周期太短,会增加服务器的压力。
(3)数据库口令变更
数据库的密码需要定期的更改,如果数据库的口令一直不变则,降低了黑客入侵的难度,导致了数据库的安全存在风险,通过定期的数据库口令变更,让黑客难以利用暴力破解的方式获取数据库的密码。
优化数据库访问速度的方式如下:
(1)及时归档和保存信息表
当数据库的数据不断增多时,会降低数据库的反应速度,对于信息化系统来说,系统的响应时间有一定的性能要求,主要是对数据库的交互响应,在数据库数据不断增多时,需要通过及时的归档的方式来降低数据库的压力。
(2)提取报表数据
通过报表的方式来提升数据的整体性,由于数据量的不断增多,会影响到数据库的响应速度,通过流程的规划,对系统进行合理的设置,来对数据的资源进行整合。
(3)根据需要创建索引
建立数据库的索引是数据库优化的主要手段,索引的建立提升了数据库的性能,也减少了对应的系统工作。
(4)设置缓存机制
随着系统数据不断增多,系统的反应速度会降低,这时候将常用的数据保存到缓存当中,可以提升数据访问的速度,实现数据库调优。
5.2 系统测试
5.2.1 测试方法
软件测试是为了尽早的发现开发的系统是否符合用户的需求,并对系统的工龄稳定性进行测试,发现系统的缺陷,首先需要对系统的需求进行分析,系统的测试不是系统开发之后进行的工作,而是在需求分析时就需要介入,系统的测试,包括了单元测试,集成测试和系统测试,单元测试是对模块内部的错误进行发现,在对模块进行测试时,需要对各个功能模块进行功能的测试,集成测试是对模块之间的接口问题进行测试,系统测试是对整体的系统实现的功能进行确认测试,测试完成之后需要将系统发布到外网,然后对系统进行性能测试,确保系统在功能上和性能上都能够达到用户的需求。
单元测试是系统测试当中最小的测试单元,主要是对系统的单个模块进行正确性的测试,单元测试的目的是发现模块内部存在的问题,通过测试用例对各个模块进行单元测试,体现各个功能独立运行的稳定性。
集成测试又称之为联合测试,是对功能模块的接口问题进行测试,在系统中各个功能模块之间的接口调用可能存在各种问题,各个模块之间的连接测试可能会存在数据丢失,或者调用出现错误的情况,一个单元的运行可能会对另一个单元产生影响。各自模块的组合是否达到程序设计框架的要求,是否存在结构问题。三个模块所出现的误差是否在可接受范围内。
验证测试是对系统的有效性进行测试,验证测试的目的是确保系统的功能和性能能够达到用户的需求,对应用软件的功能和性能,在需求分析时作出了明确的标准要求,通过系统的测试对系统的整体运行情况进行最终的确认,包括了对系统的硬件部分,以及输入输出组合的测试,实际上是对各个功能模块的确认测试,目的是各个系统的运行符合设计要求,并对运行状况进行对比,发现软件和系统的定义不一致或矛盾。验收测试应是当所有系统设置和测试均完成后取的系统性测试方法,验收测试的中心是用户,软件开发设计人员和质量人员需要参与此环节的工作。 通过对运行中的各种数据进行测试,除考虑整体功能运行的性能外,还需要对软件的兼容性可移植性、后期维护是否便捷、运行恢复是否便捷等进行确认。
测试方式关键有些人工测试设施测试。
(1)人工测试
人工测试还叫做代码复审,含有个人复查、走查、会审三种方式[7]。
(2)设施测试
设施测试关键是由黑盒测试白盒测试2种方式。本文利用黑盒测试对系统进行功能测试。
在系统的测试过程当中,本文通过将黑盒测试和白盒测试相结合的方式,对整体的系统功能进行测试,黑盒测试是对系统的输入进行测试,检查系统的功能方面是否存在缺点,白盒测试是对程序的思维逻辑进行测试,确保系统的性能达到用户的要求。
5.2.2 系统功能测试
系统功能测试主要从前台系统中选择了几个功能模块进行了详细测试,测试系统的功能性是否有效。
表1用户登录功能测试表
测试项目 | 测试结果 | 测试结论 |
输入正确的账号密码登录 | 登录成功 | 测试通过 |
输入错误的账号密码登录 | 登录失败 | 测试通过 |
表2宠物领养功能测试表
测试项目 | 测试结果 | 测试结论 |
点击宠物领养菜单 | 展示领养的宠物 | 测试通过 |
查看品种列表 | 展示品种列表 | 测试通过 |
表3宠物零食功能测试表
测试项目 | 测试结果 | 测试结论 |
点击宠物零食菜单 | 展示宠物零食详情 | 测试通过 |
查看宠物零食列表 | 展示宠物零食列表 | 测试通过 |
表4百科社区功能测试表
测试项目 | 测试结果 | 测试结论 |
点击百科社区菜单 | 展示宠物饲养注意事项 | 测试通过 |
查看常见问题列表 | 展示常见问题列表 | 测试通过 |
表5新闻速递功能测试表
测试项目 | 测试结果 | 测试结论 |
点击新闻速递菜单 | 展示热点新闻 | 测试通过 |
查看热点新闻 | 展示热点新闻详情 | 测试通过 |
5.2.3 性能测试
对于系统操作性能的测试可以通过对单个用户端的访问速度、数据统计速度、单个浏览器页面访问速度等进行测试,如表5-6所示为系统访问操作速度表。
表5-6 访问操作速度表
需要检测性能的常用操作 | 实际完成情况 | 用户指标要求 |
单个客户端的访问速度 | 1.0秒 | 要求系统在1.6秒以内完成 |
数据统计速度 | 2分钟 | 在3分钟从内完成 |
单个浏览器页面访问速度 | 1.0秒 | 在2秒以内完成 |
表5-7为最大用户数、同时在线用户数与并发用户数的性能测试。
表5-7最大用户数、同时在线用户数与并发用户数
实际完成情况 | 用户指标要求 | |
并发数 | 35 | 在30个人以内并发请求发生的情况下应满足正常使用 |
同时在线数 | 80 | 在60人同时在线的情况下应满足正常使用 |
最大用户数 | 350 | 系统最大话动状态的用户数达到250 |
表5-8为系统数据容量测试结果。
表5-8系统数据容量测试
需要检测性能的常用操作 | 用户指标要求 | |
已测试 | 数据库容量 | 数据库容量应保证系统至少 30年运行 |
6 总结
开发这个流浪动物管理平台历经了选择开发语言及技术、设计需求分析、数据库设计、页面设计、功能实现和系统测试等几个阶段。根据作者的实际能力分析,最终选择的是Java语言和MySQL数据库来完成流浪动物管理平台的开发。开发一个网站,需要经历一段时间,也需要有一定的开发经验。并不是完成一个单独的页面,也不是单独的实现一个方法。需要将许多个方法连接在一起,实现一个可操作的网站。
目前已经完成了流浪动物管理平台的整个程序的设计,并且可以正常的运行。项目编写完成以后就是页面的美化问题。由于前端技术掌握的不是很好,页面的整体效果不是很协调,后来在网站上找到现有的模板与自己的流浪动物管理平台结合使用,将流浪动物管理平台终于完成了编写。
由于时间紧迫,在这个系统上有一些想法并未编写和完全实现,包括在电脑文件中图片的数量有限,未考虑到流浪动物数据变得繁多时界面简洁的问题,系统画面上还可以做到更加的美观,希望未来有机会能够将这个系统的功能进一步优化,让这个系统更加完善,功能更加强大。
致谢
在各位老师同学的鼎力相助下,在家人的倾情鼓励下,我圆满的走过了大学生这一段重要的岁月。其中,我收获了友情,获得了知识阅历与经验。在此本人谨向给予本人无私帮助的老师、同学和家人们最诚挚的祝福和衷心的感谢!
值此之时,我还要向我的导师表达我诚挚的谢意,我的导师悉心的栽培、耐心的指导、仔细的斟酌,是我的论文成功发表的不可或缺的助力。我的导师拥有认真负责的工作态度和严谨探索的研究精神,这些优秀的精神品质使我受益匪浅。同时,我的导师对我负责的教育态度使我深受感动。正是因为我的导师的不断鼓励和无私帮助,我才能圆满的完成论文的撰写。借此机会,我要向我的导师表示我衷心的感谢!
最后,谨借此机会我要向我的母校表示真心的祝福和感谢,感谢我的母校对我多年的悉心栽培与教导,愿校园蒸蒸日上,全体师生健康有成!