GIS软件工程的总体设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
19
模块独立性的度量标准: 内聚(cohesion)和耦合(coupling)
耦合衡量不同模块彼此间互相依赖(连接)的紧密 程度;
内聚衡量一个模块内部各个元素彼此结合的紧密程 度。
20
(1)内聚 cohesion
简单地说,理想内聚的模块只做一件事情;
内聚级别:偶然内聚 逻辑内聚 时间内聚 过程内聚 通信内聚 顺序内聚 功能内聚
interface design architectural design
data design
THE DESIGN MODEL
4
翻译分析模型到软件设计
数据设计将分析时创建的信息域模型变换为软件所需的数 据结构,侧重于数据结构的定义。
体系结构设计定义软件系统各主要结构构件之间的关系。 过程设计则是把结构构件转换成软件的过程性描述。在编
从技术和管理的角度看设计的关系
2
两类软件工程的简单比较
3
翻译分析模型到软件设计
Data object description
E-R
Process specification DFD DD
STD Control specification
THE ANALYSIS MODEL
procedural design
模块化就是把程序划分成独立命名且可独立 访问的模块,每个模块完成一个子功能,把这些 模块集成起来构成一个整体,可以完成指定的功 能满足用户的需求。
11
模块化论据: C(x)定义为问题x的感知复杂性 E(x)定义为解决问题x所需要的工作量 对p1和p2两个问题,
若 C(p1) > C(p2),则 E(p1) > E(p2) C(p1 + p2) > C(p1) + C(p2) E(p1 + p2) > E(p1) + E(p2)
17
4.信息隐藏 (Information Hiding) 信息隐藏是把系统分解为模块时应遵守的指导
思想。模块内部的数据与过程,应该对不需要 了解这些数据与过程的模块隐藏起来; 这一指导思想的目的,是为了提高模块的独立 性;
18
5.模块独立性 为什么模块的独立性很重要呢?
第一,有效的模块化的软件比较容易开发出来。 第二,独立的模块比较容易测试和维护。
软件工程过程的每一步都是对软件解法的抽象层 次的一次精化;
软件设计其实就是在不同抽象级别考虑和处理问 题的过程。在由高级抽象到低级抽象的转换过程 中,要进行一连串的过程抽象和数据抽象。
15
过程抽象与数据抽象: 过程抽象:把完成一个特定功能的动作序列抽象 为一个过程名和参数表; 数据抽象:数据抽象把一个数据对象的定义抽象 为一个数据类型名。用此类型名可以定义多个具 有相同性质的数据对象。
7
模块: 模块指的是具有输入和输出、逻辑功能、运行程序、 内部数据四种属性的一组程序语句。除了上述四个 主要属性外,模块还有其他的属性。例如,它有一 个名称,可以使用别的模块,也可以被别的模块使 用,即“调用”和“被调用”。
8
模块(续): 软件结构:即由模块组成的层次系统; 应该把模块组织成良好的层次系统,顶层模块调 用它的下层模块以实现程序的完整功能,每个下 层模块再调用更下层的模块,从而完成程序的一 个子功能,最下层的模块完成最具体的功能。
16
3.细化(Refinement)
1971年,N.Wirth发表了“用逐步细化的方法开 发程序”的文章,强调程序设计是一个“渐进” 的过程。
抽象与细化是互补的概念。细化实际是一个详细 描述的过程。
细化的实质就是分解。在逐步细化中,特别强调 这种分解的“逐步”性质,这样,在相邻两步之 间就只有微小的变化,不难验证它们的内容是否 等效。
第五章 GIS系统总体设计
第一节 总体设计的基本理论 第二节 软件体系结构设计 第三节 空间数据库设计 第四节 GIS应用分析模型设计 第五节 GIS用户界面设计 第六节 系统总体设计报告
1
第一节 总体设计的基本理论
一、系统设计概述
系统设计是一个把系统需求变换成软件表示的过程。 最初这种表示只是描绘出系统的总的框架,然后进一步细 化,在此框架中填入细节,把它加工成在程序细节上非常 接近于源程序的软件表示。
码步骤,根据这种过程性描述,生成源程序代码,然后通 过测试最终得到完整有效的软件。 接口设计是建立软件内部的关系以及软件人-机之间的交 互机制。
5
wenku.baidu.com 软件设计的重要性
软件设计是后续开发步骤及软件维护工作的基础。如果 没有设计,只能建立一个不稳定的系统结构。
6
二、总体设计的任务
总体设计从回答“做什么”到回答“怎样 做”; GIS总体设计阶段的主要任务是将系统需求转换为数据 结构和软件体系结构。 数据设计:把分析阶段所建立的信息域模型变换成软 件实现中所需的数据结构。 体系结构设计:则是把系统的功能需求分配给软件结 构,形成软件的模块结构图、并设计模块之间的接口关 系。
9
三、总体设计的方法
由问题结构导出系统结构,即问题结构到系统结构的映射。 通过自顶向下分解和层次组织的方法来简化系统,产生模 块结构。 运用一系列的图表工具。 提供一系列的系统设计策略。 提供一组评价系统设计质量的准则。
10
四、设计基本原理 1.模块化(Modularity)
13
模块化的优点: 使软件结构清晰; 使软件容易测试和调试,因而有助于提高软件的
可靠性; 模块化能够提高软件的可修改性; 提高程序编写的可分解性;
14
2.抽象(abstraction)
抽象是抽出事物的本质特性而暂时不考虑它们的 细节。随着软件规模的不断增大,设计的复杂性 也不断增大,抽象便成了控制复杂性的基本策略 之一;
这个不等式“各个击破”的结论——把复杂的问题分解 成许多容易解决的小问题,原来的问题也就容易解决了。这 就是模块化的根据。
12
模块化和软件成本:
如何确定最小成本区?
最小成本区
成 本
每个程序都相应地 有一个最适当的模 块数目M,使得系 统的开发成本最小。
软件总成本
接口成本
成本 / 模块
模块数目
不要过度模块化!每个模块的简单性将被集成的复杂性所掩盖。
模块独立性的度量标准: 内聚(cohesion)和耦合(coupling)
耦合衡量不同模块彼此间互相依赖(连接)的紧密 程度;
内聚衡量一个模块内部各个元素彼此结合的紧密程 度。
20
(1)内聚 cohesion
简单地说,理想内聚的模块只做一件事情;
内聚级别:偶然内聚 逻辑内聚 时间内聚 过程内聚 通信内聚 顺序内聚 功能内聚
interface design architectural design
data design
THE DESIGN MODEL
4
翻译分析模型到软件设计
数据设计将分析时创建的信息域模型变换为软件所需的数 据结构,侧重于数据结构的定义。
体系结构设计定义软件系统各主要结构构件之间的关系。 过程设计则是把结构构件转换成软件的过程性描述。在编
从技术和管理的角度看设计的关系
2
两类软件工程的简单比较
3
翻译分析模型到软件设计
Data object description
E-R
Process specification DFD DD
STD Control specification
THE ANALYSIS MODEL
procedural design
模块化就是把程序划分成独立命名且可独立 访问的模块,每个模块完成一个子功能,把这些 模块集成起来构成一个整体,可以完成指定的功 能满足用户的需求。
11
模块化论据: C(x)定义为问题x的感知复杂性 E(x)定义为解决问题x所需要的工作量 对p1和p2两个问题,
若 C(p1) > C(p2),则 E(p1) > E(p2) C(p1 + p2) > C(p1) + C(p2) E(p1 + p2) > E(p1) + E(p2)
17
4.信息隐藏 (Information Hiding) 信息隐藏是把系统分解为模块时应遵守的指导
思想。模块内部的数据与过程,应该对不需要 了解这些数据与过程的模块隐藏起来; 这一指导思想的目的,是为了提高模块的独立 性;
18
5.模块独立性 为什么模块的独立性很重要呢?
第一,有效的模块化的软件比较容易开发出来。 第二,独立的模块比较容易测试和维护。
软件工程过程的每一步都是对软件解法的抽象层 次的一次精化;
软件设计其实就是在不同抽象级别考虑和处理问 题的过程。在由高级抽象到低级抽象的转换过程 中,要进行一连串的过程抽象和数据抽象。
15
过程抽象与数据抽象: 过程抽象:把完成一个特定功能的动作序列抽象 为一个过程名和参数表; 数据抽象:数据抽象把一个数据对象的定义抽象 为一个数据类型名。用此类型名可以定义多个具 有相同性质的数据对象。
7
模块: 模块指的是具有输入和输出、逻辑功能、运行程序、 内部数据四种属性的一组程序语句。除了上述四个 主要属性外,模块还有其他的属性。例如,它有一 个名称,可以使用别的模块,也可以被别的模块使 用,即“调用”和“被调用”。
8
模块(续): 软件结构:即由模块组成的层次系统; 应该把模块组织成良好的层次系统,顶层模块调 用它的下层模块以实现程序的完整功能,每个下 层模块再调用更下层的模块,从而完成程序的一 个子功能,最下层的模块完成最具体的功能。
16
3.细化(Refinement)
1971年,N.Wirth发表了“用逐步细化的方法开 发程序”的文章,强调程序设计是一个“渐进” 的过程。
抽象与细化是互补的概念。细化实际是一个详细 描述的过程。
细化的实质就是分解。在逐步细化中,特别强调 这种分解的“逐步”性质,这样,在相邻两步之 间就只有微小的变化,不难验证它们的内容是否 等效。
第五章 GIS系统总体设计
第一节 总体设计的基本理论 第二节 软件体系结构设计 第三节 空间数据库设计 第四节 GIS应用分析模型设计 第五节 GIS用户界面设计 第六节 系统总体设计报告
1
第一节 总体设计的基本理论
一、系统设计概述
系统设计是一个把系统需求变换成软件表示的过程。 最初这种表示只是描绘出系统的总的框架,然后进一步细 化,在此框架中填入细节,把它加工成在程序细节上非常 接近于源程序的软件表示。
码步骤,根据这种过程性描述,生成源程序代码,然后通 过测试最终得到完整有效的软件。 接口设计是建立软件内部的关系以及软件人-机之间的交 互机制。
5
wenku.baidu.com 软件设计的重要性
软件设计是后续开发步骤及软件维护工作的基础。如果 没有设计,只能建立一个不稳定的系统结构。
6
二、总体设计的任务
总体设计从回答“做什么”到回答“怎样 做”; GIS总体设计阶段的主要任务是将系统需求转换为数据 结构和软件体系结构。 数据设计:把分析阶段所建立的信息域模型变换成软 件实现中所需的数据结构。 体系结构设计:则是把系统的功能需求分配给软件结 构,形成软件的模块结构图、并设计模块之间的接口关 系。
9
三、总体设计的方法
由问题结构导出系统结构,即问题结构到系统结构的映射。 通过自顶向下分解和层次组织的方法来简化系统,产生模 块结构。 运用一系列的图表工具。 提供一系列的系统设计策略。 提供一组评价系统设计质量的准则。
10
四、设计基本原理 1.模块化(Modularity)
13
模块化的优点: 使软件结构清晰; 使软件容易测试和调试,因而有助于提高软件的
可靠性; 模块化能够提高软件的可修改性; 提高程序编写的可分解性;
14
2.抽象(abstraction)
抽象是抽出事物的本质特性而暂时不考虑它们的 细节。随着软件规模的不断增大,设计的复杂性 也不断增大,抽象便成了控制复杂性的基本策略 之一;
这个不等式“各个击破”的结论——把复杂的问题分解 成许多容易解决的小问题,原来的问题也就容易解决了。这 就是模块化的根据。
12
模块化和软件成本:
如何确定最小成本区?
最小成本区
成 本
每个程序都相应地 有一个最适当的模 块数目M,使得系 统的开发成本最小。
软件总成本
接口成本
成本 / 模块
模块数目
不要过度模块化!每个模块的简单性将被集成的复杂性所掩盖。