软件工程基于Android的旅游攻略App的设计与实现.docx
《软件工程基于Android的旅游攻略App的设计与实现.docx》由会员分享,可在线阅读,更多相关《软件工程基于Android的旅游攻略App的设计与实现.docx(74页珍藏版)》请在冰点文库上搜索。
![软件工程基于Android的旅游攻略App的设计与实现.docx](https://file1.bingdoc.com/fileroot1/2023-6/5/10eec76e-37df-4d3a-9695-9dc4a14096f4/10eec76e-37df-4d3a-9695-9dc4a14096f41.gif)
软件工程基于Android的旅游攻略App的设计与实现
中文摘要
随着移动互联网的蓬勃发展以及人们生活水平的日益提高,外出旅行成为了很多人在节假日的一大休闲娱乐方式,而移动终端旅游App则为用户的出行提供计划、建议以及各种旅途前的准备等服务,极大地便利了用户的各种需求,在用户的旅行中占据着重要的地位。
本文将主要介绍在Android与Java以及SQLite数据库开发环境下旅游攻略App的设计方法和具体的实现过程,针对各地旅游业的发展趋势,结合用户的实际旅行需求出发,分析出如何设计并实现功能完善、易于操作、界面简洁美观的一款旅游攻略App。
关键字:
旅游攻略AppAndroidJavaSQLite
Abstract
WiththerapiddevelopmentofmobileInternetandtheimprovementofpeople'slivingstandards,travelinghasbecomeamajorleisureandentertainmentwayformanypeopleonholidays,whilethemobileterminaltourismappprovidesuserswithservicessuchasplanning,adviceandpreparationbeforetraveling,whichgreatlyfacilitatesusers'needsandplaysanimportantroleinusers'travel.ThispaperwillmainlyintroducethedesignmethodandspecificimplementationprocessofthetourismstrategyappunderthedevelopmentenvironmentofAndroid,JavaandSQLitedatabase.Accordingtothedevelopmenttrendoftourismindustryaroundtheworldandtheactualtravelneedsofusers,thispaperanalyzeshowtodesignandimplementatourismstrategyappwithperfectfunctions,easyoperationandsimpleandbeautifulinterface.
Keywords:
tourismstrategyappAndroidJavaSQLite
第一章绪论
1.1课题背景与意义
近年来,随着移动互联网的蓬勃发展,智能手机时代悄然到来,不断改变着我们的生活方式。
而随着人们生活水平的不断提高,出行游玩成为了越来越多人的一个生活计划。
但是,在旅游业蓬勃发展的同时,人们对出行的地点等方面都有不同的需求,需要获取自己感兴趣的景点并做出选择,如今随着传统旅游业与移动互联网产业的融合速度加快,用户只需在手机上点几下屏幕,就能随时获取景点的介绍以及旅游的攻略。
基于上述背景分析,本文将在调研相关旅游攻略App优缺点基础上,以便利用户获取自己需求的旅游景点和类型为目标,设计和实现了一款基于Android的旅游攻略App,可提供查看查询不同类型旅游景点的介绍,浏览其他用户分享的旅游动态并进行交流,同时自己也可进行分享,还有导航旅行路线,收藏景点介绍,创建自己的旅游攻略等等。
1.2研究现状
随着移动互联网的蓬勃发展,互联网通信的普及和智能手机的使用极大地便利了我们的生活,移动手机端的网络用户人数已经超越其他方式上网人数。
Android作为一款专为移动设备设计的开放平台,多年来不断成为智能手机主流平台之一。
当代人们尤其是90后正在爱上旅行,在很多调查中,绝大多数人表示每年都至少有两次外出旅行的计划,而且在周末的短期双休时间中也会约上朋友在周边游玩放松。
但人们很多都是可能通过与同学、同事、或者朋友等小圈子中结伴而行,这样就有很大的局限性,可能会出现很难找到和自己一样喜欢旅行的人的问题。
同时,用户也存在着去哪里和如何找到自己喜欢的类型的旅行地点的烦恼,尤其是考虑到自己的时间、距离、喜好等问题。
而设计开发一个这样的旅游攻略App,可以让用户之间分享自己的旅行经历,并且还可以互相交流,听取建议,同时找到志同道合的人结伴出行。
更重要的是,可以在应用中筛选出适合自己的旅行类型如周边游、出境游、爬山类等,浏览有关信息。
近年来,旅游出行类的App也逐渐成为人们出行前的必备应用,便利了用户的出行旅游。
1.3论文研究的主要内容
本课题的研究目标是以移动手机用户为核心的发展理念。
通过对旅行用户的需求进行了解,结合其他的旅行App进行了功能上的分析,大致了解系统开发所需要用到的技术,以及结合一些当下流行的开发模式进行初步的模式选择,从而实现该App进行大概的系统模块上的分析和模块上的设计,划分我们系统所需要的功能模块,完成系统的总体设计和各模块的详细设计,逐步完成系统的编码实现与测试。
本论文研究的主要内容:
(1)分析旅游攻略App的现状以及研究的意义,确定研究的目的
(2)研究Android、SQLite数据库等相关技术
(3)详细分析了旅游攻略App的功能,并进行了具体的需求分析
(4)研究了旅游攻略App的总体设计方案、相关架构和基于视图层、模型层、控制层三层结构的设计方法,并进行各功能模块的详细设计
(5)分析编码实现过程,对完成的App进行测试。
在测试中发现其中的问题,不断地解决问题,完善应用
第二章系统概述及系统分析
2.1系统目标分析(编写目的)
旅游攻略App需求分析主要是通过了解用户的需求,提出App应该具备的功能模块和我们预期需要完成的目标,从而确定系统所需的功能性需求和非功能性的需求。
功能性的需求是为了说明系统的具体功能以及功能完成后要达成的目的。
而非功能性需求指的是管理系统为用户提供除业务需求必须具有的特性,当然这是除功能性需求以外的一些需求。
其中包含了相关标准、系统所需要的质量特征,包括一些性能需求、安全需求、可维护性需求以及其他需求。
系统有关的需求分析在该系统的开发中非常重要,它是一个系统设计与开发的基础。
它是后期的系统测试的重要依据和重要基础,所以编写需求分析的目的是为了成为后期维护的说明文档。
2.2系统功能需求分析
2.2.1系统功能概述(总体需求)
本App的设计是为了给用户的外出旅行提供不同的建议,推荐不同的旅游景点。
由于用户的年龄层、兴趣爱好以及空闲时间等的不同,他们对外出旅行的需求也不尽相同。
用户在登录过后可以通过选择不同的旅行类型,比如是短途的周末游、周边游,或者长途的出境游、出国游等等,还有一些热门路线或景点的推送展示,也可以对一些热门景点进行搜索,然后就可以浏览相关类型的一些景点的介绍。
其次,用户可以通过其他用户分享的旅游动态对出行有更多的了解,然后还可以相互之间进行互动,分享旅游心得,找到旅行中志同道合的同伴。
同时,还可以对自己的位置进行定位,对想要到达的景点的位置进行路线规划并导航。
还有的是,可以对个人信息进行管理,创建自己的出行攻略(路线)并保存,也可以收藏某个景点的介绍,或者查看点赞过的动态等等。
根据相关调研得出该App的五个板块的具体需求,具体情况如下:
Ø登录注册(进行注册后登录)--移动端
Ø活动(对不同旅行类型分类及罗列热门活动、搜索热门景点)--移动端
Ø动态(查看其他用户分享的动态并可与该用户聊天、自己发布动态)--移动端
Ø导航(对所在位置定位并进行路线规划导航至想去的景点)--移动端
Ø我的(收藏景点信息、创建攻略、查看点赞过的动态)--移动端
2.2.2登录注册
登录注册模块的用例图如图2-1所示:
图2-1
登录界面包含两个需求,第一是注册功能,第二是登录功能。
1.注册功能需求
用户初次使用App需先进行注册,注册成功后即可使用该用户名和密码进行登录。
2.登录功能需求
用户注册成功后,即可使用注册成功的用户名和密码进行登录,登录成功后即可进入到主界面,同时,在登录时可勾选记住密码项,可在下次登录时无需再输入用户名和密码直接点击登录,也可以勾选自动登录项,实现下次启动App时实现自动登录。
2.2.3用户活动
活动模块的用例图如图2-2所示:
图2-2
用户活动界面包含三个需求,第一是查看旅行分类功能,第二是查询热门活动,第三是搜索热门景点。
1.查看旅行分类功能需求
在应用中可以浏览到有不同的旅行分类,选择需要的分类后进行查询浏览,获取到该类型的一些景点,选取想要的景点后查看有关介绍,可点击收藏。
2.查询热门活动需求
在应用中可以看到推荐的一些热门的活动,比如热门景点(按周末娱乐、热门、推荐等分类)、网红打卡景点、热门路线等不同种类的推荐旅游景点,也可点击进入查看详细信息,并可进行收藏。
3.搜索热门景点
在应用中可以输入想要搜索的景点,选择后进入查看景点的详细信息。
2.2.4动态
动态模块的用例图如图2-3所示:
图2-3
动态界面包含三个需求,第一是查看动态功能,第二是发表动态功能,第三是与发表该动态的用户进行聊天功能。
1.查看动态功能需求
在应用中可以以列表的形式看到各个用户分享的旅行动态,点击可进入查看动态详细信息,包括其文字评价和感受以及旅行的一些图片,点击图片能够查看大图,可点击评论留言进行交流,也可为其点赞和收藏。
2.发表动态功能需求
在应用中可以输入想要分享的文字以及旅行拍摄的图片,发布后可在动态列表中显示,同样地点击进入可以查看动态详细信息。
3.与发表该动态的用户进行聊天功能需求
在应用中可选择某个用户发表的某条动态,浏览该动态的详细信息,点击聊天可以与该用户进行交流。
2.2.5导航
导航模块的用例图如图2-4所示:
图2-4
导航界面包含两个需求,第一是定位功能,第二是路线规划与导航功能。
1.定位功能需求
在应用中可以进行当前位置的定位,显示地图并将用户的位置显示在地图上。
2.路线规划与导航功能需求
在应用中输入起始点与目的地进行路线规划并导航,规划好的路线显示在地图上,然后开始导航。
2.2.6我的界面
我的界面模块的用例图如图2-5所示:
图2-5
我的界面包含三个需求,第一是查询收藏功能,第二是创建攻略功能,第三是查询点赞过的动态功能。
1.查询收藏功能需求
在应用中可以查看该用户所收藏的旅游景点的条目,分别点击可查看相应的详细信息。
2.创建攻略功能需求
在应用中可以输入攻略的有关内容,创建成功后可在我的攻略中点击后查看该用户创建的攻略的有关内容。
3.查询点赞过的动态功能需求
在应用中可以浏览该用户点赞过的动态,获取所需的信息。
2.3非功能性需求
非功能性需求将决定用户对系统使用的体验或者系统的品质等相关问题。
以下列举几个较为重要的非功能性需求
1.界面美观需求
这个需求需要系统达到一个符合规定的外观,尤其是本App是针对于期望获取休闲娱乐信息的用户而设计的,应具有界面简洁、布局规律、精美等特点,使得用户操作更清晰方便,而穿插的一些小动画和合理的布局文件分配,能为用户带来更完美的体验。
2.易操作性需求
易操作性会使系统使用起来更加的简易,对于用户使用本App时可以很快的操作各项功能,而不是需要花很多的时间熟悉操作。
3.安全性需求
必须具有消除潜在风险和对风险具有一定承受压力的能力,应当保证用户的个人账户信息的安全性,在遇到突发情况的发生时不至于丢失个人信息。
4.应用稳定与性能优良需求
一些严重的bug会严重降低用户体验,所以应尽量避免出现闪退、内存泄露、应用出现卡顿等情况,使界面运行流畅,同时每个页面的数据加载时间应控制在15秒左右以内,当然也取决于用户当前的网络情况,在加载时间过长或失败时应给予用户反馈。
2.4本章小结
系统开发的需求分析尤为重要,我们需要对用户的需求以及提出的问题进行彻底的了解。
本章中讲述了旅游攻略App的一些基本情况,这在本次系统的设计中占据重要地位,本章将为以下概要设计跟详细设计提供完备的文档支持。
为系统所需要的功能进行讲述。
第三章系统总体设计
3.1系统总体功能设计
本软件实现了5个功能模块,分别是登录注册、活动、动态、导航、我的五个部分,系统功能模块图如图3-1所示:
图3-1
3.2系统流程设计
3.2.1系统总体流程设计
系统业务流程图如图3-2所示:
图3-2
3.2.2各模块流程设计
登录注册模块:
该模块包含两个部分,第一部分是注册,第二部分是登录,在注册成功后可输入用户名和密码进行登录,登录注册模块流程图如图3-3所示:
图3-3
活动首页模块:
该模块包含四个部分,第一部分是查看各种分类的旅行类型,可根据自身的需求选择进入查看该类型的一些景点以及这些景点的详细信息。
第二部分是一些热门的推荐景点,包括猜你喜欢板块中分成了三个部分(热门、推荐、周末娱乐),第三部分是年度网红打卡的景点和热门路线,第四部分是对一些热门景点进行搜索,活动首页模块流程图如图3-4所示:
图3-4
动态模块:
该模块包含三个部分,第一部分是一个动态列表,可以查看某个用户发布的某条动态,第二部分是查看该动态的详细信息,包括旅行的文字和图片等,可以对该动态进行收藏、点赞、评论,也可以与该用户进行聊天。
第三部分是发布动态,输入内容,并选择要发布的图片,发布成功后即可显示在动态界面中。
动态模块流程图如图3-5所示:
图3-5
导航模块:
该模块包含三个部分,第一部分是在定位界面会显示地图并会显示当前用户所在的位置,第二部分是路线规划,输入出发地和目的地进行规划回到定位界面,则可在地图上显示规划好的路线,第三部分是进行导航,导航模块流程图如图3-6所示:
图3-6
我的模块:
该模块包含个部分,第一部分是可查看该用户收藏的景点、创建的攻略等,第二部分是可直接退出应用,第三部分是创建攻略,输入攻略的相应的内容,发布成功后即可进入我的攻略界面中查看,第四部分是可查看攻略的详细信息。
我的模块流程图如图3-7所示:
图3-7
3.3系统架构设计
3.3.1系统总体架构
在该App的设计实现中,主要采用的是客户端、服务、网络、数据库四部分构成,App属于客户端,是基于Android平台的,并使用SQLite数据库进行数据的存取,使用了XX地图的SDK作为中间服务器,必须设计好客户端和中间服务器的访问接口,因此必须熟悉了解XX地图的查询接口。
网络主要有Internet、4G/WLAN构成,服务方面主要是使用了Socket进行用户间的通信。
3.3.2系统软件体系架构设计
该旅游攻略App使用MVC模式进行设计实现,该模式主要采用分层设计的思想,将技术实现的框架设计划分为3个部分,界面交互部分(View)、逻辑处理部分(Controller)、数据处理部分(Model),通过层次间的相互依赖和调用来完成整个应用程序的功能,如图3-8所示:
图3-8
由图可看出,数据层从数据库获得数据,通过逻辑处理层的处理,业务逻辑层再把数据转换为符合业务规则的数据格式,最后通过视图层将信息转换为用户可以理解的信息格式。
3.4本章小结
本章节对旅游攻略App客户端进行了总体设计,第一是分析了App的总体功能结构,并对原有需求分析中划分的五大功能模块分别进行了业务流程的分析,结合流程图对每个功能模块的具体功能的使用流程进行了详细的描述,从模块化的角度来实现系统,十分有益于系统的高效运行以及可维护性。
第二就是从总体架构、软件体系架构两个方面对系统的架构进行了设计,结合用户使用习惯及系统功能等的设计进行了阐述,为后续详细设计和编码实现提供了基础。
第四章系统详细设计
4.1系统开发环境及相关工具和所用技术简介
具体开发环境和开发工具如下表所示:
类别
名称
系统环境
Windows10
开发语言
Java
开发平台
AndroidStudio
建模工具
MicrosoftVisio2007、PowerDesigner、ProcessOn
后台数据库
SQLite
4.2系统核心功能模块的详细设计
4.2.1用户注册的详细设计
功能编号
01
功能名称
注册
功能
描述
未注册用户则进入注册界面,输入要注册的用户名和密码,从本地选择并上传头像,点击注册按钮即注册成功
输入项
用户名、密码、头像
处理描述
输入用户名和密码,选择头像,点击注册,会判断所要注册的用户名在数据库中是否已存在,是则弹出提示注册失败,否则注册成功,新用户信息被添加到数据库中的用户信息表中
输出项
数据库中的用户信息表出现新添加的用户信息,可在登录界面进行登录
界面要求
一个图像框:
显示选择的头像
两个输入框:
分别输入用户名和密码
两个按钮:
选择头像,注册
4.2.2用户登录的详细设计
功能编号
02
功能名称
登录
功能
描述
已注册用户可在登录界面中直接输入用户名和密码,点击登录按钮进行登录后进入到应用主界面
输入项
用户名、密码
处理描述
输入用户名和密码,点击登录后判断所输入的用户名是否已存在即是否已注册(与存储在数据库中的相应信息进行比对),或者是输入的密码是否正确,若错误则提示登录失败,否则登录成功进入到主界面。
同时在登录时可选择记住密码或者自动登录。
输出项
登录成功,进入到应用主界面
若选择记住密码,则下次登录时直接点击登录即可完成登录
若选择自动登录,则退出后重新启动时可自动登录直接进入到主界面
界面要求
两个输入框:
输入用户名和密码
两个个复选框:
记住密码和自动登录
两个按钮:
登录、注册
4.2.3查看旅行分类的详细设计
功能编号
03
功能名称
查看旅行分类
功能
描述
选择不同的旅行分类,查看该类别中的景点,点击相应景点后查看该景点的详细信息。
输入项
点击所选择的旅行类别项
处理描述
用户登录后进入到主界面,主界面中有一个显示不同旅行分类的模块,在模块中选择所需要的类别进入后可查看该类别的一些不同的景点,点击所需要的景点后可进入查看该景点的详细信息。
输出项
显示所选择的旅行类别的信息后浏览所需要的相应的景点的信息
界面要求
旅行图标和对应分类标题成列表排布,点击进入分类景点界面,显示一个景点图片和景点名称,选择景点进入景点介绍界面,显示景点的图片和文字简介包括它的介绍,攻略等等。
4.2.4查询热门活动的详细设计
功能编号
04
功能名称
查询热门活动
功能
描述
选择应用中推荐的一些热门活动或者是受欢迎的推荐活动,点击进入后查看这些活动的介绍,攻略等
输入项
点击所选的热门活动项
处理描述
用户登录后进入到主界面,主界面的下方即旅行分类模块的下方是一些热门活动或者推荐活动的模块,点击所需要的选项后进入到活动介绍界面查看活动的详细信息
输出项
显示所选择的热门活动的详细信息
界面要求
分为猜你喜欢、年度网红打卡、热门路线三大板块,猜你喜欢板块中使用tab标签分成热门、推荐、周末娱乐三部分可自由切换,而年度网红打卡则是以水平列表的形式显示,显示活动照片对应景点或者活动名称,点击进入到活动介绍界面后显示活动或者景点的图片和文字简介,包括景点介绍和攻略等,最后最下方是热门路线,显示线路介绍、路线、路线地图等,点击查看更多能进入以列表的形式查看更多的热门路线,从而查看更多的详细信息。
4.2.5查看动态的详细设计
功能编号
05
功能名称
查看动态
功能
描述
选择某位用户的动态条目,查看该用户该条动态的详细信息,可进行点赞、收藏、评论。
输入项
选择某位用户的动态条目
处理描述
从应用中的底部导航栏中切换到动态模块,显示用户动态列表,点击所需要的某一条动态,进入动态信息界面显示动态的详细信息,包括发表动态的用户名、头像,发表时间,动态的文字、图片等,可进行点赞、收藏、进入评论界面后输入信息进行评论,并更新数据库中相应的数据
输出项
显示所选择的动态的详细信息
界面要求
动态界面显示一个用户动态列表,每个动态条目显示一张动态的图片还有动态的文字,以及发表的时间和发表的用户名,点击进入动态信息界面后上方显示用户名和头像,下方显示动态文字信息和动态图片等,并在下方显示点赞、收藏、评论、聊天的图标,评论界面显示评论列表,最下方是一个输入框,输入评论信息点击右侧的评论按钮发送评论
4.2.6发表动态的详细设计
功能编号
06
功能名称
发表动态
功能
描述
输入所要发表的内容和图片,点击发布后在动态界面中的列表中可显示发布的动态条目,点击进入可查看该动态的详细信息
输入项
发表的动态的文字、图片
处理描述
在应用的右上角的菜单栏中选择发布动态选项进入到发布动态界面,在输入框中输入动态文字,从图库中选择所要发布的照片,点击发布后会在动态界面和该动态的动态信息界面显示有关信息,并将动态的信息数据添加到数据库中的动态信息表中。
输出项
发布的动态信息显示在动态列表中,并可在该动态信息界面查看到详细信息
界面要求
最左上角是一个返回按钮,右上角是发布按钮,下方是一个文本输入框,输入框的下方区域是一个图标用于点击进入图库中选择图片或拍照,并显示
4.2.7聊天的详细设计
功能编号
07
功能名称
聊天
功能
描述
查看某位用户的某条动态的信息时可点击聊天按钮与该用户进行聊天,发送信息。
输入项
聊天的信息
处理描述
在某位用户发表的某条动态的动态信息界面中,点击聊天按钮,就会进入到与该用户聊天的界面,在输入框中输入信息点击发送按钮进行发送,聊天的信息数据会添加到数据库中的聊天信息表中。
输出项
显示自己发送的聊天信息,对方接收后回复信息并显示
界面要求
界面最左上角是一个返回按钮,它的右边是所要聊天的用户的用户名,最下方是一个文本输入框,它的右边是一个发送按钮,而中央的大区域则用来显示聊天信息。
4.2.8定位与路线规划的详细设计
功能编号
08
功能名称
定位与路线规划
功能
描述
定位到当前位置,显示地图并在地图上显示用户的当前位置,输入出发点和目的地进行路线规划,在地图上显示规划的路线
输入项
出发点和目的地名称
处理描述
在应用的底部导航栏中切换到导航模块,通过调用API接口进行定位到当前位置,分别在出发点和目的地输入框中输入名称,点击规划按钮,在地图上显示规划路线
输出项
显示定位的位置和规划路线
界面要求
XX地图视图:
显示地图
弹出吐司:
显示当前位置信息
两个输入框:
输入出发点、目的地名称
按钮名称:
规划
按钮功能:
进行路线规划
4.2.9导航的详细设计
功能编号
09
功能名称
导航
功能
描述
按路线规划时输入的出发点和目的地名称,点击导航按钮,进行导航
输入项
出发点、目的地名称
处理描述
在应用的底部导航栏中切换到导航模块,通过调用API接口进行,在出发点和目