摘要: 软件工程领域,自20世纪50年代至今,项目设计技术经历了结构化程序设计、功能分解、结构化分析、数据为中心的分析和面向对象分析的发展过程。GIS应用系统开发技术中,常用的是结构化系统分析与设计、面向对象分析技术。 1.结构化分析(structured analy...
软件工程领域,自20世纪50年代至今,项目设计技术经历了结构化程序设计、功能分解、结构化分析、数据为中心的分析和面向对象分析的发展过程。GIS应用系统开发技术中,常用的是结构化系统分析与设计、面向对象分析技术。
1.结构化分析(structured analysis,SA)
主要步骤可概括为:①理解当前系统,获得当前系统的“具体模型”。②从当前系统具体模型抽象出当前系统逻辑模型。③分析目标系统与当前系统逻辑上的差异,建立目标系统逻辑模型。④为目标系统逻辑模型作补充,如人机界面要求等。这种系统分析方法以数据流为中心,自顶向下,逐层分解系统工作过程。通过数据流图、数据词典、加工说明等主要分析工具,将系统功能分解、刻画出来。
数据流程图由4个基本成分构成,即数据流、数据加工、数据文件和数据源/汇项。采用分层方式,以顶层数据流图界定系统边界,以底层数据流图表示基本加工。由外及里,从输入、输出,直到系统内部加工,说明系统整体及内部各部分功能。顶层与底层数据流图之间的联系是:①通过父图与子图平衡,即子图所有输人数据流须是父图中相应加工输入;子图所有输出数据流须是父图中相应加工输出。②编号,即子图编号是父图相应加工编号,子图加工编号由子图号、小数点和局部号组成。③保持数据守恒。
2.结构化的系统设计
结构化设计(structured design,简称SD)是IBM公司W.Stevensd等人提出的用于系统概要设计的一种方法。SD方法可以与系统分析阶段的SA方法衔接,它的基本思想是,将系统设计成由相对独立、单一功能模块组成的结构,以保证每个模块可独立被理解、编程、测试、排错、修改,并有效防止错误扩散与传递。
SD方法用由噶块、调用和数据三者组成的结构图来描述系统结构。通过建立满足系统数据流图要求的初始结构图;以模块间联系小,模块内联系大为原则,改进结构图,完成模块分解,确定系统模块层次结构。即实现:①将系统划分成模块。②决定每个模块的功能。③决定每个模块调用关系。④决定模块界面(模块间传递的数据)。
基于SD方法,结构图设计总则为“由顶向下,逐步加细”。每创建一个新模块,须决定该模块外部特征(功能和与其他模块调用传送参数);对P创建模块进行细化,考虑模块将怎样工作,创建下一层新模块,使每个模块执行一个功能’模块间传递数据型参数,模块间共用信息量尽量少。
首先,从总控数据流图中找出主加工、逻辑输入和逻辑输出。从系统物理输入端开始,逐步向系统中间移动,直到得到这样一个数据,它不能再被认为是系统输入,该数据流即是系统逻辑输出: 其前一个数据流就是系统逻辑输入3两者之间的加工是系统主加工。土地利用规划系统中,系统逻辑输人是农田资源单元图,逻辑输出是土地利用规划图,它们之间的主加工是土地利用规划。土地利用规划系统结构图整体结构是输入模块在左,输出模块在右,中间是变换/事务处理模块。模块用方框表示,方框内书写模块名,模块命名反映模块功能;调用用箭头表示,箭头方向表示模块调用另一模块;数据流向用小箭头表示,它叠加在调用箭头上。
对中间变换模块,参照数据流图加工分解过程,先设计主模块,再为主模块设计事务处理模块、操作模块,直到细节模块,完成中间变换/事务处理过程的设计。这样循环分解,直到系统物理输入端和物理输出端。
当然,GIS应用系统的特点是处理空间数据,设计中,还应考虑坐标系统等问题。
3.数据为中心的范式
数据为中心方法的贡献是以数据模型扩展结构化分析。数据模型的目标是确认整个组织的数据要求,然后创建一个中心式的或集成的数据库,如关系数据库。相关应用开发旨在从中心数据库中,获取所需要的数据。数据模型的表示采用E-R图。
有别于面向数据结构的设计方法,以数据为中心的范式不是围绕数据结构来设计软件系统的结构。
数据为中心的范式没有广泛用于软件产业,原因是面向对象方法的出现。面向对象方法把数据分析和应用分析集成起来,开发一个包含数据和过程的对象架构。
4.面向对象的范式
面向对象方法与之前的系统实现方法有许多共同点,事实上,以数据为中心的E-R图与面向对象模型有非常紧密的联系。尽管有人认为面向对象技术尚不成熟,但是面向对象技术逐步为大家所接受。然而,与面向过程范式的本质区别是,面向对象方法把数据和数据处理组合为一个对象。