地理信息系统设计与开发
3.4 空间数据更新设计
空间数据更新设计是GIS空间数据库设计的重要内容, 因为数据更新是GIS活力源泉之一。随着GIS应用的深入, 数据成为制约GIS发展的瓶颈,因此,迫切要求数据获 取手段和数据更新手段不断得到完善。 空间数据包括几何数据、属性数据和拓扑数据三种,根 据空间数据发生变化的数据类型,可以将空间数据的变 更分为三种类型:
3.1 空间数据输入设计
空间数据输入包括图形数据输入和属性数据输入。 空间数据输入设计原则 良好的交互性。为用户提供反馈信息和帮助信息 允许用户进行简单的数据编辑 提供恢复功能。允许恢复到错误输入前的正确状态 对于表格数据的输入,要提供缺省值、输入格式、有效 性检验等功能,使用户快速而准确地输入数据 空间数据输入设计考虑因素 数据的组织和存放。结构要清晰 设计并建立完整的符号库,包括点状符号、线状符号、 面状符号和特殊的符号 良好的输入界面和数据接口
4 详细设计规格说明书
详细设计规格说明书 模块说明表
4.1 详细设计规格说明书
1 引言 1.1 背景 说明该软件系统名称、开发者、详细设计原则和方法 1.2 参考资料 列出有关参考资料名称、作者、发表日期、出版单位 1.3 术语和缩写语 列出本文件中专用的术语、定义和缩写语 2 程序(模块)系统的组织结构 用图表列出本程序系统内每个模块(或子程序)的名称、标识符,以及这 些模块(或子程序)之间的层次关系 3 模块(或子程序)1(标识符)设计说明 从本文件3开始,逐个给出上述每个模块(或子程序)的设计考虑 3.1 模块(子程序)描述 简要描述本模块(子程序)的目的意义、程序的特点 3.2 功能 详细描述此模块(子程序)要完成的主要功能 3.3 性能 描述此模块(子程序)要达到的主要技术性能
2 详细设计的表达工具
系统详细设计的任务是给出软件模块结构中各个模块的内 部过程描述,也就是模块内部的算法设计。根据软件工程的思 想,在GIS软件设计过程中,尤其是大型GIS软件的开发,系 统设计和系统实现是两个阶段的任务,通常由不同的人员来进 行。因此,需要采用一种标准的、通用的设计表达工具来实现 两阶段的沟通,使设计人员设计的系统,实现人员通过分析设 计的文本和资料得到无歧义的理解,即详细设计表达工具的选 择可以促进系统设计成果的表达和实现。
1.1 详细设计与总体设计区别
详细设计以总体设计阶段的工作为基础,但又不同于总体 设计阶段,这主要表现为以下两个方面:
在总体设计阶段,数据项和数据结构以比较抽象的方式描 述,例如,总体设计阶段可以声明矩阵在概念上可以表示 一幅遥感图像,详细设计就要确定用什么数据结构来表示 这样的数字矩阵。 详细设计要提供关于算法的更多细节,在详细设计阶段为 每个模块增加足够的细节,使得程序员能够以相当直接的 方式对每个模块编码。
程序流程图
程序流程图(Program Flow Chart,简称PFC)又称为程序 框图,它是应用最广泛的描述过程的方法,具有简单、直观、 易于掌握的优点,特别适用于具体模块小程序的设计。下图所 示为程序流程图常用符号,图中方框表示处理步骤,菱形框表 示逻辑判断,箭头表示控制流。
(1)
(2)
(3)
1.2 详细设计的模块内容
详细的算法 数据表示和数据结构 实现的功能和使用的数据之间的关系
1.3 详细设计的具体任务
细化总体设计的体系流程图,绘出程序结构图,直到每 个模块的编写难度可被单个程序员所掌握为止。 为每个功能模块选定算法。 确定模块使用的数据组织。 确定模块的接口细节,及模块间的调度关系。 描述每个模块的流程逻辑。 编写详细设计文档。主要包括细化的系统结构图及逐个 模块的描述,如功能、接口、数据组织、控制逻辑等。
3.2 空间数据检索设计
目的:从空间数据库中快速高效地检索出所需要的数据 实质:按一定条件对空间实体的图形数据和属性数据进 行查询检索,形成一个新的空间数据子集 方法:根据GIS应用的实际要求,用SQL语言、扩展SQL 语言和具有检索功能的GIS命令来实现
注:空间检索是目前空间数据检索研究的热点, 最常见空 间数据检索是基于拓扑关系(包括邻接、关联、包含等) 的空间检索
几何数据 第一种 第二种 第三种 不变 改变 改变 属性数据 改变 不变 改变 宗地数据举例 一块宗地形状未变,权属变 一块宗地形状变,权属不变 一块宗地形状变,权属也变
数据更新模型
连续快照模型:用一系列状态所对应的地图来反映地理 现象的时空演化过程。连续快照仅代表地理现象的状态, 而缺乏对现象所包含的对象变化的明确表现,因此它不 能确定地理现象所包含的对象在时间上的拓扑联系。易 于实现,但冗余大 底图修改模型:首先确定数据的初始状态,然后仅记录 时间片段后发生变化的区域,通过叠加操作来建立现时 的状态数据,其中,每一次叠加则表示状态的一次变化 时空合成模型:将每一次独立的叠加操作转换为一次性 的合成叠加。这样,变化的积累形成最小变化单元,由 这些变化单元构成的图形文件和记录变化历史的属性文 件联系在一起,则可较完整地表达数据的时空特征
3 数据库详细设计
建立一个良好的数据组织结构和数据库,使整个系统都可 以迅速、方便、准确地调用和管理所需的数据,是系统开发的 必然要求。 通常,GIS数据库建设分为关系型数据库和空间数据库建 设两部分内容,其中,空间数据库在某些情况下也可以用关系 型数据库进行管理。 主要包含: (一) 空间数据输入设计 (二) 空间数据检索设计 (三) 空间数据输出设计 (四) 空间数据更新设计
3.3 空间数据输出设计
描述:指按实际应用的要求和可视化原则,将GIS操作和 分析的结果展示在屏幕上或打印到图纸上的过程 原则: 应从美学原则出发,布局图中各个内容的位置,调配 大小和色彩,设计优美的地图整饰等 空间数据的输出应带有很大的灵活性,允许用户对输 出内容进行动态组合 为常用的输出格式设计模板以方便用户 输出数据的表达形式尽可能多样化,如采用多媒体技 术等
(4)
(5)
(6)
程序流程图常用符号
程序流程图的缺陷
程序流程图本质上不是逐步求精的好工具,它使程序员过 早地考虑程序的控制流程,而不去考虑程序的全局结构; 程序流程图中用箭头代表控制流,因此程序员可以完全不 顾结构化程序设计的精神,随意转移控制; 程序流程图不易表示数据结构。 详细的程序流程图每个符号对应于源程序的一行代码,对 于提高大型系统的可理解性作用甚微。
地理信息系统设计与开发
五 GIS详细设计
详细设计的任务
系统总体设计阶段已经确定了软件的模块结构和接口描述, 划分出不同的GIS目标子系统,即各个功能模块,并编写了总 体设计文档,但此时每个模块仍处于黑盒子级,需要进行更进 一步的设计。详细设计阶段的根本目标是确定怎样具体地实现 所定义的系统,也就是为各个在总体设计阶段处于黑盒子级的 模块设计具设计的表达工具 3 数据结构和数据库详细设计 4 详细设计规格说明书
1 详细设计的内容
系统详细设计的主要内容是在具体进行程序编码之前,根 据总体设计提供的文档,细化总体设计中已划分出的每个功能 模块,为之选一具体的算法,并清晰、准确的描述出来,从而 在具体编码阶段可以把这些描述直接翻译成用某种程序设计语 言书写的程序。其设计成果可用程序流程图描述,还可用形式 化软件设计语言描述。详细设计的结果基本上决定了最终程序 代码的质量。 空间数据库系统是GIS软件设计的核心内容,进行空间数 据库系统设计的主要任务是确定空间数据库的数据模型以及数 据结构,并提出空间数据库相关功能的实现方案;空间数据库 系统实现的主要任务是将设计的空间数据库系统的结构体系进 行编码实现,并将收集来的空间数据入库,建立空间数据库管 理信息系统。
3.4 输入项 描述每一个输入项的特征,如:标识符、数据类型、数据格式、数值 的有效范围、输入方式 3.5 输出项 描述每一个输出项的特征,如:标识符、数据类型、数据格式、数 值的有效范围、输出方式 3.6 处理过程 详细说明模块(子程序)内部的处理过程,采用的算法、出错处理 3.7 接口 分别列出和本模块(子程序)有调用关系的所有模块(子程序)及其调用 关系,说明与本模块(子程序)有关的数据结构 3.8 存储分配 3.9 注释设计 3.10 限制条件 说明本模块(子程序)运行中受到的限制条件 3.11 测试计划
4 模块(或子程序)2(标识符)设计说明 用类似3的方式,说明第二个模块(子程序)乃至第N个模块(或子程序)的 设计考虑
4.2 模块说明表
模块名: 模块所在文件: 调用本模块的模块名: 本模块调用的其它模块名: 功能概述: 处理描述: 引用格式: 模块编号: 模块所在库: 设计者:
返回值:
名 称 内部接口 名 称 外部接口 用户接口 意 义 数据类型 I/O标志 格 式 媒 体 意 义 数据类型 数值范围 I/O标志