结构化设计
概念
结构化设计(Structured Design)是一种面向数据流的方法,它以SRS代表的软件需求规格说明,SA代表的系统分析阶段所产生的数据流图和数据字典等文档为基础,是一个自顶向下、逐步求精和模块化的过程。
主要任务
架构设计、接口设计、数据设计、过程设计
概要设计
【外部设计】:功能需求分配给软件模块,确定每个模块的功能和调用关系,形成模块结构图
概要设计将软件需求转换为数据结构和系统结构
详细设计
【内部设计】:为每个具体任务选择适当的技术手段和处理方法
详细设计通过结构细化得出软件的详细数据结构和算法
结构化设计原则
-
模块独立原则(高内聚、低耦合)
-
保持模块的大小适中
-
多扇入、少扇出
- 扇入指被调用,多扇入代表被调用多,模块的复用程度高
- 扇出指调用模块多,需要多个模块配合完成工作,耦合度高
-
深度和宽度不宜过高
内聚【高->低】
- 功能内聚
- 完成一个单一功能,各个部分协同工作,缺一不可
- 顺序内聚
- 处理元素相关,必须顺序执行
- 通信内聚
- 所有处理元素集中再一个数据结构的区域上
- 过程内聚
- 处理元素相关,而且必须按照特定的次序执行
- 时间内聚
- 所包含的任务必须在同一时间间隔内执行
- 逻辑内聚
- 完成逻辑上相关的一组任务
- 偶然内聚
- 完成一组没有关系或松散关系的任务
耦合【低->高】
- 非直接耦合
- 两个模块直接没有之间关系
- 数据耦合
- 一组模块借助参数表传递简单数据
- 标记耦合
- 一组模块通过参数表传递记录信息(数据结构)
- 控制耦合
- 模块之间传递的信息种包含用于控制模块内部逻辑的信息
- 外部耦合
- 一组模块都访问同一全局简单变量,而不是通过参数表传递该全局变量的信息
- 公共耦合
- 多个模块都访问同一个公共数据环境
- 内容耦合
- 一个模块直接访问到另一个模块的内部数据;不通过正常入口转到另一个模块的内部;两个模块之间有部分程序代码重叠;一个模块有多个入口
模块的四个要素
模块是组成系统的基本元素
- 输入和输出
- 处理功能
- 内部数据
- 程序代码