得鹿梦鱼 得鹿梦鱼

地理信息系统软件工程技术

软件工程简介

计算机软件工程是一类求解的工程。它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高质量,降低成本的目的。其中,计算机科学、数学应用于构造模型与算法,工程科学用于制定规范、设计范型,评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理

软件工程活动包括需求、设计、实现、确认及支持等,它们对应于软件开发活动的不同阶段,一般来说,软件开发都要经历从分析设计到实现确认的过程。在每个阶段按照相应的规范进行工作,并得到该阶段的成果,是保证整个开发活动成功的关键

GIS领域的体系结构和构件

按照应用目的,地理信息系统可以分为区域地理信息系统、专题地理信息系统以及地理信息系统工具,它们共同组成了GIS领域
所谓领域,是指共享某种功能性Functionality的系统或应用程序的集合,换言之,领域表现了一组应用系统共性的方面
对于地理信息系统而言,其共享的功能就是对空间数据输入、管理、分析和表现,而这恰好是地理信息系统工具所提供的功能

GIS需求分析

需求获取是软件开发活动的第一步,获得正确的需求描述是成功软件的前提。
一般而言,用户需求分为两类,功能性需求和非功能性需求,前者定义了系统做什么,包括输入、输出以及其间的转换;
后者定义了系统工作时的特性,如效率、可靠性、安全性、可维护性、可移植性等等要求。

具体的需求获取内容包括

  • 物理环境,物理设备的位置以及其分布的集中程度;
  • 接口,与其它软件系统的接口以及对数据格式的要求;
  • 用户或人的因素,包括系统用户熟练程度,使用系统需要接受的训练;
  • 功能,系统要完成什么,性能如何;
  • 文档,需要哪些文档以及其针对的读者;
  • 数据,数据格式、数据精度、数据量、接收和发送数据的频率;
  • 资源,使用系统需要的设备,开发需要的人力资源、计算机资源、时间表;
  • 安全性,对访问信息的控制程度,数据的备份等
  • 质量保证,对系统的可靠性要求,平均系统出错时间,可移植性,可维护性等。

数据管理设计

数据管理部分设计的目的是确定在数据管理系统中存储和检索数据的基本结构,其原则是要隔离数据管理方案的影响,不管该方案是普通文件、关系数据库、面向对象数据库或者是其它方式的

目前,主要有三种主要的数据管理方法,即文件、关系和面向对象

普通文件管理:普通文件管理提供基本的文件处理和分类能力;
关系型数据库管理系统(RDBMS):关系型数据库管理系统建立在关系理论的基础上,采用多个表来管理数据,每个表的结构遵循一系列“范式”进行规范化,以减少数据冗余。
面向对象的数据库管理系统:面向对象的数据库是一种正在成熟的技术,它通过增加抽象数据类型和继承特性以及一些用来创建和操作类和对象服务,实现对象的持续存储。

界面设计

在设计阶段,除了设计算法,数据结构等内容外,一个很重要的部分就是系统界面的设计,系统界面是人机交互的接口,包括人如何命令系统以及系统如何向用户提交信息。一个设计良好的用户界面使得用户更容易掌握系统,从而增加用户对系统的接受程度。此外,系统用户界面直接影响了用户在使用系统时的情绪

GIS中的设计模式

在研究软件复用的过程中,设计模式Design Pattern的概念被提了出来。所谓设计模式,简单地理解,是一些设计面向对象的软件的经验总结

一般包括以下四个基本部分

  1. 模式名称:描述一个设计问题、它的解法和后果
  2. 问题:告诉什么时候要使用该设计模式,解释问题及其背景
  3. 解决方案:描述设计的基本要素、它们的关系、各自的任务以及相互之间的合作
  4. 后果:描述应用设计模式之后的结果和权衡

E.Gamma提出了23个面向对象的设计模式,这些模式抽象层次较高,可以应用于所有软件的开发过程。在地理信息系统开发中,经常会遇到本领域的特定的一些问题,并且已经形成了有效的解决方案,对其进行归纳总结,形成相应的设计模式,对于GIS软件开发,有着重要的意义

常用软件

  1. QGIS
  2. Leaflet