三、微机 GIS 软件工具的实现

微机的性能虽然不断提高,但其配置对于微机地理信息系统的实现还是有一定限制,这些限制表现在:

  1. 运算速度:微机运算速度取决于中央处理器(CPU)和数据总线,它对于需要处理大量空间数据的复杂方法是很严重的限制。系统外部设备的吞吐率也影响到系统的性能。

  2. 空间资源:内存是计算机的工作区,系统运行时程序和工作数据都在内存中进行处理,它的存取速度比硬盘高几十万倍。微机 GIS 运行时工作数据很大,内存往往不够,可以通过内外存交换或分块装入来解决,但因此降低了速度和增加程序的复杂程度。微机的外存对于长期存储的大量信息也是个限制,通过对数据进行压缩来减小数据量,但增加了压缩和解码的功能和运行时间。

  3. 功能:微机性价比高,价格低廉,但性能相对也较低,如图形、图像功能不强,外部设备功能不齐全等。

以上限制给微机 GIS 软件工具的实现带来了极大困难。因此在整个实现过程中都要采用一些方法来尽量减少微机性能给系统性能带来的不利影响。微机 GIS 软件工具的实现通常经过总体设计、软件设计、程序编制、软

件调试等步骤。

总体设计是 GIS 工具设计最基础最重要的工作。首先明确系统的目的, 确定系统总体结构,选择 GIS 工具的软硬件运行环境,然后确定数据类型、数据流程以及系统工具的功能,并对功能作软硬件分配。在总体设计中常采用面向对象的设计方法,分析系统中待表示的对象的类及其继承关系,明确对象应具备的功能,对象功能触发所必需的消息协议(即参数形式)。规范化的数据类型、功能的正确分解、功能的参数协议对于整个系统的实施和系统功能都是至关重要的。软件设计将功能的实现表示成一种书面形式,这种形式明了地描述了软件全貌,接近于源代码,有助于程序的编制,同时也是软件维护、移植的工具。软件设计通常采用结构化设计方法。一方面自上而下描述算法的实现过程,将算法实现描述为一系列不同层次的模块;另一方面采用自下而上的方法建立一系列不同层次较低级的公用模块(如基本输入输出和基本算法)。这样既满足了设计思想到程序编制的逐步接近,又提高了效率,保证了软件质量(操作的完整性、一致性和正确性)。减少了重复劳动。

在软件设计中,算法是一个关键,好的算法能够大大提高系统的性能。在微机 GIS 软件工具设计中,要特别注意通过算法减少微机性能对系统性能的影响。例如在做叠置分析时,利用边界弧段求交点就比用整个多边形边界求交点大大地提高了效率。对于空间资源的限制,可以通过内外存切换并尽量减少从外存转入内存的次数来提高处理能力和速度。对于功能的限制,可以通过软件实现没有的功能,如采用颤抖(dither)来增加屏幕色彩或灰度以及用程序实现绘图线型。程序编制将软件设计转化为计算机程序设计语言文档。首先要选择开发语言,选择开发语言的准则有算法和计算的复杂性、软件执行环境、软件性能(编码、编译、调试)、数据结构复杂性、程序可移植性、程序可读性和可维护性、对资源的控制、代码运行速度、开发人员水平和开发时间等。对于地理信息系统软件工具,其算法复杂、程序量大、处理的数据结构复杂多样、对资源(外设、内存等)的控制和程序执行速度有较高的要求,同时它还要满足系统环境并具有可读性、可维护性、可移植性。现在微机地理信息系统工具开发中多采用 C 语言和 Pascal 语言。有时为了增强代码功效和输入输出能力与速度,也部分采用汇编语言,所以常常用

混合语言编程。另外,工具中常常采用通用型数据库管理系统作为支持工具, 在选择时除考虑数据模型外还要选择性能好、编程方便的工具。

选择程序设计语言后即进行编码(编程序)。编码时要注意编码风格, 好的风格有利于提高程序设计效率和提高程序质量。代码文件内采用有意义的标识符、功能注解、结构块缩进;数据说明顺序标准化;语句构造尽可能简单直观,用一定原则指导控制结构;输入输出基本对用户不可见,能匹配设备速度,响应时间一致并具有容错能力。

调试是发现错误、纠正错误的过程。调试采用的方法有黑箱法和白箱法。黑箱法输入数据并测试程序输出的结果,若结果不对则程序有错误;白箱法根据程序有目的地输入数据测试程序的某一段。调试包括分调(单元调试) 和联调(集成调试)。调试完成后将工具组装成产品形式,并写出开发文档和使用说明,到此软件工具的开发工作已经完成。