如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
在系统定义阶段确定系统建设的目标和任务之后,需要进行系统的总体设计。GIS总体设计阶段的主要任务是将系统需求转换为数据结构和软件体系结构,即数据设计和体系结构设计。数据设计就是把分析阶段所建立的信息域模型变换成软件实现中所需的数据结构。体系结构设计则是把系统的功能需求分配给软件结构,形成软件的模块结构图,并设计模块之间的接口关系。在总体设计阶段,各模块还处于黑盒子状态,模块通过外部特征标识符(如名字)进行输入和输出。使用黑盒子的概念,设计人员可以站在较高的层次上进行思考,从而避免过早地陷入具体的条件逻辑、算法和过程步骤等实现细节,以便更好地确定模块和模块间的结构。教学提纲一、总体设计的任务、方法和准则总体设计的任务是要求系统设计人员遵循统一的准则和采用标准的工具来确定系统应包含哪些模块、用什么方法联结在一起,以构成一个最优的系统结构。总体设计一般采用结构化设计方法进行实现。结构化设计强调软件总体结构的设计,是一种自顶向下、逐步求精和分阶段实现的设计策略。结构化设计的基本特点由问题结构导出系统结构,即问题结构到系统结构的映射。问题结构主要用数据流图(DFD)来描述系统的逻辑模型,而系统结构是指用系统的模块结构图来描述软件结构通过自顶向下分解和层次组织的方法来简化系统,产生模块结构运用一系列的图表工具。为使系统设计流程易于理解,结构化设计使用了两种主要的图表工具:伪码和结构图。伪码描述的是模块的处理逻辑,用来表达程序的设计思路;结构图用于描述软件的总体结构,采用自顶向下、层次组织的方法提供一系列的系统设计策略。结构化设计提供了两种设计策略,它们分别是面向过程的数据流方法与面向数据结构的Jackson方法和Warnier-Orr方法。提供一组评价系统设计质量的准则。结构化设计方法提供了一系列评估准则,如耦合、内聚、扇入和扇出、信息隐蔽以及模块化等。设计方法和策略问题——如何构造(导出)软件的总体结构软件评估准则问题——什么样的软件结构是“最优”的软件设计工具问题——如何表述软件的结构在结构化设计过程中,模块是一个重要的概念。模块指的是具有输入和输出、逻辑功能、运行程序、内部数据四种属性的一组程序语句。其中,输入、输出和逻辑功能是其外部属性,反映功能,是可见的;运行程序、内部数据是其内部属性,反映具体实现途径,是不可见的。除了上述四个主要属性外,模块还有其它的属性。例如,它有一个名称,可以使用别的模块,也可以被别的模块使用,即“调用”和“被调用”。在结构化系统总体设计中,主要关心的是模块的外部属性,即它的功能,而不是它的内部属性,即如何去实现。总体设计的准则软件可以简单地理解为模块的集成。目前,几乎所有的软件体系结构都体现为模块化。模块化是软件设计的一个基本准则,它使得一个程序易于为人们所理解、设计、测试和维护。高层模块可使我们从整体上把握问题,隐蔽细节以免分散我们的注意力,在需要时,又可以深入到较低的层次以了解进一步的细节。模块化往往将较复杂的问题转化为一些简单问题的集合,使我们可以将工作量分散到各个工作组以集中力量解决各个问题。每一个模块表示一个自我包含的逻辑任务;每个模块都是简单的;每个模块都是封闭的;每个模块都是可以独立测试的;每个模块对应单一、独立的程序功能;每个模块有单一的入口和出口;每个模块都由一个标准返回点返回上层模块开始执行该模块的那一点;可以把多个模块组合成较大的模块,而不必了解模块内部构造的知识;每个模块都有严格规定的接口,其中包括由入口和出口形成的控制连接、由参数和共享的公用数据形成的数据连接以及由模块间的服务支持形成的功能连接。抽象和信息隐蔽信息隐蔽是模块的另一重要特征。“信息隐蔽”意味着有效的模块化可以通过定义一组独立的模块来实现,这些独立的模块彼此之间仅仅交换那些为了完成系统功能所必须交换的信息。一个模块内部所包含的信息(数据或过程),如果它不允许外部的模块访问的话,其它模块是不能对它们访问的。抽象和信息隐蔽从两个不同方面说明了模块化设计的特征。“抽象”帮助定义构成软件的过程实体,而“信息隐蔽”实施对过程细节的存取约束。模块独立性采用好的设计规则,改进软件结构,提高模块独立性,设计出软件初步结构以后,应该审查和分析这个结构,通过模块的分解和合并,力求降低模块耦合度,提高模块内聚度。例如,多个模块公用的一个子功能可以独立成一个模块,供这些模块调用。有时则可通过分解或合并模块以减少控制信息的传递及对全局数据的引用,降低接口的复杂程度。经验表明,模块规模应当适中,过大则可能导致独立性降低,引起开发、测试和维护的不便。二、系统总体设计工具层次图层次图(hierarchicalchart)是在软件总体设计阶段最常用的工具之一,用来描绘软件