结构化设计

概念

结构化设计(Structured Design)是一种面向数据流的方法,它以SRS代表的软件需求规格说明,SA代表的系统分析阶段所产生的数据流图和数据字典等文档为基础,是一个自顶向下、逐步求精和模块化的过程。

主要任务

架构设计、接口设计、数据设计、过程设计

概要设计

【外部设计】:功能需求分配给软件模块,确定每个模块的功能和调用关系,形成模块结构图

概要设计将软件需求转换为数据结构系统结构

详细设计

【内部设计】:为每个具体任务选择适当的技术手段和处理方法

详细设计通过结构细化得出软件的详细数据结构算法

结构化设计原则
  • 模块独立原则(高内聚低耦合

  • 保持模块的大小适中

  • 多扇入、少扇出

    • 扇入指被调用,多扇入代表被调用多,模块的复用程度高
    • 扇出指调用模块多,需要多个模块配合完成工作,耦合度高
  • 深度和宽度不宜过高

内聚【高->低】
  • 功能内聚
    • 完成一个单一功能,各个部分协同工作,缺一不可
  • 顺序内聚
    • 处理元素相关,必须顺序执行
  • 通信内聚
    • 所有处理元素集中再一个数据结构的区域上
  • 过程内聚
    • 处理元素相关,而且必须按照特定的次序执行
  • 时间内聚
    • 所包含的任务必须在同一时间间隔内执行
  • 逻辑内聚
    • 完成逻辑上相关的一组任务
  • 偶然内聚
    • 完成一组没有关系或松散关系的任务
耦合【低->高】
  • 非直接耦合
    • 两个模块直接没有之间关系
  • 数据耦合
    • 一组模块借助参数表传递简单数据
  • 标记耦合
    • 一组模块通过参数表传递记录信息(数据结构
  • 控制耦合
    • 模块之间传递的信息种包含用于控制模块内部逻辑的信息
  • 外部耦合
    • 一组模块都访问同一全局简单变量,而不是通过参数表传递该全局变量的信息
  • 公共耦合
    • 多个模块都访问同一个公共数据环境
  • 内容耦合
    • 一个模块直接访问到另一个模块的内部数据;不通过正常入口转到另一个模块的内部;两个模块之间有部分程序代码重叠;一个模块有多个入口
模块的四个要素

模块是组成系统的基本元素

  • 输入和输出
  • 处理功能
  • 内部数据
  • 程序代码