随着移动互联网的普及,旅游服务行业正面临着巨大的市场需求。旅游服务APP为游客提供了一个便捷的线上交流平台,帮助游客了解景点、订票、预订住宿和餐饮等。为了满足市场需求,我们设计并实现了一个旅游服务APP。
近年来,国内外众多研究者致力于旅游服务APP的开发。一些知名的旅游服务APP如TripAdvisor、携程旅行等已经取得了很大成功,但市场依然有很大的增长空间。因此,开发一个功能齐全、用户友好的旅游服务APP具有重要的现实意义。
本项目采用Java进行开发,数据库使用MySQL,这些技术都是成熟的,具有良好的技术支持。前端使用HTML5、CSS和JavaScript,辅助以Bootstrap等前端框架。因此,本项目在技术层面具有较高的可行性。
旅游服务APP具有广泛的市场需求,预计将带来可观的盈利。随着旅游业的持续发展,用户对旅游服务的需求将进一步增加,进而推动旅游服务APP市场的扩大。因此,在经济层面,本项目具有较高的可行性。
本项目的用户界面设计友好、易于使用,可以在不同设备上正常显示。为了保证良好的用户体验,我们还对各个界面进行了适配。此外,后台管理系统易于操作,可以方便地进行景点信息和攻略的添加和维护。因此,在运行层面,本项目具有较高的可行性。
移动端设备硬件和操作系统的飞速发展和进步,给人们带来的用户体验越来越好。Android操作系统经过Google和移动终端设备厂商的不断优化,系统的性能越来越好,使得现在市面上基于Android平台的应用软件越来越丰富。人们在旅行途中可以使用移动终端设备,比如智能手机进行拍照,发布旅行照片,旅行感想以及导航等功能。
最近几年来,针对旅游的信息化不少,但是功能相对来说比较单一,比如微博等很多论坛是信息发布的平台,百度地图、高德地图具有导航定位等功能,大多数的App没有将信息发布、地图、信息查询等功能进行合理的整合,这对使用者来说操作及其不便,特别是一些对智能设备操作不熟练的人们,会出现在设备上操作几次后找不到拍照、地图等功能。
为了更好地提供旅游服务,本系统在一般旅游系统的基础上进行完善。本移动端旅游软件系统是集成信息发布平台、酒店查询、景区查询、导航以及定位等功能的综合信息管理平台。用户通过手机等移动终端使用系统,可以在系统中查询各类信息,并且可以通过系统的地图功能获取路线规划等,系统还支持游客发表各类游记,具有一定的社交功能。
旅游服务APP的浏览器是应用程序内置的,不需要用户手动安装。浏览器内核使用的是Webkit,同时也可以支持其他主流浏览器内核。
旅游服务APP需要使用数据库来存储用户的个人信息、订单信息、景点信息、攻略信息、评价信息等数据。建议使用关系型数据库来存储数据,如MySQL、PostgreSQL等。数据存储在云服务器上,需要保证云服务器具有稳定的网络和可靠的存储设备。
旅游服务APP的后台使用基于Java的Spring框架来开发,同时也需要使用MyBatis等持久层框架和Tomcat等Web服务器。建议使用最新的版本,以获取更好的性能和安全性。
旅游服务APP的前端使用基于React的框架进行开发,同时也需要使用Redux等状态管理工具和Webpack等构建工具。建议使用最新的版本,以获取更好的用户体验和开发效率。
移动端旅游信息平台包括手机端、Pad端在旅游行业中的应用,使用Android
移动设备作为终端开发,可以非常便捷的实现PC端的业务移动设备化。移动通信4G,以及商用不久的5G为实现系统的网络功能提供了强有力的支撑,使得系统的数据传输快、稳、准,很好的解决了数据传输的问题。
从平台的使用用户来说,分为:酒店的信息管理人员、景区的信息管理人员、
游客以及后台管理人员。
图31酒店信息管理人员用例图
以及查看游客给景区的反馈,将反馈信息上报领导以方便景区服务的完善。景区管理人员用例图如图3-2所示。
图32景区管理人员用例图
(3)后台管理人员,由于系统的各项功能支持配置,系统需要管理用户以及
密码等信息,后台管理人员有权限处理用户忘记密码等事项,能够为不同的用户设置角色,并将角色对应到不同的权限中,同时需要对整个系统的后台进行管理,比如监控系统的运维情况等。
图33后台管理人员用例图
发布、导航地图功能、查看天气。
1)查询景区信息
景区信息的查询是游客使用的主要功能,通过该功能系统可以提供给游客有关景点移动端旅游软件系统需求分析景区的各项资料,包括景区的介绍,周边的配套等。在景区查询时,可以通过关键字或者景区的类别等进行检索,系统根据游客输入的关键信息匹配景区后,将景区的信息返回给旅客。
2)景区周边酒店查询和预定
酒店信息是旅客出行时较为关心的信息,对于需要住宿的景区,游客一般需要安排住宿,预定酒店。因此,本系统需要根据景区的情况,查询其周边的酒店信息,包括酒店的类型、价格、入住率等。在有条件的情况下,系统需要提供酒店的预定功能,在系统中可以直接对接酒店的系统,并进行预定。
3)旅游信息发布
4)天气预报
天气是影响游客出行的重要因素,因此获取景区的天气情况有助于游客提前做好各项准备工作。本系统支持景区近一周天气预报的信息提供,游客可以在选择景区后查看天气情况。
5)地图和导航功能模块
景区的路线规划为游客出行提供参考,因此本系统需要提供景区的地图信息以及导航等功能。游客的用例图如图3-4所示。
图34游客查询用例图
图35用户注册模块数据流图
图36景点查询模块数据流图
图37酒店查询模块数据流图
图38信息平台模块数据流图
图39天气预报模块数据流图
图310地图与导航模块数据流图
表3-1用户注册的数据字典
表3-2景点查询的数据字典
表3-3酒店查询的数据字典
表3-5天气预报的数据字典
表3-6地图导航的数据字典
本项目需与第三方支付平台、地图API和酒店预订平台等进行集成。外部接口需求包括:
2.地图API接口:为展示景点位置信息,需要与地图API进行集成,如高德地图、百度地图等。
3.酒店预订接口:为实现酒店预订功能,需要与酒店预订平台进行对接,如携程、去哪儿等。
APP应具备较快的数据处理和响应速度,同时支持多用户在线操作。APP应支持高并发请求,对于用户的操作应有良好的响应及反馈能力。在满足功能需求的前提下,系统需要符合一定的性能需求才能正式投入使用,对景区旅游移动软件的性能要求如下:
(1)可靠性
可靠性是指软件的使用过程中能够确保自身功能的完整。具有可靠性的软件才能应用在实际的场景中。可靠性需要在软件设计时从架构上进行规划,并且通过严格的测试来分析其可靠性。
(2)快速响应
软件需要能够快速响应用户的输入,快速将计算结果反馈给用户。快速响应有利于提高用户的交互体验。
(3)健壮性
健壮性是系统在面临各类故障的情况下,仍然可以保持一定的可用状态。具有健壮性的系统才能够应对现实应用中可能面临的各类突发情况。
(4)安全性
由于系统会涉及用户的基本信息以及支付等功能,因此保障用户使用过程中数据、财产的安全性是系统的基本要求。
(5)兼容性
本系统运行在Android平台上,由于Android平台具有不同的版本,因此为保障系统的可运行性,需要兼容不同的Android版本,保障不同手机的客户均能使用该系统。
综合以上分析,景点移动端旅游软件系统的性能指标如下:
(2)100次操作手机软件的情况下,手机内存占用比例小于50%。
系统的拓扑结构是对系统各个结构组成进行设计。得益于4G网络的不断建设以及5G技术的快速发展,目前移动端互联网能够覆盖大部分区域。对系统的拓扑结构进行设计需要满足未来扩展的灵活性,保障系统的各个组成部分的解耦,以便于满足未来变化的需求。
图41系统的拓扑结构图
从图4-1可以看到,本系统对接地图API、景区信息、酒店信息等第三方数据,然后通过系统的数据库进行保存,由系统的Web服务器提供对外的服务。移动终端通过WIFI、4G/5G等网络访问系统服务器。从拓扑结构来看,系统具有一定的分层结构,最上层属于应用层,中层是系统的WEB等处理业务的模块,底层是保存数据的数据库。通过分层结构的设计,能够让各层保持独立,具有一定的扩展能力。
目前软件开发的架构中为了解耦合等需要,一般将系统划分为表示层、业务层以及数据层。表示层负责移动端内容的展现以及与用户的交互,业务层负责处理系统的各项功能,数据层负责存储各类数据。本系统按照这三个层次进行逻辑划分,本系统的逻辑架构如图4-2所示。
图42系统逻辑结构
从图4-2可以看到,本系统的逻辑架构分为表示层、业务层以及数据层。表示层处于系统的最上层,是系统提供应用的对外接口。业务层处于系统的中间层次,提供各类业务功能,数据层处于最底层,负责各类数据的存储、查询等。
(1)数据库层
(2)业务层
(3)表示层
表示层主要是为业务层提供不同的展示方式,因为本文的设计是将功能和界
面分离开,由业务层完成各项功能计算以后,将结果返回给表示层。表示层负责在移动端设备上展现各类信息,并且与用户进行交互。
使用UML的活动图描述系统的主要业务流程图。
图43景点查询功能模块
图44景点查询流程
用户在景点详情页点击“订票”按钮,选择所需预订日期和数量等信息,确认订单并完成支付操作。
图45酒店查询和预定
图46酒店查询流程图
通过酒店功能模块,可以实现对酒店信息、酒店价格、距离、酒店评分、预订
等信息的查询。酒店查询支持通过酒店名称、景区附近等方式进行查询,可以查看详细的酒店信息,并预定该酒店。APP上可以支持线上付款功能,将预订酒店的费用发送给酒店管理系统,并接受预订酒店的结果信息,返回给使用者。
用户在相应的预订界面中选择想要住宿和美食餐厅,并完成相应支付操作。
图47旅游信息平台结构
图48旅游信息平台流程
(5)景点评分本系统还提供对景点的评分功能,用户可以根据自己对景区的感受,对景区进行评价。系统支持1-5星级评分,5星代表满意,1星代表不满。
图49天气预报模块结构
图410天气预报模块流程图
图411地图功能模块结构
图412地图功能流程图
游客在系统中查询景点以后需要获取景区的地图以及导航信息,以方便用户进行行程规划等,并对地图信息进行管理。
(1)行程规划
行程规划是系统地图模块提供的基本功能。用户输入目的地以后,系统根据用户所在位置以及目的地之间进行路线规划,提供通行方案给用户。用户可以根据自身的出行情况选择不同的出行方案。为了进一步提高系统的交互特性,系统允许用户将不同的出行方案发布在信息平台,以供不同的用户参考或者接收其他用户反馈的意见。
(2)信息标注及封装
(3)导航收藏
(4)导航系统
导航页面允许用户选择不同模式的导航地图,既可以选择高清模式也可以选择较为粗放的模式,系统提供1:50、1:100、1:200、1:400等不同比例的地图模式。同时,系统还提供对地图的交互,用户可以移动地图,选择不同的地点,由系统计算两者的距离,或者进行模拟导航等。地图支持平面移动,用户通过手指滑动,可以控制地图的移动。地图移动以后,会及时获取新的地图信息,更新地图信息显示。
根据需求分析的结果,在景区移动端软件中主要包括景区、酒店、信息平台等实体对象,这三个对象的ER图如图5-1所示。
图51ER图
(1)用户信息表设计
用户信息是使用系统时最基本的数据,景区、酒店、旅游信息平台均会用到,用户信息表结构如表5-1所示。
表5-1用户信息表
(2)酒店信息表设计
酒店信息包括酒店的基本信息、酒店的房间信息,订房信息以及客房评价信息。
酒店信息表的结构如表5-2所示。
表5-2酒店信息
酒店房间信息表结构如表5-3所示。
表5-3酒店房间信息表
订房记录信息表结构如表5-4所示。
表5-4订房记录表
客房评价信息表结构如表5-5所示。
表5-5客房评价信息表
(3)景区信息表设计
景区信息表结构如表5-6所示。
表5-6景区信息表
景区门票预订记录信息表结构如表5-7所示。
表5-7景区门票预订记录信息表
(4)旅游信息平台表设计
旅游信息平台信息表结构如表5-8所示
表5-8旅游信息平台信息表
本项目主要分为前台和后台两个模块,每个模块又可分为不同的功能模块,以易于管理和维护。
根据对某景区移动端旅游软件的需求分析,本系统主要包括景点查询、景点移动端查询和预定、旅游信息平台、地图和导航个天气预报处理等五个功能模块,如图5-2所示。
图52系统功能模块
旅游软件系统中的核心对象为景区以及酒店,系统的主要逻辑结构设计如图5-3所示。
图53系统逻辑结构
为了更好地组织代码和功能模块,我们设计了如下类和接口。
用户类,记录用户的姓名、手机号以及密码等信息
publicclassUser{
privateintid;
privateStringname;
privateStringmobile;
privateStringpassword;
//Getter和Setter略
}
景点类,记录景点名称、图片、介绍等信息
java复制代码publicclassScenicSpot{
privateStringintroduction;
privateList
类名称:ScenicSpotQuery
接口:
searchByName(Stringname):通过景点名称搜索景区信息
searchByLocation(doublelongitude,doublelatitude):通过经纬度搜索附近景区信息
searchByCategory(Stringcategory):通过景点分类搜索景区信息
类名称:HotelQuery
searchByScenicSpot(StringscenicSpotName):通过景点名称搜索附近酒店信息
searchByLocation(doublelongitude,doublelatitude):通过经纬度搜索附近酒店信息
searchByPriceRange(doubleminPrice,doublemaxPrice):通过价格区间搜索酒店信息
类名称:WeatherQuery
queryWeather(Stringcity):查询指定城市的天气情况
queryAirQuality(Stringcity):查询指定城市的空气质量
queryHumidity(Stringcity):查询指定城市的湿度
类名称:MapNavigation
routePlanning(Stringstart,Stringend):从出发地到目的地规划路线
navigation(Stringstart,Stringend):导航从出发地到目的地
图61景点查询模块界面
图62酒店查询和预订模块界面
图63机票订购界面模块
图64地图与导航模块界面
图65天气预报模块界面
图67后台管理人员界面
系统测试的目的是在完成基于Android平台的移动端旅游软件开发完成以后,通过采用各种测试的方法,保障系统的软件功能能够满足正常使用。本章对移动端旅游软件进行测试,由于是移动端软件,因此本章搭建了基于Android操作系统的手机及PAD环境,以便能够在不同的移动端对本系统进行测试。在搭建完测试环境以后,还要设计功能用例,按照系统测试的操作步骤,在系统中进行操作,然后验证系统能否按预期产生输出。如果操作后产生的输出不一致,有可能是系统存在功能问题,那么需要仔细检查系统的开发代码,对存在的问题进行修正。在功能测试的基础上,为了保障系统能够正常的在手机上运行,同时系统的各项服务不会因为出现大的负荷而崩溃,因此需要对系统进行性能测试。为了保证系统的正确性和可靠性,我们进行了如下测试:
测试计划将包括以下阶段:单元测试、集成测试、系统测试、验收测试。每个模块都将进行详尽的测试,以确保系统的稳定性和可靠性。
1.单元测试:测试每个独立的代码组件,确保它们都能按预期工作。
2.集成测试:将单个组件组合起来,测试它们之间的接口和交互,确保它们能够正确地一起工作。
3.系统测试:将所有的组件和模块作为一个整体进行测试,以确保整个系统的功能和性能符合要求。
4.验收测试:最终用户或客户进行的测试,以验证系统是否满足了他们的需求。
测试进度将跟随软件开发生命周期的每个阶段进行,从单元测试开始,然后进行集成测试,接着是系统测试,最后是验收测试。
功能测试的目的是保障系统的各项操作流程能够产生符合预期的输出,一般
功能测试可以通过设计测试用例的方式来完成,测试用例是一系列的操作步骤,每个步骤都有一定的输出,而测试的标准就是检查输出是否与预期一致。
测试用例编号
前提准备
操作步骤
预期结果
测试结果
1
系统数据库中预先生成
测试账号“test”以及密码“123456”
系统验证通
过,跳转到系
统首页
2
系统数据库中预先生成测试账号“test”以及密码“123456”
访问系统页面,输入系统中
存在的测试用户名“test”以
验证失败,拒
3
系统数据库中预先生成测试账号“test”以及密码“123456”,同时删除系统中可能的账户“test1”
4
(2)景区查询和酒店查询测试
景区查询和酒店查询和预定模块主要用来测试景区与酒店能否被正常搜索,
该功能模块的测试用例如表6-3以及表6-4所示。
表7-2景点查询功能测试用例
表7-3酒店查询功能测试用例
(3)地图和导航功能测试
表7-4地图与导航功能测试用例
(4)天气预报模块
天气预报模块用于获取不同景区、城市的天气情况,该模块的测试用例如表6-
6所示。
表7-5天气预报功能测试用例
天气预报包括输入不同的查询条件,然后对系统进行操作,检查系统输出的天
(5)信息模块
信息平台模块用来完成用户发布各类信息的功能,该模块涉及一系列的操作,
本文设计测试用例如表6-7所示。
表7-6信息平台功能测试用例
信息平台模块的测试主要包括测试当用户新建帖子时能否正常发布,同时用
系统性能测试主要是完成系统在各种不同负载与压力下性能参数变化的测试,检验系统是否存在某些场景中出现性能下降或者内存泄露等问题。
(1)负载和压力测试
本文采用LoadRunner模拟不同的用户数进行操作,LoadRunner能够生成各种
表7-7负载和压力测试
目的
操作过程
模拟300个用户,进行查询、编辑等操作
通过loadRunner生成300个用户,随机进行操作
0.4秒
模拟1000个用户,进行查询、编辑等操作
通过loadRunner生成1000个用户,随机进行操作
0.7秒
模拟1500个用户,进行查询、编辑等操作
通过loadRunner生成1500个用户,随机进行操作
1.5秒
(2)内存使用情况
一般手机的资源是有限的,为了测试手机在使用系统时是否会消耗较大的内
存,并对内存使用进行测试,本文采用Eclipse中的DDMS内存监控功能对使用手机的过程中内存使用情况进行监控,并对手机应用程序进行调试。
在这个项目中,我们成功设计和实现了一个提供综合旅游服务的APP,包括用户注册、景点查询、酒店查询、旅游信息平台、天气查询和地图导航等功能。通过深入的需求分析,我们清晰地理解了每个功能的具体需求,并按照这些需求进行了详细的设计和开发工作。
我们设计了清晰的系统架构,以满足各种功能需求;我们实现了直观易用的用户界面,为用户提供了良好的使用体验;我们创建了强大的后端系统,支持大量的数据存储和检索,同时保证了系统的稳定性和性能;我们整合了第三方服务,如地图API和天气API,进一步提升了我们的服务质量。
在整个开发过程中,我们进行了严格的测试工作,确保了APP的质量和稳定性。在项目管理方面,我们有效地控制了项目进度和质量,确保了项目按计划进行,并且达到了预期的目标。
此外,我们也将重视用户反馈,通过收集和分析用户反馈,我们可以更好地理解用户需求,优化我们的服务,提高用户满意度。在这个持续发展和变化的环境中,我们希望我们的APP能不断提升,为用户提供更优质的旅游服务。