1、基于IOS的IPHONE手机定位应用程序的设计与实现摘 要随着移动互联网的发展,各种移动应用也不断地出现在人们的视线中,利用最新的技术可以将人们带入更加智能的时代。而基于IOS定位的应用程序,可以很好的为人们的出行、生活提供方便。该定位程序是基于IOS系统使用Xcode集成编译环境和Objective-C语言以及SQLite数据库设计并实现的较为完善的定位应用程序。该应用程序能够实现的功能大致有:定位当前的位置;搜索一个自己指定的位置;收藏自己需要的位置并且可以将该位置添加一些附加信息;可以在自己的位置或者指定的位置添加标志物等详细信息;删除收藏位置;新手使用指南;意见反馈;到App stor
2、e上将该应用程序评分等等一系列功能。关键词 软件工程/数据库/Objective-C/Xcode/SQLiteLocation-based Applications for Design andImplementationABSTRACTWith the development of mobile Internet, a variety of mobile applications continue to appear in the peoples attention, using the latest technology to bring people into a more intell
3、igent era. IOS-based positioning applications, can be very good for people to travel, facilitate life. The mapping procedure is based on the IOS system using Xcode Integrated Environment and Objective-C language, and SQLite database design and realization of more perfect location-based applications.
4、 Function largely of the application can be achieved:to locate the current position; search a specified location; collection of the desired location and the location to add some additional information; can add markers, etc. in their own location or the location specified more information; delete fav
5、orite locations; novice user guide; feedback; to the App store on the application score a series of functions.KEY WORDS soft project,database,Objective-C,Xcode,SQLiteII基于IOS的IPHONE手机定位应用程序的设计与实现目 录摘 要IABSTRACTII目 录11 绪论41.1 有关定位的背景41.2 定位开发的意义41.3 论文的组织结构52 应用程序相关技术62.1 软件工程62.2 Cocoa技术72.2.1 Cocoa简
6、介72.2.2 Cocoa的特征72.3 Objective-C语言92.3.1 Objective-C语言简介92.3.2 Objective-C语言的特征92.4 定位技术102.5 API技术112.5.1 API简介112.5.2 API种类112.5.3 用于移动开发定位API介绍122.6 Xcode集成开发环境132.7 数据库技术143 论坛设计分析153.1 可行性分析153.1.1 经济可行性153.1.2 技术可行性153.1.3 操作可行性163.1.4 法律可行性163.2 需求分析163.2.1 业务流分析163.2.2 数据流分析173.3 数据字典183.3.1
7、 应用程序的数据字典184 系统功能模块划分设计204.1 设计环境204.2 设计思想204.3 系统功能模块划分205 数据库设计215.1 数据库需求分析215.2 数据库概念结构设计215.3 数据库逻辑结构设计226 应用程序的界面设计236.1 应用程序主界面236.2 我的收藏界面246.3 自选位置界面266.4 当前位置界面306.5 更多界面316.5.1 新手使用指南界面316.5.2 意见反馈界面326.5.3 到APP Store评分界面326.5.4 版本信息界面32毕业设计小结34致 谢35参考文献361 绪论1.1 有关定位的背景随着移动互联网的兴起,智能手机的
8、发展日益迅速,近两年来得到了巨大发展,但是移动互联网刚刚处于起步阶段,智能手机的应用程序还不是很丰富,所以在智能手机的应用开发上具有巨大的市场前景。手机定位是指通过特定的定位技术来获取移动手机或终端用户的位置信息(经纬度坐标),在电子地图上标出被定位对象的位置的技术或服务。定位技术有三种,一种是基于GPS的定位,一种是基于移动运营网的基站的定位以及Wi-Fi热点。基于GPS的定位方式是利用手机上的GPS定位模块将自己的位置信号发送到定位后台来实现手机定位的。基站定位则是利用基站对手机的距离的测算距离来确定手机位置的。基站定位不需要手机具有GPS定位能力,但是精度很大程度依赖于基站的分布及覆盖范
9、围的大小,GPS定位精度较高。在地图上有研究比较突出研究的有Google公司的Google Earth,它于2005年向全球推出,可以看到全世界范围内的三维图像。在国内,百度地图也比较突出。在智能手机上电子地图从一出现都广受人们的喜爱,它可以将整个地图都放在手机上,小巧美观,便于携带,放在口袋里随时随地的进行查询1。人们从传统的纸质地图发展到现在的已经离不开电子地图了。1.2 定位开发的意义传统互联网由电话线或光纤接入,每年大量的资金与人力用于铺设线路,从而增加了使用费用,而生产这些物资又牵扯到大气污染,矿产消耗。移动互联网则有着很多的优势,首先无线无需线路铺设,节约了材料与人工成本,所以使用
10、费用将会更低;虽然无线发射装置可能会产生一些电磁辐射,但所有的发射功率都在国际标准内,对人体和空气不会产生不良影响;当前社会的主题是:环保、节能、低碳,单从这个角度来说移动互联网必然成为各国通信业的首选。移动互联网目前已开发至第3代,也就是我们说的3G,3G标志着移动通信业的开始,网络也随之被引入这个领域,紧随3G之后的4G传输速度是3G的2000倍,足以满足用户的网络使用需求,这已不是新闻,目前主要移动终端设备是3G手机、笔记本电脑;手机是每人必须品,加上一天比一天强大的功能必然成为主流设备。日常生活出行,地图是必不可少的工具,现在我们可以将其融合在小小的应用程序中,存放在手机上,方便我们的
11、生活和出行。当自己处在一个完全陌生的地方的时候,可以用来定位当前的位置,可以获取当前位置的标志物,让自己清楚自己所在的位置。也可以搜索到附近的标志物,也可以找到自己想找的任何地点,以及该地点附近的标志物。让人们的出行更加的方便。1.3 论文的组织结构第二章主要技术及其分析,简单介绍开发手机定位应用程序所用到的技术和工具,并对其简单的进行介绍和分析。第三章需求分析,介绍整个程序的可行性分析、系统功能分析及数据流分析和业务流程分析。第四章概要设计,简单的介绍各个模块的划分及功能,以及所用到的技术。第五章数据库设计,具体论述该应用程序中的数据库的创建。第六章应用程序的界面设计,介绍了该应用程序中重点
12、包括的一些界面的效果图。第七章主要包括一部分重点程序代码,一些程序的源代码更详细的说明各模块是怎样实现的。2 应用程序相关技术完成这样一个基于定位应用程序的设计应该有软件工程、数据库、Cocoa框架及相关的开发环境,主要采用Objective-C语言、定位技术、API技术、Xcode、SQlite数据库等技术和工具,下面就对这几种技术和方法做一个概述。2.1 软件工程软件工程 (Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。软件工程是研究和应用
13、如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。设计活动一般包括概要设计和详细设计。概要设计建立整个软件体系结构,包括子系统、模块以
14、及相关层次的说明、每一模块接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。支持活动包括修改和完善。伴随以上活动,还有管理过程、支持过程、培训过程等。 软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。软件工程的原则有以下四项基本原则: 1. 选取适宜开发范型。2. 采用合适的设计方法。 3. 提供高质量的工程支持。4. 重视开发过程的管理。软件工程的七条基本原理:1. 用分阶段的生命周期计划严格管理把软件生命周期
15、分成若干阶段,并相应制定出切实可行的计划,然后严格按照计划对软件的开发和维护进行管理。2. 坚持进行阶段评审坚持进行严格的阶段评审,以便尽早发现错误。 3. 实行严格的产品控制需求的改动往往是不可避免的。这就要求我们要采用科学的产品控制技术来顺应这种要求。当需求变动时,其它各个阶段的文档或代码随之相应变动,以保证软件的一致性。4. 采纳现代程序设计技术采用先进的技术即可以提高软件开发的效率,又可以减少软件维护的成本。 5. 结果应能清楚地审查应根据软件开发的总目标及完成期限,尽量明确地规定开发小组的责任和产品标准,从而使所得到的标准能清楚地审查6. 开发小组的人员应少而精开发人员的素质和数量是
16、影响软件质量和开发效率的重要因素,应该少而精。这一条基于两点原因:高素质开发人员的效率比低素质开发人员的效率要高几倍到几十倍,开发工作中犯的错误也要少的多;当开发小组为N人时,可能的通讯信道为N(N-1)/2, 可见随着人数N的增大,通讯开销将急剧增大2。7. 承认不断改进软件工程实践的必要性 软件工程中包含需求、设计、编码和测试四个阶段,其中需求工程是软件工程第一个也是很重要的一个阶段。软件工程正在向敏捷开发和面向侧面的程序设计发展。2.2 Cocoa技术2.2.1 Cocoa简介Cocoa是苹果公司为Mac OS X所创建的原生面向对象的编程环境,是Mac OS X上五大API之一。苹果的
17、面向对象开发框架,用来生成 Mac OS X 的应用程序。主要的开发语言为 Objective-C, 一个C的超集。2.2.2 Cocoa的特征1. Cocoa环境的第一个特点是它可以管理动态分配的内存。Cocoa中绝大部分类的基类都是NSObject,它实现了引用计数的内存管理模型。从NSObject继承的类可以响应retain和release消息,以增减其引用计数;也可以通过发送retainCount消息来获取其引用计数。一个以alloc,copy或Objective-C 2.0中增加的new所创建的对象的引用计数为1;向对象发送retain消息会将计数加1,而发送release消息则会将
18、计数减1。若对象的引用计数减少到了0,则它会被销毁。2. Cocoa包含两个主要的Objective-C对象库,称为“框架”。框架的功能类似于动态库,即可以在运行时动态的载入应用程序的地址空间,但框架作为一个捆绑 (计算机)而非独立文件,其中除了可执行代码外,也包含了资源,头文件和文档。常用的有:“应用程序工具包”,简称为Foundation,或称AppKit是直接衍生自NeXTSTEP的AppKit的。它包含了程序与图形用户界面交互所需的代码。它是基于Foundation建立的,也使用“NS”前缀,它只能在Mac OS X中使用;“用户界面工具包”,或称UIKit,是用于iOS的图形用户界面
19、工具包。与AppKit不同,它使用“UI”的前缀。3. 模型-视图-控制器即MVC模式。Cocoa的设计遵循了严格的MVC原则。这种模式将应用程序分为三个可以交互的对象集,即模型,视图和控制器。其中,模型类代表原始数据,例如文档、设置、文件、内存中的对象等,视图是模型中数据的可视化表现,而控制器类则包含了将模型和其对应视图连接起来的逻辑,并保持前二者的状态同步。4. 动态绑定。通过动态绑定特性,增加了更多的设计的自由性。在Objective-C中,消息由selector所代表,其为描述需要调用的方法的一个字符串。在发送消息时,该selector被送入Objective-C运行时中,在可用方法列
20、表中寻找对应的方法,然后调用该方法的实际实现。由于selector只是文本数据,因此它可以保存在文件中,通过网络或在进程间传输,或以其它方式进行操作。方法的实现是在运行时查找的,而非编译时。这样的做法会造成一些性能损失,但动态绑定允许相同的selector代表不同的实现。5. Rich objects。Cocoa中最有用的特性是系统提供的强大的“基础对象”。 例如Foundation中的NSString和NSAttributedString类,提供了Unicode字符串的支持;而AppKit中的NSText系统则允许程序员在GUI中放置字符串对象3。2.3 Objective-C语言Objec
21、tive-C,通常写作Objective-C和较少用的Objective C或Objective-C,是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。2.3.1 Objective-C语言简介Objective-C在ANSIC编程语言之上定义了一个小而强大的扩展集。有了它,可以使用面向对象技术编写程序。Objective-C是Cocoa的本地编程语言,Coaco框架和大多数应用程序都使用该语言编写而成。但是也可以使用Python、Ruby等其他编程语言开发应用程序,并且此种开发
22、方式也可使用Cocoa框架。不管怎么说,对Objective-C有起码的了解相当有益,因为通常情况下,苹果的文档和样例代码都依照该语言进行编写。由于Objective-C直接架构于ANSIC之上,因此可以在Objective-C代码里混合使用C代码。另外,也可以在Cocoa代码中调用非Cocoa编程接口定义的函数,例如可以调用/usr/include里面的BSD库接口。甚至可以在Cocoa代码中混合使用C+代码,并将整个代码链接到可执行文件。2.3.2 Objective-C语言的特征Objective-C是非常“实际”的语言。它使用一个用C写成、很小的运行库,只会令应用程序的大小增加很小,和
23、大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。Objective-C写成的程序通常不会比其原始码大很多。而其函式库(通常没附在软件发行本)亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反4。Objective-C的最初版本并不支持垃圾回收。在当时这是争论的焦点之一,很多人考虑到Smalltalk回收时有漫长的“死亡时间”,令整个系统失去功用。Objective-C为避免此问题才不拥有这个功能。虽然某些第三方版本已加入这个功能(尤是GNU step),Apple在其Mac OS X 10.3中仍未引入这个功能。不过令人欣慰的是在Apple发布的XCode4中已
24、经支持自动释放,但这并不是垃圾回收,因为两者机制不同,在XCode4中的自动释放,也就是ARC(Automatic Reference Counting)机制,是不需要用户手动去Release一个对象,而是在编译期间,编译器会自动帮你添加那些以前你经常写的NSObject release。另一个问题是Objective-C不包括命名空间机制(namespace mechanism)。取而代之的是程序设计师必须在其类别名称加上前缀,时常引致冲突。在2004年,在Cocoa编程环境中,所有Mac OS X类别和函式均有“NS”作为前缀,例如NSObject或NSButton来清楚分别它们属于Mac
25、 OS X核心;使用“NS”是由于这些类别的名称在NeXTSTEP开发时定下。虽然Objective-C是C的母集,但它也不视C的基本型别为第一级的对象。和C+不同,Objective-C不支援运算子多载(它不支持ad-hoc多型)。亦与C+不同,但和Java相同,Objective-C只容许对象继承一个类别(不设多重继承)。Categories和protocols不但可以提供很多多重继承的好处,而且没有很多缺点,例如额外执行时间过重和二进制不兼容。由于Objective-C使用动态运行时类型,而且所有的方法都是函数调用(有时甚至连系统调用(syscalls)也如此),很多常见的编译时性能优化
26、方法都不能应用于Objective-C(例如:内联函数、常数传播、交互式优化、纯量取代与聚集等)。这使得Objective-C性能劣于类似的对象抽象语言(如C+)。不过Objective-C拥护者认为既然Objective-C运行时消耗较大,Objective-C本来就不应应用于C+或Java常见的底层抽象。2.4 定位技术目前最常用的定位方式有:GPS定位、基站定位、Wi-Fi定位三种定位方式。根据不同的情况,可能会混合使用。常见的GPS定位的原理可以简单这样理解:由24颗工作卫星组成,使得在全球任何地方、任何时间都可观测到4颗以上的卫星,测量出已知位置的卫星到用户接收机之间的距离,然后综合
27、多颗卫星的数据就可知道接收机的具体位置。在整个天空范围内寻找卫星是很低效的,因此通过 GPS 进行定位时,第一次启动可能需要数分钟的时间。这也是为啥我们在使用地图的时候经常会出现先出现一个大的圈,之后才会精确到某一个点的原因。不过,如果我们在进行定位之前能够事先知道我们的粗略位置,查找卫星的速度就可以大大缩短。GPS系统使用的伪码一共有两种,分别是民用的C/A码和军用的P(Y)码。民用精度约为10米,军用精度约为1米。GPS的优点在于无辐射,但是穿透力很弱,无法穿透钢筋水泥。通常要在室外看得到天的状态下才行。信号被遮挡或者削减时,GPS定位会出现漂移,在室内或者较为封闭的空间无法使用。正是由于
28、GPS的这种缺点,所以经常需要辅助定位系统帮助完成定位,就是我们说的AGPS(无线网络辅助GPS定位技术)。例如 IPhone就使用了AGPS,即基站或Wi-FiAP初步定位后,根据机器内存储的GPS卫星表来快速寻星,然后进行GPS 定位。在移动通信网络中最早就是基站定位(cell ID定位)的,它是通过识别网络中哪一个小区传输用户呼叫并将该信息翻译成纬度和经度来确定用户位置,其精度取决于移动基站的分布及覆盖范围的大小。Cell ID实现定位的基本原理:即无线网络上报终端所处的小区号(根据服务的基站来估计),位置业务平台把小区号翻译成经纬度坐标。基本定位流程:设备先从基站获得当前位置(Cell
29、 ID)。(第一次定位)然后设备通过网络将位置传送给AGPS位置服务器,AGPS服务器根据位置查询区域内当前可用的卫星信息,并返回设备。 最后设备中的GPS接收器根据可用卫星,快速查找可用的GPS卫星,并返回GPS定位信息5。Wi-Fi 定位技术是最近一段时间兴起的一种定位技术,一次成功的定位需要两个先决条件:客户端能上网,数据库里有侦听到的Wi-Fi热点的坐标。设备只要侦听一下附近都有哪些热点,检测一下每个热点的信号强弱,然后把这些信息发送给网络上的服务端。服务器根据这些信息,查询每个热点在数据库里记录的坐标,然后进行运算,就能知道客户端的具体位置了。2.5 API技术2.5.1 API简介
30、应用程序接口(Application Programming Interface,简称:API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。应用程序接口为:“电脑操作系统(Operating system)或程式函式库提供给应用程式呼叫使用的程式码”。其主要目的是让应用程式开发人员得以呼叫一组例程功能,而无须考虑其底层的源代码为何、或理解其内部工作机制的细节。API本身是抽象的,它仅定义了一个接口,而不涉入应用程式如何实现的细节。应用程序接口经常是软件开发工具包(SDK)的一部分。由于软件的日益庞大,常常会需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践
31、中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。2.5.2 API种类目前API大致可以分为四种类型:1. 远程过程调用(RPC):通过作用在共享数据缓存器上的过程(或任务)实现程序间的通信。2. 标准查询语言(SQL):是标准的访问数据的查询语言,通过通用数据库实现应用程序间的数据共享。3. 文件传输:文件传输通过发送格式化文件实现应用程序间数据共享。4. 信息交付:指松耦合或紧耦合应用程序间的小型格式化信息,通过程序间的直接通信实现数据共享6。2.5.3 用于移动
32、开发定位API介绍基于互联网的应用正变得越来越普及,在这个过程中,有更多的站点将自身的资源开放给开发者来调用。对外提供的API 调用使得站点之间的内容关联性更强,同时这些开放的平台也为用户、开发者和中小网站带来了更大的价值。而常用于地图开发的Google还有街旁网API就是公开的。定位API的目的就是开发具有定位功能的设备的应用程序。根据设备的自然情况,API提供利用设备的方法。另外,定位API是很多易用的类和接口的压缩包,其在开发移动应用程序的时候具有以下三个特点:1. 设备的位置信息。2. 建、编辑、存储、销毁陆标。3. 取设备的定位。4. 定位API首先需要连接一个定位方法,利用定位方法
33、产生定位对象,每种定位方法都不一样。主要有2.4中介绍的三种定位方式。定位服务是利用用户的物理位置提供额外服务的应用程序。利用定位信息可以实现很多目的,常见的有:1. 地图,导航,以及结合指导功能的方位的应用。2. 跟踪和管理应用。3. 交互式游戏和服务,比如体育新闻和报道。4. 根据所在位置寻找附近目标位置。5. 天气预报。API中的坐标有纬度、经度和海拔组成。(这里,海拔就是搞出海平面的高度。)在任何API应用程序中都必须检测如何定位北极。地磁中的北极点就是磁场的北极点,北极点并非精致不动的,而是每年都有数公里的移动,地球两极并非对称,因为南北极点的移动式独立的。北极点的定位是根据纬度制定
34、的。2.6 Xcode集成开发环境Xcode是苹果公司在Mac OS X下的集成开发环境(IDE)引擎。它负责处理从最开始到工程的最终部署这一过程中的大多数细节,通过与 Cocoa 和 Cocoa Touch 框架紧密结合,在开发 Mac 和 IPhone 程序方面,Xcode 是一个令人难以置信的高效的集成开发平台。Xcode 是一个完整的全功能的 IDE,并集成了从源代码的编辑,编译和构建,到图形化的调试一整套工作流所有这些都无需离开源代码视图。Xcode 所能做到的远不仅仅是传统的功能。随着 IPhone SDK 的出现,Xcode 可以管理您所有的测试设备,自动应用正确的证书打包 IP
35、hone 程序,且在 IPhone 自身上安装程序。远程调试器将实时地连接到设备上,控制设备上的程序,管理断点等。Xcode可以连编由C、C+、Objective-C、Objective-C+、和Java编写的源代码组成的工程,可以生成Mac OS X支持的所有类型的执行代码,包括命令行工具、框架、插件、内核扩展、程序包、和应用程序。Xcode允许您对连编和调试工具、可执行文件的打包方式(包括信息属性列表和本地化程序包)、连编过程(包括拷贝文件、脚本文件处理、和其它连编阶段)、以及用户界面(包括分立和多视图的代码编辑器)进行几乎无限的定制;还支持几个源代码管理系统(其中有CVS和Perforc
36、e),使您可以将文件追加到代码库、提交修改、获取更新版本、以及进行版本的比较。Xcode特别适合用于Cocoa开发。在创建工程时,Xcode可以通过对应于Cocoa工程类型的工程模板,为您建立一个初始的开发环境。Cocoa工程类型有:应用程序(Objective-C或Java)、基于文档的应用程序(Objective-C或Java)、工具、程序包、和框架。Xcode使用GNUC编译器(gcc)来编译Cocoa软件,使用GNU源代码级调试器(gdb)来调试软件。在Cocoa开发中使用gcc和gdb从它还是NeXTSTEP的时代就开始了。对Cocoa二进制代码的编译和调试经过多年的精化、扩展、和调
37、优。Xcode也有一个类浏览的功能,可以查看所有导入的Cocoa框架类和您自己的定制类,还有它们的继承关系;从类浏览器中,您可以请求查看任何类的文档。Xcode还包含一些设计工具,其中有一个工具可以用于设计Core Data程序中使用的数据实体的属性和关系。Xcode和另外一个主要的开发工具Interface Builder良好地集成在一起。在Interface Builder中,您可以定义一个类(包括超类,插座变量,和动作),并为工程中的每个类生成源代码文件的框架在Xcode中,您可以为定制类添加插座变量和动作,然后让Interface Builder将这些实体导入到nib文件中7。2.7
38、数据库技术如果说网络是信息传输的媒体,Web应用式信息发布的一种方式,那么数据库就是信息的载体。建立一款应用程序,首先应该做到的就是使用户的信息持久化,使用数据库可以使数据本地持久化,是个不错的选择。数据库实际就是按照某种规则组织起来的数据的集合,对于手机上的应用程序他不需要大型数据库,他本身也较小,主要用来存储用户在使用过程中收藏的一些信息,基于IOS的IPhone手机定位应用程序,主要采用SQlite 3.0数据库。SQLite数据库,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中
39、,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite 支持跨平台,操作简单,能够使用很多语言直接创建数据库。SQLite是一种关系式数据库,关系式数据库由一系列表组成,表又由一系列行和列组成,每一行是一个记录,每一列是一个字段,每个字段有一个字段名,字段名在一个表中不能重复。SQLite数据库以文件形式保存,在Mac的OS下文件的扩展名是.sqli
40、te8。3 论坛设计分析3.1 可行性分析随着智能手机的用户增多,移动互联网呈现出快速发展的趋势。移动互联网就是将移动通信和传统互联网二者结合起来,成为一体。在最近两年,移动互联网成为当今世界发展最快、市场潜力最大、前景最诱人的业务。移动互联网彻底改变民众对封闭互联网的依赖,人们可以随心所欲、随时随地享受移动互联网的美妙。可行性研究的目的,就是用做小的代价在尽可能的时间内去确定问题是否能够解决。要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统的程度。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的
41、过程。该应用程序的可行性分析主要包括经济上的可行性,技术上的可行性,操作上的可行性和法律上的可行性。本系统的可行性分析如下:3.1.1 经济可行性开发此应用程序只需要Mac10.7操作系统即可,该系统会自带或者免费在App Store上下载最新版本的Xcode程序,这里我使用的是Xcode4.1。因为公司有I Mac电脑,所以在经济上面的投入很少了。而一旦该应用程序上传到App Store上面供用户下载使用,因为是免费的应用程序,不会为用户带来经济压力,自己也可以在给程序内设置广告或者先发展用户,也是不需要很大的投入。目标程序不是很复杂,开发的周期较短,人员经济支出不大,所以从经济方面讲开发此
42、系统是可行的。3.1.2 技术可行性本应用程序采用IPhone开发中最常见的MVC模式。即模型(model)视图(view)控制器(controller)。M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。本应用程序编写的语言为Objective-C,编译环境为Xcode 4.1。Objective-C是Cocoa的本地编程语言,Coaco框架和大多数应用程序都使用该语言编写而成。而IPhone上面的应用程序开发绝大部分都是使用Objective-C语言。
43、定位所涉及到的API,网络上有公开的Google地图API以及街旁网API,可以直接在程序中使用,Sqltie数据库是使用火狐浏览器的一个插件,既可以使用可视化的建立数据库的操作又可以使用SQL语句来创建数据库9。使用数据库可以很好地将本地数据持久化,还可以方便的检索和处理本地数据,从而提高灵活性。因此从技术方面讲开发此系统是可行的。3.1.3 操作可行性本应用程序采用的事一个主页面和四个副页面,他们可以相互之间简单的来回交换。四个副页面,分别是我的收藏、自选位置、当前位置和更多,他们都具有自己的功能,从字面上都可以简单明了。另外,在更多页面上面还有一个新手使用指导,可以快速的指导新手熟练地使
44、用该应用程序。因此,在操作使用上,本应用程序简单、方便,易于使用户接受,因而该应用程序是方便可操作的。3.1.4 法律可行性即该应用程序的开发会不会在社会上引起侵权或其他责任问题。因为该应用程序是作为毕业设计与商业无关,又因为是自主开发设计,因此不会构成侵权,在法律上是可行的。3.2 需求分析3.2.1 业务流分析定位应用程序的工作流程为:用户启动该程序,进入一个主页面,可以有四个不同的副页面选择,分别为:我的收藏、自选位置、当前位置、更多。进入到我的收藏页面时,会出现用户已经收藏过的地图信息,并且可以进行删除、编辑等多种操作。进入到自选位置时:程序会自动定位到当前的位置,另外可以搜索用户自己
45、想要找的位置,并且可以进行模糊搜索。定位的时候会用大头针出现,并且大头针会有左右两个按钮,左边的可以显示附近信息,右边的可以显示详细信息。进入到当前位置:程序会自动定位到当前位置。定位的时候会用大头针出现,并且大头针会有左右两个按钮,左边的可以显示附近信息,右边的可以显示详细信息。进入到更多:可以进入到四个不同的页面,分别是:新手使用指南、意见反馈、到App Store评分以及版本信息等。本应用程序的业务流程图如图3-1所示:我的收藏下载程序启动程序位置详细信息附近标志物自选位置当前位置主页面新手指导更多意见反馈评分版本信息图3-1 业务流程图本应用程序是将定位技术和智能手机IPhone的IO
46、S系统相结合,该应用程序可以为用户的出行、生活提供方便。为了更好的为用户服务以及更好的完成该应用程序,特为该应用程序设置一下目标。 具体目标如下:操作简单、界面友好:完全的触摸式操作,对地图类应用具有极简单的操作友好的UI界面设计是一个IPhone应用程序最基本所具备的,应该具有极好的用户体验。功能完善:不仅可以定位到用户自己所在的位置还可以定位到用户想要定位的位置,每个位置还可以查看他的附近标志物等信息。方便移植:应用程序应具有实用性、可靠性和适用性,同时注意到先进性。可以代码里面很少的一部分就可以将代码方便的移植到其他IOS系统的客户端,比如Ipad。3.2.2 数据流分析数据流程分析主要
47、包括对信息的流动、传递、处理、存储等的分析。数据流程分析的目的就是要发现和解决数据流通中的问题。现有的数据流程分析多是通过分层的数据流程图(data flow diagram,简称DFD)来实现的。其具体的做法是:按业务流程图理出的务流程顺序,将相应调查过程中所掌握的数据处理过程,绘制成一套完整的数据流程图10。定位应用程序的数据流程:对本应用程序的数据流程而言来自于用户的操作,首先由用户进入到自选位置、当前位置从而进入到位置的详细信息页面可以保存位置信息或者进入到附近标志物页面将附近标志物也一块保存起来,用户进入到我的收藏页面可以对已经保存的页面进行编辑删除等各种操作。通过对本应用程序的需求分析,程序的基本功能已经确定。整个系统的数据流程图如图3-2: 修改数据用户我的收藏应用程序数据库 更新程序界面自选位置 保存数据当前位置附近标志物详细信息图3-2 数据流程图3.3 数据字典数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据流图和数据字典共同构成系统的逻辑模型。3.3.1 应用程序的数据字典数据字典列表数据流数据存储名称:位置信息数据来源:位置信息的详细页面数据去向:我的收藏页
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922