GIS软件工程总体设计研究

2022-09-10

GIS软件工程设计是一个非常重要的阶段, 该阶段包括如何设计GIS软件的体系结构, 如何设计GIS软件结构, 如何进行空间数据库的设计, 如何进行应用模型的分析与设计。这些内容是GIS软件工程总体设计包含的基本内容, 是GIS软件工程的基础和关键。

在完成了系统分析之后, 为了实现软件需求规格书的要求, 必须将用户需求转化为对计算机系统的逻辑定义, 即所谓系统设计。人们把设计定义为“应用各种技术和原理, 对设备、过程或系统做出足够详细的定义, 使之能够在物理上得以实现”。系统设计与其他领域的工程设计一样, 具有其独特的方法、策略和理论。系统设计是GIS整个研究工作的核心, 不但要完成逻辑模型所规定的任务, 而且要使所设计的系统达到优化。如何选择最优的方案, 这是系统设计人员和用户共同关心的问题。

进入了设计阶段, 要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型, 即着手实现软件的需求, 并将设计的结果反映在“设计说明书”文档中, 所以系统设计是把GIS前期工程中的软件需求转换为软件表示的过程, 最初这种表示只是描述软件的总体结构, 称为总体设计。

1 系统设计在软件开发中的位置

确定了GIS软件需求之后, 就进入了狭义的系统开发阶段。狭义的开发阶段由三个互相关联的步骤组成:设计、实现 (编码) 和测试。实质上, 系统设计到系统实现的各个阶段都是按某种方式进行信息变换, 最后得到有效的计算机软件。

在系统需求分析阶段解决了系统“做什么”的问题, 并在软件需求规格书中详尽和充分地阐明这些需求。接下来就是要着手实现系统需求, 即要着手解决“怎么做”的问题, 这就是系统设计的总目标。设计步骤为根据数据域需求和功能域及性能需求, 采用某种设计方法进行系统结构设计、数据库设计 (或数据设计) 、详细设计 (或称过程设计) 、界面设计。系统结构设计定义软件系统各主要成分之间的关系;数据设计侧重于数据结构的定义, 详细设计则是把结构成分转换成软件的过程性描述;界面设计侧重于与用户交互的界面的设计, 包括输入、输出、显示等各类界面的风格和策略的确定。在编码步骤中, 根据这种过程性描述, 生成源程序代码, 然后通过测试最终得到完整有效的软件。

2 总体设计过程中需要完成的工作

2.1 制定规范 (标准设计)

在进入软件开发阶段之初, 首先应为软件开发组制定在设计时应该共同遵守的标准, 以便协调组内各成员的工作。它包括以下几点。

(1) 阅读和理解软件需求说明书, 在给定预算范围内和技术现状下, 确认用户的要求能否实现。若能实现则需明确实现的条件, 从而确定设计的目标, 以及它们的优先顺序。 (2) 根据目标确定最合适的设计方法。 (3) 确定设计文档的编制标准, 包括文档体系、用纸及样式、记述详细的程度、图形的画法等。 (4) 通过代码设计确定代码体系, 与硬件、操作系统的接口规约, 命名规则等。

2.2 软件结构设计

在需求分析阶段, 已经从系统开发的角度出发, 使系统按功能逐次分割成层次结构, 使每一部分完成简单的功能且各个部分之间又保持一定的联系, 这就是功能设计。在设计阶段, 基于这个功能的层次结构把各个部分组合起来成为系统。它包括以下几点。

(1) 采用某种设计方法, 将一个复杂的系统按功能划分成模块的层次结构。 (2) 确定每个模块的功能, 建立与已确定的软件需求的对应关系。 (3) 确定模块间的调用关系。 (4) 确定模块间的接口, 即模块间传递的信息。设计接口的信息结构。

2.3 数据库设计

确定软件涉及的文件系统的结构以及数据库的模式、子模式, 进行数据完整性和安全性的设计。它包括以下几点。

(1) 确定输入、输出文件的详细的数据结构。

(2) 结合算法设计, 确定算法所必需的逻辑数据结构及其操作。

(3) 确定对逻辑数据结构所必需的那些操作的程序模块 (软件包) , 限制和确定各个数据设计决策的影响范围。

(4) 若需要与操作系统或调度程序接口所必须的控制表等数据时, 确定其详细的数据结构和使用规则。

(5) 数据的保护性设计, 主要包括以下几点。

(1) 防卫性设计:在软件设计中插入自动检错, 报错和纠错的功能。

(2) 一致性设计:有两个方面:其一是保证软件运行过程中所使用的数据的类型和取值范围不变;其二是在并发处理过程中使用封锁和解除封锁机制保持数据不被破坏。

3 体系结构设计

3.1 概述

系统设计要求满足三个基本条件, 即加强系统的实用性、降低系统开发和应用的成本、提高系统的生命周期, 因此, 要改进软件的设计方法, 使得在系统设计过程中产生的错误能及时得到改正。

GIS的设计方法采用结构化分析和设计原理, 其中最有用的理论就是模块理论及其有关的特征, 例如内聚性和耦合性。一般而言, 系统设计首先应根据系统研制的目标, 确定系统必须具备的空间操作功能, 称为功能设计;其次是数据分类和编码, 完成数据的存储和管理, 最后是系统的建模和产品的输出, 称为应用设计。

3.2 总体设计的目标

GIS总体设计的目标是一个优化的GIS。一个优化的GIS心须具有运行效率高、可变性强、控制性能好等特点。要提高系统的运行效率, 并尽量采用经优化的数据处理算法。为了提高系统的可变性, 最有效的方法是采用模块化的结构设计方法, 即先将整个系统看成一个模块, 然后按功能逐步分解为若干个第一层模块、第二层模块等等。一个模块只执行一种功能, 一种功能只用一种模块来实现, 这样设计出来的系统才能做到可变性好和具有生命力。为增强系统的控制能力, 在输人数据时, 要拟定对数字和字符出错时的检验方法;在使用数据文件时, 要设立口令, 防止数据泄密和被非法修改, 保证只能通过特定的通道存取数据。

总体设计要根据系统研制的目标来规划系统的规模和确定系统的各个组成部分, 并说明它们在整个系统中的作用与相互关系, 以及确定系统的硬件配置, 规定系统采用的合适技术规范, 以保证系统整体目标的实现。

3.3 总体设计的步骤

由系统设计人员来设计GIS, 就是根据若干规定和需求, 设计出功能符合需要的系统。一个GIS最基本的模型框架一般由数据输入、数据输出、数据管理、空间分析四部分组成, 但随具体开发项目的不同, 在系统环境、控制结构和内容设计等方面都有很大的差异, 因此, 设计人员开发GIS时须遵循正确的步骤。

(1) 根据用户需要, 确定系统工程要做哪些工作, 形成系统的逻辑模型。

(2) 将系统分解为一组模块, 各个模块分别满足所提出的需求。

(3) 将分解出来的模块, 按照是否能满足正常的需求进行分类。对不能满足正常需求的模块需要进一步调查研究, 以确定是否能有效的进行开发。

(4) 制定工作计划, 开发有关的模块, 并对各个模块进行一致性的侧试, 以及系统的最后运行。

摘要:GIS软件工程总体设计是GIS软件工程的基础和关键, 笔者基于多年工作实践, 首先高屋建瓴, 分析了系统设计在软件工程中的位置, 而后结合笔者的工作实际, 探讨了总体设计过程中需要完成的工作内容, 最后研究分析了体系结构设计的方法和思想。全文从实践到理论, 最后又回到实践, 相信对从事相关工组的同行有着重要的参考价值和借鉴意义。

关键词:GIS软件工程,总体设计,体系结构

上一篇:浅谈房屋工程施工新技术的应用下一篇:环保部发布四项污染物排放新标准