开发和数据管理

在建立地理信息系统应用的过程中,软件开发和数据处理是最为繁重的两个技术任务,对这两个部分的管理的好坏直接影响到整个项目的成败。

软件开发管理

尽管在软件工程方面已经有许多的技术和方法,如结构化方法,面向对象的方法等等,在开发过程中采用这些方法以提高效率,但是开发过程的管理始终是决定一个软件项目成败的重要因素。对于开发管理,并没有“万能”的办法可以适用于所有的软件开发过程,但是在管理中遵循以下原则可以更好地确保软件产品质量和开发效率[B.W.Boehm],这些原则同样也适用于GIS平台软件的开发。

1)用分阶段的生命周期计划严格管理

在整个软件生命周期中,要完成许多性质各异的工作。该原则意味着把软件生命周期分成若干个阶段,并制定严格计划对软件开发和维护进行管理。通常以下六类计划是应该制定并严格执行的,即项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划和运行维护计划。

2)坚持进行阶段评审

软件的质量保证不能等到编码结束之后再进行,这是因为,第一,大部分错误是在编码之前造成的;第二,错误发现越晚,所需要代价越高。因此,需要在每个阶段都进行严格评审,以便尽早发现软件开发过程中的错误。

3)实行严格的产品控制

在开发过程中,用户的需求难免发生变化,而为了满足其变化的需求往往要付出较高的代价,这就需要进行严格的产品控制,通常所采用的技术就是配置管理。

4)采用现代程序设计技术

实践表明,采用先进的程序设计技术既可以提高开发效率,又可以提高软件的可维护性。这些技术包括结构化分析、设计、编程技术以及面向对象的分析、设计、编程技术等。

5)结果应能够清楚地审查

软件产品是思维的产物,这决定了工作过程难于评价和管理,难以准确度量。为了提高开发过程的可见性,以便进行管理,应该根据总目标和进度,规定开发组织的责任和产品标准。

6)开发小组的人员应该少而精

软件开发小组的组成人员素质应该好,而人数不宜过多。素质高的人员开发效率比素质低的人员的开发效率可能高几倍到几十倍,而且错误更少。而小组人数的增多会造成交流的困难。

7)承认不断改进软件工程实践的必要性

由于技术在不断进步,应该主动采纳新技术,而且要不断总结经验,以不断改进工程实践 [4]_。针对一个项目,遵循前六点就可以保证项目的成功,该原则使软件组织能够持续发展。

数据管理

在一个GIS应用项目中,通常需要输入和处理大量的数据,其中主要是空间数据,如果没有采取合适的数据管理,那么可能因为以下原因造成项目的混乱甚至失败:

1)数据质量不能达到项目要求;

2)数据没有完全输入或处理,造成项目延期;

3)数据重复录入或处理,造成人员和时间的浪费;

4)进行数据处理和模型运算时,没有及时采用最新的数据。

为了避免出现上述的问题,必须对数据的录入和处理过程和数据质量进行严格的控制。通常GIS应用项目的空间数据来源包括:GPS数据,摄影测量数据,测量数据,卫星遥感数据,已有非数字地图。不同的来源,其处理和质量控制原则也有所差别。对于GPS数据和测量数据,只需要进行简单的数据规范化(如格式转换,拓扑关系建立等等)处理,就可以在GIS中使用,其精度由GPS或测量设备决定,在数据处理过程中不会带来新的误差。摄影测量数据和卫星遥感数据通常需要进行一系列纠正操作,然后进行自动或半自动解译,以提取专题信息,最后通常是转换为多边形数据,输出到GIS应用中,其误差来源包括纠正(包括辐射纠正和结合纠正)以及分类过程中的误分。纸质地图的录入,可以采取手扶跟踪数字化和扫描矢量化两种方式,其误差来自于数字化过程,并且与进行数字化人员的工作态度有密切的关系,此外数字化数据往往现势性较差。

数据输入和处理的进度控制可以采用普通的里程碑方法或甘特图法,如果工作区范围较大,并且每一数据处理单元只覆盖工作区的一部分,可以采用图15-9所示的方法,以表示进度,其优点是更加直观,不容易遗漏数据。

../../_images/img_18.png

图15-9:一种直观的数据输入进度管理方法示例

(图中每一矩形框内的时间表示该数据应该完成的时间,

深灰色矩形表示已经完成,而浅灰色矩形表示数据录入和处理正在进行)

如果项目中数据量大,并且需要多个数据文件以存储数据,那么需要在工作进行之初就定义文件的命名规则,以通过文件名表达其数据内容,避免造成管理上的混乱 [5]_。如用文件名SO01DG表示第一次数字化的土壤图(SO:Soil,土壤;01:第一次;DG:数字化)。通过文件名表达的信息可以有专题、已进行的处理、时间、处理人员、数据区域范围等等,但是太长的文件名同样会造成记忆的困难。

除了定义文件命名规则外,其它描述信息,包括数据来源、地物的数值范围、地图投影、精度、数据的依赖关系等元数据可以建立数据字典。可以对数据字典进行检索,以掌握数据的进度。