移动GIS-8-移动地图开发模式与流程
[移动GIS] 8-移动地图开发模式与流程
文章目录
移动GIS开发模式
独立开发、宿主型二次开发、基于GIS组件的二次开发
独立开发
指不依赖于任何GIS工具软件,从空间数据的采集、编辑到数据的处理分析及结果输出,所有的算法都由开发者独立设计,然后选用某种程序设计语言,在一定操作系统平台上编程实现。
- 优点:无须依赖任何商业GIS工具软件,减少了开发成本
- 缺点:门槛高,成品无法和商业化软件媲美
宿主型
指基于GIS平台软件上进行应用系统开发。大多数GIS平台软件都提供了可供用户进行二次开发的脚本语言
优点:省时省力
用户可以利用这些脚本语言,以原GIS软件为开发平台,开发出自己的针对不同应用对象的应用程序
缺点:功能较弱,所开发的系统不能脱离GIS平台软件,是解释执行的,效率不高
【但进行二次开发的脚本语言,作为编程语言,功能极弱,用它们来开发应用程序仍然不尽如人意,并且所开发的系统不能脱离GIS平台软件,是解释执行的,效率不高。】
基于GIS组件的二次开发
GIS软件产商提供提供商业化的GIS组件进行二次开发
- 优点:不仅能大大提高应用系统的开发效率,而且使用可视化软件开发工具开发出来的应用程序具有更好的外观效果,更强大的数据库功能,而且可靠性好、易于移植、更于维护。
- 缺点:可扩展性差,许多产商会进行收费
移动GIS开发系统的开发流程
可行性分析和项目开发计划–>需求分析–>概要设计–>详细设计–>编码–>测试–>维护
可行性分析和项目开发计划
技术可行性、经济可行性、社会可行性
产生文档:《可行性研究报告》、《项目开发计划》
需求分析
准确理解用户需求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转到相应的功能规约
问题识别
- 功能需求:所开发的软件必须具备什么样的功能,这是最重要的。
- 性能需求:待开发的软件的技术性能指标。
- 环境需求:软件运行时所需的软,硬件的要求。
- 用户界面要求:人机交互方式等等。
分析与综合,导出软件的逻辑模型
在分析与综合中,逐步细化软件功能,划分成各个子功能,用图文结合的形式,建立系统的逻辑模型。
编写文档
- 《需求规格说明书》:把双方共同的理解与分析结果用规范的方式描述出来,作为今后各项工作的基础
- 《初步用户使用手册》:着重反映被开发软件的用户功能界面和用户使用的具体要求。
- 《确认测试计划》:作为今后确认和验收的依据
概要设计
概要设计是把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,把软件需求转换为软件表示,描述软件的总的体系结构。
设计软件系统结构
- 采用某种设计方法,将一个复杂的系统按功能划分成模块。
- 确定每个模块的功能
- 确定模块之间的调用关系
- 确定模块之间的接口
数据结构及数据库设计
对于大型数据处理的软件系统,除了控制结构的模块设计外,数据结构与数据库设计也是重要的。
编写概要设计文档
- 《概要设计说明书》
- 《数据库设计说明书》
- 修改《用户手册》
- 修改测试计划
详细设计
- 为每个模块进行详细的算法设计,将每个模块处理过程的详细算法描述出来。
- 为模块内的数据结构进行设计,对于需求分析,概要设计确定的概念性的数据类型进行确切的定义。
- 对数据库进行物理设计
- 编写详细设计说明书
过程设计语言(PDL),也称程序描述语言,又称为“伪代码”。它是一种用于描述模块算法设计和处理细节的语言。
编码
编码即“编程序”,它是在前一阶段详细设计的基础上进行的,它是详细设计得到的处理过程的描述转换为基于某种计算机语言的程序,即源程序代码。
测试
静态测试:不在机器上运行,采用人工检测和计算机辅助分析的手段对程序进行检测。
动态测试
- 黑盒测试:测试人员不考虑程序的内部结构和处理过程,只在软件接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。
- 白盒测试:测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检查内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。
维护
软件投入使用后就进入软件维护阶段,是软件生存周期中时间最长的一个阶段。
校正性维护
软件交付使用后,由于软件开发过程中产生的错误并没有完全彻底的在程序中发现,这些隐含的错误在某些特定的使用环境下会暴露出来。
适应性维护
随着计算机的发展,计算机软硬件都在不断的发生变化,数据环境也在发生变化,
为了使应用软件适应这种变化的过程,成为适应性维护。
完善性维护
由于用户对软件提出新的功能和性能要求而对软件进行的维护成为完善性维护。
预防性维护
为提高软件的可维护性和可靠性而对软件进行的修改成为预防性维护。
思考题
设计找车位系统,用一个框架流程来表示 ,可以如何去做?
定位
技术:使用RSSI定位
前期准备:根据车位的大小决定路由器部署密度与个数–>根据路由器信号划分停车场,将平面图进行栅格化–>记录每个栅格的RSSI值–>记录到数据库
定位:手机记录此位置的RSSI值–>传入服务端–>服务端根据算法计算最佳匹配位置–>根据栅格平面图将位置转换为经纬度–>传回手机
移动GIS工作流
【用户层】
- 数据管理:手机端SQLite/Spatialite、Moblie SVG等
- 数据可视化:高德地图SDK将地理数据展示到地图上
【业务层 或 服务层】
- 使用Servlet管理业务分流
【业务层与数据层的数据通讯】
- 中间键:ArcGIS SDE、Hibernate、Mybatis
【数据层】
- 数据管理:服务端Postgresql/PostGIS空间数据扩展
- 数据发布:ArcGIS Server提供REST服务