基于iOS的远程视频监控系统的设计与实现.doc

上传人:文库蛋蛋多 文档编号:2394083 上传时间:2023-02-17 格式:DOC 页数:34 大小:6.76MB
返回 下载 相关 举报
基于iOS的远程视频监控系统的设计与实现.doc_第1页
第1页 / 共34页
基于iOS的远程视频监控系统的设计与实现.doc_第2页
第2页 / 共34页
基于iOS的远程视频监控系统的设计与实现.doc_第3页
第3页 / 共34页
基于iOS的远程视频监控系统的设计与实现.doc_第4页
第4页 / 共34页
基于iOS的远程视频监控系统的设计与实现.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《基于iOS的远程视频监控系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于iOS的远程视频监控系统的设计与实现.doc(34页珍藏版)》请在三一办公上搜索。

1、大连东软信息学院毕业设计(论文)论文题目:基于iOS的远程视频监控系统的设计与实现系 所: 计算机科学与技术系 专 业: 物联网工程 学生姓名: 杨雪 学生学号: 11111800120 指导教师: 孙建梅 导师职称: 完成日期: 2015 年 5 月 15 日 大连东软信息学院Dalian Neusoft University of Information基于iOS的远程视频监控系统的设计与实现摘 要自从2007 年苹果公司推出其第一代智能手机iPhone,iPhone逐渐的成为一种生活品质的象征,慢慢的越来越多的人在使用iPhone系列产品,例如iPhone ,iPad。作为iPhone用

2、户的一种娱乐方式,视频是不可缺少的一部分。很多人渴望使用一款智能,方便,可控性强的视频播放器,我们可以通过视频播放器得到我们想要的一切资源,我们可以看新闻,看故事,科普,感受大自然的奇妙,当我们工作之余,我们可以看些轻松的愉快的视频来缓解压力,并且通过看视频我们可以获取很多知识。视频带给我们的好处是非常多的,所以视频在我们的生活中有着不可取代的地位,那么怎么样是人们在用视频播放器的时候有更好的用户体验呢?这将是我们着重需要研究的。 本文描述了基于iOS的视频播放器类软件是如何设计与实现的,会将所用的播放器的简单实现做以介绍,本软件的特色是基于蓝牙等硬件,实现远程控制视频的快进 、暂停、播放的功

3、能,方便用户。和新浪微博登陆关联,使用“沙盒”机制,严格控制用户应用程序的访问权限,用户可以自己编辑观看纪录和收藏。有大量的最新的新闻视频搞笑视频等供用户观看,并有清除缓存功能方便用户管理内存。主要实现目标是远程控制:用户可以用手机远程控制pad上观看视频的进度并且自动播放:一段视频播放完了实现自动播放下一段视频。 关键词:视频,播放器,iOS,蓝牙,远程Design and Implementation of Tourism Software Based on iOSAbstractWith the improvement of peoples living standards, trave

4、l gradually become a way of life, an attitude to life, it has become an indispensable part of life. Travel, that is, from their own place to stay tired tired of people stayed places. You want to travel, whether such think? See backpackers constantly updated photos, ornate halls, there are timeless t

5、rickle, there are quite handsome mountains, there is pure snow, there are smiling people, crying people, lonely people . there are a lot of beauty in the small end of the lens that charm us, like a magic sound Du Mesa, let us not be satisfied with just a spectator travel. We also want to be desperat

6、e, go on the way.This article describes the iOS-based NoBorder how the software design and implementation, iOS API and SDK key classes and class methods and Xcode for iPhone OS platform and use this software to do a brief introduction, and highlighted the development of the application process to fo

7、cus on technology and software design process. NoBorder above to iOS6.0 operating system as a development platform, Xcode6.0.1 as a development environment, combined with peoples lives for the ideal travel ideas, conceived and completed a NoBorder Design and Implementation.NoBorder using a structure

8、d design methodology, set sights details Destination Search, Location Map, landing a comment to share in one, using sandbox as a local cache database, AVOS build server for login function; which, comment system also has to send comments by location, while the geographical latitude and longitude enco

9、ded as actual names, name and other names sights, attractions query module can search for points of interest within the range entered by the user depending on the location, more travel Raiders, and other functions; users can also use third-party lOGIN Sina microblogging landing, micro letter, QQ lan

10、ding, tourists can also choose the way anonymous login. Raiders travel cost savings, to avoid losses on the household economy, while allowing you to more easily enjoy the fun of travel.Key words: Tourism, Raiders, iOS, Xcode, Location Map目 录摘 要IABSTRACTII第1章绪 论51.1 论文研究主要内容51.2 开发背景及意义5第2章关键技术介绍62.1

11、 IOS操作系统简介62.2 Xcode开发环境简介62.3 程序开发环境搭建62.3.1 Xcode集成CocoaPods环境搭建62.3.2网络数据包获取paros环境搭建72.4 Objective-c中的关键类72.4.1 NSJSONSerialization72.4.2 AFNetworking82.4.3 SDWebImage9第3章系统分析103.1 构架概述103.1.1 功能构架103.1.2 模块需求描述103.2 用例图分析143.3 系统开发环境153.3.1 开发环境153.3.2 运行环境15第4章系统设计164.1 软件设计原则164.2 系统的功能结构设计16

12、4.2.1 MVC架构164. 3 “NoBorder”各个模块的E-R图174.3.1 推荐景点174.3.2 搜索目的地174.3.3 特价优惠184.3.4 地图定位184.3.5 更多菜单19第5章系统实现205.1 主界面框架搭建205.1.1 推荐景点模块225.1.2 目的地搜索模块245.1.3 特价优惠模块255.1.4 地图定位模块28第6章系统测试306.1 系统测试原则306.2 测试用例30第7章结论31参考文献32致 谢33第1章绪 论1.1 论文研究主要内容本课题采用iOS手机应用开发技术,在Xcode6.1.0 的平台下,进行研究开发。经过研究后,可以实现手机上

13、的诸多功能,其中新闻信息获取,在线选择路线,用户GPS定位三个模块,同时,该APP有着非常好的用户交互界面,操作简单,功能强大,让你足不出户即可享受世界美景,了解旅游行业动态,同时也可以帮您规划旅行路线,旅行行程等。不论是出门在外还是宅在家中,该APP都是理想的伴侣。本软件包含诸多模块:如系统推荐景点信息展示模块、用户搜索景点模块、景点特价优惠信息模块、地图定位模块、登陆分享评论模块、附近美食搜索模块等。论文从需求定义、软件体系结构设计、数据持久化方式、功能分析、关键代码解析、界面展示等方面对“NoBorder”做了详细的介绍。 1.2 开发背景及意义iOS操作系统从2011年的时候随着iPh

14、one4的发布开始被世人所重视,iOS凭借其独有的流畅性、安全性一直备受青睐,现在也成为三大移动终端的系统领导者。随着智能手机的广泛应用,智能手机现在有Windows mobile,Palm,Linux,iphone,Android 等操作系统,但是其中iOS操作系统的智能手机在中国市场所占份额最高。日常生活中我们经常在空闲的时候拿出手机玩,其中多媒体的应用很是广泛,像播放视频,播放音乐,浏览图片,这都是我们很关注的部分,多媒体的应用现在也很广泛,手机系统界面都很单一,传统,让人使用几次后就产生腻烦的感觉,而iOS系统有很好的用户体验型,以及有好的GUI图形交互界面。iOS系统不论从开发者的角

15、度还是用户的角度来是,都是一款极具潜力的操作系统。随着科技的发展和进步,现在越来越多的电子产品在走向微型化,智能化,人们对电子产品的移动性,便携性,多功能性等的要求越来越高,人们已经不仅仅局限于在家中使用这些设备,更多的是希望在任何时间任何场合都能使用它们,所以智能手机已经被当代人们广泛使用,很多人喜欢悠闲的听着音乐,欣赏多姿多彩的视频,所以手机上的应用程序已经成为人们闲暇时间最好的选择。我选择这个课题研究,是希望更加完善手机的功能,完成这个选题,可以让使我们的手机已经其他基于iOS系统的终端设备如iPod touch、iPhone、iPad等更好的为人们提供服务,满足人们日益增长的物质需求与

16、精神需求。第2章关键技术介绍2.1 iOS操作系统简介iOS(原名:iPhone OS)是由苹果公司为移动设备所开发的操作系统,支持的设备包括iPhone、iPod touch、iPad、Apple TV。与Android及Windows Phone不同,iOS不支持非苹果的硬件设备。2007年的1月9日苹果公司在Macworld大会公布iOS,并于同年6月29日发布了iOS的第一个版本。iOS使用基于与苹果麦金塔计算机不同的ARM架构的64位或32位中央处理器,使用由PowerVR视频卡渲染的OpenGL ES 3.0以Darwin作为基础。iOS系统架构层次分为核心操作系统层(the Co

17、re OS layer),核心服务层(the Core Services layer),媒体层(the Media layer),触控应用层(the Cocoa Touch layer)。2.2 Xcode开发环境简介Xcode是由美国苹果公司开发并授权的唯一可以编译iOS程序的非开源的集成开发环境。支持C语言、C+、Fortran、Objective-C、Objective-C+、Java、AppleScript、Python以及Ruby,还提供Cocoa、Carbon以及Java等编程模式。Xcode前身是继承自NeXT的Project Builder。Xcode使用GDB作为其后台调试工

18、具。从Xcode3.1开始便附带了iOS SDK,可供使用者开发iOS程序。Xcode的编译速度极快,开发效率非常高,众所周知,在构建中引进多重处理器可以提高速度,而Xcode 帮你实现这个明显的结论。利用支持 Rendezvous 的分布式构建功能,可以轻易地把编译工作量分散到闲置的电脑上来寄放构建,或者更好是在单独的电脑上开发一个专门的 Xserve 构建寄放区,快速处理耗时的任务。2.3 程序开发环境搭建2.3.1 Xcode集成CocoaPods环境搭建先安装Ruby环境,MAC系统下默认安装,只需将Ruby环境升级为最新版,在终端输入:$ gem update system它主要用于

19、升级本地Ruby环境,此时会出现ERROR: While executing gem . (Gem:FilePermissionError) You dont have write permissions for the /Library/Ruby/Gems/2.0.0 directory. zijingMacBook-Pro: shiyunlei$ sudo gem update system这个是因为你没有权限去更新Ruby这个时候你可以在终端使用:$ sudo gem update system来进行升级。安装CocoaPods时我们要访问cocoapods.org,该网站需要连接国外的

20、VPN,这样下载安装会受到限制,我们可以用淘宝的Ruby镜像来访问该网站,方法如下:1、gem sources -remove https:/rubygems.org/。2、gem sources -a http:/ruby.taobao.org/ 然后使用下面的命令查看是否更换镜像成功$ gem sources l。最后在终端输入命令:$ sudo gem install cocoapods等待过后便可完成安装。接着进行第三方类库的集成,该项目需要用到的第三方为SDWebimage、AFNetworking、高德地图SDK,首先使用search命令搜索类库,在终端输入$ pod search

21、 AFNetworking(以AFNetworking为例),终端会返回一个AFNetworking的所有版本的列表,然后使用命令$ cd /Users/shiyunlei/Desktop/CocoapodsSample 进入项目目录,cd后面的是项目的路径,接着使用$ touch Podfile创建Podfile文件,用vim编译器编译Podfile文件,输入如下命令$ platform:ios, 7.0,$ pod AFNetworking, 2.3.1并保存退出,最后使用命令$ pod install来完成AFNeteorking的安装,成功之后目录下便会新增一个以.xcworkspac

22、e为后缀的文件,打开即可同样的方法可以集成其他的第三方类。iOS开发证书配置是此项目能在真机上运行的前提之一。iOS有着很完善的规范的开发者机制,此项目使用的个人开发者账号,每个账号可以申请两个发布证书,用来在AppStore上发布自己的作品,和三个开发证书,用来进行真机测试。每个证书可生成一个对应的描述文件,该描述文件记录了此账号的状态以及所下挂的证书,进行真机调试前需要将,发布证书或者开发证书和描述文件导入Xcode中。然后再项目设置中的Build setting - code signing 中设置相应的证书以及描述文件,最后在运行设备中选择已经加入开发者的iOS设备,运行后便可进行调试

23、。2.3.2 网络数据包获取paros环境搭建此项目的所有接口为抓取其他同类App的网络数据包而来,因此需要在本机配置网络数据包劫持环境,该项目使用的工具为paros,首先该环境必须在安装有JDK的环境下使用,且手机与电脑必须在同一局域网络下,从官网下载JDK最新版,并配置环境变量即为JDK的安装路径,然后打开paros软件,在Tools - options - Local proxy下根据自己的ip地址来配置local host的ip地址,端口号为大于8080的任意数,然后进入手机设置-无线局域网设置已连接的网络,将代理改为手动,其中的ip地址和端口号要与paros所设置的完全一致,此时在i

24、phone上运行程序的同时便可以在paros中获得相应的网络数据包。可在Xcode中使用NSJSONSerialization或者NSXMLParser类对其进行进一步的解析。程序运行和会在下方的console有输出显示程序状态。2.4 Objective-c中的关键类2.4.1 NSJSONSerializationNSJSONSerialization,ios5中apple增加了解析JSON的api-NSJSONSerialization。NSJSONSerialization在效率上远远超越了SBJSON、TouchJSON、YAJL、JSONKit、NextiveJson。因为作为苹果

25、自带的JSON数据解析类,它更好的兼容了iOS的内存管理机制,JNSJSONSerialization提供了将JSON数据转换为Foundation对象一般都是NSDictionary和NSArray和Foundation对象转换为JSON数据,可以通过调用isValidJSONObject来判断Foundation对象是否可以转换为JSON数据。该类提供非常便捷的数据类型转换方法,尤其在涉及到网络数据与本地数据相互转化方面和跨平台语言编程方面有着很高的效率,利用NSJSONSerialization可将JSON转换成Foundation对象,也能将Foundation对象转换成JSON,转换

26、成JSON的对象必须具有如下属性:1.顶层对象必须是NSArray或者NSDictionary;2.所有的对象必须是NSString、NSNumber、NSArray、NSDictionary、NSNull的实例;3.所有NSDictionary的key必须是NSString类型;4.数字对象不能是非数值或无穷。NSDictionary中的key就是json字符串中的key,object就是json字符串中的value,isValidJSONObject:方法是检测Foundation对象能否合法转换为JSON对象,dataWithJSONObject:options:error方法是将Fou

27、ndation对象转换为JSON对象,参数NSJSONWritingPrettyPrinted的意思是将生成的json数据格式化输出,这样可读性高,不设置则输出的json字符串就是一整行。2.4.2 AFNetworking该项目会从网络上请求数据,所有的数据都从网络接口中来,因此用到了大量的网络请求,AFNetworking是一个轻量型的第三方网络库,适用于iOS以及Mac OS X. 它构建于在NSURLConnection, NSOperation, 以及其他熟悉的Foundation技术之上. 它拥有良好的架构,丰富的api,以及模块化构建方式,使得使用起来非常轻松。他可以非常便捷和迅

28、速的从一个url来得到json数据,并以NSMutableDictionary的形式返回,采用Block语法进行回掉。为了更好的处理向Web站点的请求,包括处理Session,Cookie等细节问题,使用AFNetworking则是更好的选择,他可以用于发送HTTP请求,接收HTTP的响应,但是不会缓存服务器的响应,不能执行HTML页面中的JAvascript代码,同时,AFNetworking还内置支持JSON,plist文件和XML文件的解析,使用比较方便。使用之前需要实例化一个AFHTTPRequestOpeartionManger对象,根据服务器内容的不同,为AFHTTPRequest

29、OpeartionManger对象指定不同的解析格式,该对象默认的解析格式是JSON和Plist文件解析器。发送GET请求用:Manager对象调用 GET:parameters:success:failure:方法即可,success代码块和failue代码块在网络请求成功/失败过后调用。2.4.3 SDWebImageSDWebImage是iOS平台上非常优秀的异步加载图片的第三方类库,这个类库提供一个UIImageView类别以支持加载来自网络的远程图片同时支持GIF动画,通过对UIImageView的类别扩展来实现异步加载替换图片的工作,同时该类还具有缓存管理、异步下载、同一个URL下

30、载次数控制和优化等特征。它支持64位,因为使用苹果自带的GCD多线程机制,所以可以保证在加载大量图片的情况下主线程永远不会被堵塞,同时具有很完善的缓存管理功能,使同样的地址不会被请,也不会造成内存泄漏等问题,其中大部分使用category类目来完,如UIImage+GIF.h、UIButton+WebCache、UIImage+MultiFormat等,在使用的时候首先需要引入头文件#import“SDWebImag.h”,然后使用- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder或- (vo

31、id)setImageWithURL:(NSURL *)url forState:(UIControlState)state placeholderImage:(UIImage *)placeholder方法来完成异步加载图片的操作,同时可以使用该类自带的占位图获得更好的体验效果。大致的使用步骤如下:(1)加载图片准备入口 setImageWithURL:placeholderImage:options: 会先把 placeholderImage显 示,然后 SDWebImageManager 根据 URL 开始处理图片。(2)检查本地缓存进入SDWebImageManager-downloa

32、dWithURL:delegate:options:userInfo:,查找本地图片是否存在 queryDiskCacheForKey:delegate:userInfo。(3)展示图片如果内存中已经有图片缓存, 则回调 imageCache:didFindImage:forKey:userInfo: 到SDWebImageManager。如果没有缓存则SDWebImageManagerDelegate回调 webImageManager:didFinishWithImage: 到 UIImageView+WebCache等前端展示图片。(4)将图片缓存将图片保存到 SDImageCache中

33、,内存缓存和硬盘缓存同时保存。写文件到硬盘 也在以单独 NSInvocationOperation完成,避免拖慢主线程。第3章系统分析3.1 构架概述3.1.1 功能构架经过需求分析,结合自己的所掌握的编程技巧,确定“NoBorder”的功能为推荐景点、搜索目的地、特价优惠、地图定位,更多菜单,其中更多菜单又分为今日新闻、附近美食、我要登陆、说点什么,功能层次图如图3.1所示。图3.1 系统功能层次图3.1.2 模块需求描述该应用是一款和旅行类有关的APP,本软件界面友好,功能完善,用户可以通过此APP了解到当今现代的旅游行情,其中包含的新闻功能可使用户不出家门便可尽知天下事,同时当用户出门在

34、外的时候,还可以帮助用户定位当前的地理位置,显示当前的坐标,同时以自身坐标为圆心搜索附近的美食,包括美食的做法,同时还有评论功能,用户可以在论坛上自己发言,发表对景点以及其他事件的一些看法。让游客互动,是出门在外的必备应用。本应用做了本地存储,并没有使用通常的splite数据库,而是使用了iOS所特有的沙盒机制sandbox作为本地持久化的方法,因为沙盒机制会比数据的效率更高,他可以直接将App信息存储到sandbox的根目录下,而且移动端的开发对iOS ipa包的大小有着严格地限制,并且此App并没有太多复杂的数据,且不需要对数据进行过多的操作,只需要将数据存入本地,在没有接入互联网的时候会

35、显示本地数据。因此使用sandbox来代替数据库splite以达到更好的目的。更多菜单里面包含了附近美食、当日新闻、评论列表、登陆模块,其中附近美食考虑到不同的旅游景点不仅仅有不同的景色,同时也有当地的美味食物,特色小吃,而这些也是旅行中不可缺少的,通过附近美食,用户可以对当地美食文化的一个深入了解,同时也可以学会美食的详细做法。当天新闻可以让用户在旅行的途中或者是家中浏览当天所发生的事情。评论列表可以让用户发表自己对App的或者是对景点的一下见解,让用户与用户间更好的交流。登录模块分为第三方登录和匿名登陆。用户登录后可进行发言。第三方包括微信、QQ、人人、豆瓣等第三方登陆平台。如上图3.1所

36、示,“NoBorder”从推荐景点、登录、评论、地图定位四大模块进行分析,这些模块根据不同的设计从而实现不同功能,下面分别阐述每个模块具体功能。(1)推荐景点推荐景点模块功能结构图如图3.2所示。 图3.2 推荐景点功能结构图推荐景点页面共有以上六种功能,强力推荐景点为每隔一段时间App会自动为用户推荐四到五个热门景点,以UIScrollView滚动条的方式展现出来,用户点击进入可查看景点详情;最新热门游记模块为一些旅行达人把自己的行程感受,分享出来,包括目的地景色、目的地路线、门票价格等信息,供其他旅客浏览,同时下方的评论列表也可看到其他人的看法和意见;每日精选图片主要提供者了一些美丽景色的

37、图片和其出处供大家参考,用户可以根据图片来判断自己是否喜欢最终决定是否前往,节省了时间的同时也帮用户更好的制定旅行计划;旅行达人推荐模块会把定期评选出来的旅行达人展示出来,包括达人所旅行过的景点,今日旅行专题模块每天会给用户推荐一个城市,用户可以看到这个城市中所有的著名景点以及风土人情,同时还可显示推荐游览顺序避免绕路;本周线下活动模块显示了官方所组织的一些活动,用户可根据自己的喜好选择相应的活动,查看活动详情及报名方式等。(2)登录模块登录模块集成了多种登录方式,包括新浪、腾讯等国内一些主流的社交平台账号登陆,登陆之前会先判断用户是否已经登录,如果已经登录这直接显示登录用户的信息,其功能结构

38、如图3.3所示。图3.3 登录模块功能结构图(3)评论模块评论模块可以让用户发表自己对App的或者是对景点的一下见解,让用户与用户间更好的交流,其模块功能如图3.4所示。图3.4 评论模块功能结构图评论模块可以判断用户的登录状态如果用户已经登录,则使用用户的用户名来发表。如果用户没有登录,则会提示用户先登录或者使用游客身份来发表自己的看法。此登录系统使用的是Single Sign On(SSO)单点登录模式,即用户只需要登陆一次便可进行发帖,不管程序运行与否,只要用户没有点击登出之前,用户可一直使用所登陆的账号。避免了每次打开软件都需要登录的繁琐步骤,同时使用第三方登录时候支持第三方App跳转

39、,如果手机中没有第三方App,则会以UIWebView的形式让用户登录,达到同样的效果。(4)地图定位模块地图定位模块可以让用户知道自己的实时位置信息,同时地图可以以三种方式展现出来,包括卫星地图模式、标准地图模式、混合地图模式,起到一个给用户引导的作用。其模块功能如图3.5所示。图3.5 地图定位模块功能结构图3.2 用例图分析 系统用例图如图3.6所示。图3.6 系统用例图通过系统用例图来编写用例,详细信息如表3.1至3.5所示。表3.1 推荐景点例描述表用例名称推荐景点参与者用户用例概述用户点击UITabBar上的“推荐”选项,进入推荐景点界面 前置条件成功打开软件,网络连接正常基本事件

40、流1. 点击“推荐”选项2. 显示推荐景点的主界面表3.2 搜索目的地用例描述表用例名称搜索目的地参与者用户用例概述用户点击“目的地”图标,主页面便会跳转到目的地界面,用户可以通过上方的UISearchBar输入想要搜索的内容前置条件网络连接正常基本事件流1 点击“目的地”选项2 查看默认的目的地列表3 用户搜索目的地后显示搜索结果表3.3 特价优惠例描述表用例名称特价优惠参与者用户用例概述用户点击“特价优惠”选项,显示所有优惠信息,同时用户可从上方的选项卡中按照自己的要求筛选所需要的内容。前置条件网络连接正常基本事件流1. 点击“特价优惠”2. 进入特价优惠界面3. 通过上方选项卡筛选表3.

41、4 地图定位用例描述表用例名称地图定位参与者用户用例概述点击“地图定位”图标,同时允许App使用您的位置信息前置条件网络连接正常,已经授权App使用手机位置信息基本事件流1. 点击“地图”2. 允许App获取位置信息3. 查看自己的位置表3.5 更多菜单用例描述表用例名称更多菜单参与者用户用例概述回到“推荐景点”页面,点击“更多菜单”图标 前置条件网络连接正常,回到推荐景点页面基本事件流1. 点击推荐景点2. 点击更多菜单3.3 系统开发环境3.3.1 开发环境(1)操作系统和开发语言:Mac OS X Yosemite 10.10.2,Objective-c。(2)开发工具:Xcode 6.

42、0.2。3.3.2 运行环境(1)ARM 9开发板型号:S5PA210。(2)操作系统:iOS 6.0以上。(3)硬件参数:CPU :苹果A6 Imagination PowerVR SGX543 MP3、主频1Ghz,DDRII:1GB、屏幕尺寸4.0英寸。(4)模拟器硬件参数:CPU:Intel Core i5、主频:2.9GHz、内存:8 GB 1867 MHz DDR3,图形卡:Intel Iris Graphics 6100 1536 MB。第4章系统设计4.1 软件设计原则“NoBorder”设计严格遵循软件工程设计原则,满足以下标准。(1)可靠性和健壮性软件功能健全,内存管理得当

43、,不会出现内存访问错误或者程序异常崩溃的问题;并且对于不合法数据,都做了得当的处理,不会影响程序的正常运行。(2)可修改性从需求分析、用例分析到数据库设计、软件结构设计到最终的实现和测试,都有详细且严密的文档,符合科学的设计方法,系统性能易于调整。(3)容易理解、程序简便软件的变量的声明和方法的定义采用有意义的英文单词或词组,尽可能采用iOS SDK及公开API提供的库函数来实现具体的功能,摒弃了复杂算法语句的堆砌,和私有API,将完成某个功能的语句封装成方法,调用简便,语意连贯,简单明了。(4)可测试性对于任意一组数据集合,程序都能给出正常的应答。(5)可扩展性软件设计时考虑到未来功能的不断

44、完善,采用模块化设计方法,具有高内聚的特点,接口与实现分离便于扩展。(6)标准化原则程序的设计与实现均基于业界开放式标准,符合国家和信息产业部的规范。4.2 系统的功能结构设计“NoBorder”总体功能结构架构从进入系统、推荐景点、搜索目的地、特价优惠、地图定位、附近美食、当日新闻、登陆评论等这些方面来搭建,总体符合软件工程中高内聚、低耦合的结构原则。4.2.1MVC架构MVC全名是Model ,View ,Controller,是模型视图和控制器的缩写,一种软件设计典范,用一种业务的逻辑数据来显式分离的方法组织代码,将业务逻辑聚集到一个部件里面,在界面和用户围绕数据的交互能被改进和个性化定

45、制的同时而不需要重新编写业务逻辑。MVC被的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构如图MVC框架结构图4.1所示。图4.1MVC框架结构4. 3 “NoBorder”各个模块的E-R图4.3.1 推荐景点用户通过点击进入推荐景点页面后,系统会自动使用网络协议AFNetworking下载数据,然后使用SDWebImage类将下载后数据的异步加载到界面上,该模块分为强烈推荐、最新热门游记、每日精选图片、旅行达人推荐、今日旅行专题、本周线下活动六个板块,其E-R图如图4.2所示。图4.2 推荐景点E-R图4.3.2 搜索目的地用户进入目的地界面后,可以看到一些系统

46、默认显示地点和其所对应的景色图片,上方的搜索栏可供用户搜索自己喜欢的地方,输入之后便会跳转到详情页,用户可浏览所搜索的景点的信息,搜索目的地模块的E-R图如图4.3所示。图4.3 目的地搜索E-R图4.3.3 特价优惠用户进入特价优惠界面后可以看到系统默认推荐的优惠信息,同时用户还可以根据上方的选项卡来根据自己的需要对数据进行筛选,点击进入详情用户可看到更多的关于优惠的信息。特价优惠模块E-R图如图4.4所示。图4.4 特价优惠E-R图4.3.4 地图定位用户进入地图定位界面首先会看到一张地图,然后左上角的按钮可以快速定位自己的位置,并显示出来,让用户一目了然,同时右上角的地图类型按钮提供了卫

47、星地图、标准交通地图、混合地图三种地图类型供用户选择,地图支持手势两支缩放等功能,可根据用户的行进速度实时更新地理位置坐标。地图定位模块E-R图如图4.5所示。图4.5 地图定位模块E-R图4.3.5 更多菜单用户回到推荐景点页面,点击左上角的更多菜单按钮,界面便会向右侧偏移一定的距离,露出附近美食、当日新闻、说点什么、我要登陆四个功能按钮,用户点击任何一个按钮便会进入相应的功能,附近美食会帮助用户查看当地的美食,以及美食的做法,当日新闻则会告诉用户今天所发生的事情,说点什么是用户交流的一个平台,用户可以在这里发表自己的看法,我要登陆则提供了登录功能,用户可以选择匿名方式或者第三方社交软件登录。更多菜单模块E-R

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号