基于插件技术GIS应用技能开发教学研究.docVIP

  • 3
  • 0
  • 约4.76千字
  • 约 10页
  • 2018-08-29 发布于福建
  • 举报

基于插件技术GIS应用技能开发教学研究.doc

基于插件技术GIS应用技能开发教学研究

基于插件技术GIS应用技能开发教学研究   摘 要:GIS插件开发是GIS应用技能的一个重要组成部分。从GIS插件开发环境所要解决的实验内容衔接问题着手,设计了一种从运算器功能到GIS功能开发的插件式GIS应用框架教学设计案例。该插件GIS框架扩展方便、部署简单和高度重用。   关键词:插件技术;GIS开发;教学   中图分类号:G434:TP311 文献标识码:A 文章编号:1672-7800(2011)09-0165-04      0 引言??   GIS开发是一项针对性很强的系统工作,程序的模块设计、层次划分、语言选择和系统部署都依赖最终用户的具体需求、软硬环境甚至个人的喜好。GIS开发是一种典型的“因势而变”的工程,由于不同类型的用户在地理数据的存储、使用和部署方式上都有很大差别,根据实际需求定制开发是不可避免的。因此在应用程序开发过程中,项目人员必须花费大量的时间进行项目前期调研,编制不同阶段的需求分析和建设方案,然后才能进入编码阶段,根据需要开发各种功能组件。由于需求蔓延的可能性依然存在,每个变化之后,又得浪费时间在菜单建立、工具栏按纽设计、增加映射代码等,每一次都要从头开始,舍弃以前项目经验和成果,这种软件开发显然是一件乏味的且充满重复的劳动,开发模式效率很差的工作。因此代码重用在开发中显得非常重要,为实现这一目标,软件人从函数库、类库、设计模式和框架等机制先后被提出,不断改进提高软件的生产效率。而框架是重用机制当中的一种高级类型,在结构复杂、需求多变的各种规模程序设计上具有很强的吸引力。??   插件技术是组件复用技术的一种。组件技术从根本上克服了传统软件开发技术固有的代码重用率差、模块耦合度高、可维护性差、开发周期长等问题,成为现代软件发展的主要趋势。插件技术能在不修改程序主体的情况下对软件功能进行提升。在众多的软件中都可以看到它的身影, 在中小型软件系统中获得了广泛的应用。基于“平台+插件”的结构有助于开发者实现一个具有良好扩展性和定制能力的GIS项目。例如在著名的开源软件MapWindow GIS中使用了大量的插件,如数据格式转换与投影变换等GIS功能。??   1 课程概况??   当前,国内外关于GIS应用开发教学的理论和实践的研究不是很多。只是在程序设计领域,如周红鹃、贾丹、刘东良等人设计开发教学软件时使用了插件思想完成教学构思。随着越来越多的高校GIS专业开设GIS设计与开发课程。多数高校该课主要包含理论课和实践课部分,理论课多是以ArcEngine、ArcObjectts、MapObjects或其它GIS公司组件为基础内容,重点讲授GIS开发的原理与方法,阐述GIS组件的功能与开发应用,而实践课没有统一的定论,许多实验课程教学还是引用传统的教学模式, 在组织教学时, 教师往往按照教材编排的顺序, 实验往往就是一个以知识点为核心的理论教学为主, 验证性实验为辅,各个实验之间前后衔接不好。??   如果在实验课中,按逆向工程教学,先拆分GIS功能后组装,最后实验课总体设计应该就是一个小型GIS应用系统。那么使用插件式GIS应用框架教学就是一种满足定制要求的最好方式--扩展方便、部署简单和高度重用。同时学生自己动手设计与之相符合的实验教学内容,在日常实验过程当中学习插件思想,每个人结合自己可能的毕业设计框架实例入手,循序渐进的体验框架设计思想和代码迭代实现过程,理论与实际相结合,那么最后的课程设计作业将不只是一个学习GIS开发的简单功能的Demo,如将空间关系的基本分析以插件封装,具有重要的意义与价值,在实验过程中不断积累的插件功能也能在日后的项目中得到很好的应用。??   2 基于插件技术的GIS开发教学设计??   2.1 插件原理??   插件(Plug-in,又称addin、add-in、addon或add-on,又译外挂)是一种电脑程序,是一种符合一定规范,实现了特定接口的程序,主要是用来扩展软件的功能通过和应用程序的互动,用来替应用程式增加一些所需要的特定的功能。最常见的有游戏、网页浏览器的插件和媒体播放器的插件。它借鉴了硬件系统中插件的思想。??   常见的插件构架,主要有以下四大类:脚本式,使用某种语言把插件的程序逻辑写成脚本代码,如Python,不足之处在于用户可以自行修改脚本; 动态函数库 DLL,宿主程序通过某种渠道获得插件 DLL中的函数签名,然后在合适的地方调用它们,如Matlab软件当中的动态库函数;聚合式,把插件功能直接写成 EXE,主程序除了完成自己的职责外,还负责调度这些“插件”,宿主程序与插件之间信息交流困难,《人月神话》当中的巴比伦塔的失败说明这种方式的不足;组件,宿主程序不需要知道插件怎样实现预定的功能,它只需要通过接口访问插件,

文档评论(0)

1亿VIP精品文档

相关文档