Skip to content

📖 3.1 结构化设计概述

章节核心逻辑总览

🖥️ 章节逻辑架构图

结构化设计(Structured Design, SD)是软件工程经典结构化开发方法的核心环节,承接结构化分析(SA)的需求成果,衔接后续结构化编程(SP)的实现环节,核心目标是将“做什么”的需求逻辑,转化为“怎么做”的、可落地的模块化软件结构方案。

📌 本节学习目标

  1. 明确结构化设计的核心任务与阶段划分
  2. 掌握4项核心设计原则与底层逻辑
  3. 吃透高内聚、低耦合的核心评价标准
  4. 能独立完成结构化设计7步标准化流程落地

3.1.1 结构化设计的任务 核心工作

设计阶段总览

结构化设计分为总体设计(概要设计)详细设计两大递进阶段,核心是完成从需求到可编码方案的转化,全流程任务拆解如下:

🖥️ 设计任务时间线

核心任务明细表格

任务名称归属阶段核心动作输出成果核心目标
体系结构设计总体设计自顶向下功能分解,拆分层次化模块,定义模块调用与依赖关系模块结构图(MSD)搭建软件系统整体骨架,完成核心功能拆解
接口设计总体设计定义模块间、系统与外部的交互规则、数据传递格式与异常处理规则接口规格说明书保障模块协同顺畅,支撑信息隐藏原则落地
数据设计总体设计基于数据字典完成数据结构、文件结构、数据库逻辑设计数据字典、ER图、数据库设计文档保障全系统数据一致性与可用性
过程设计详细设计细化底层模块内部算法、执行流程、判断与循环逻辑流程图、N-S图、伪代码输出可直接转化为代码的实现逻辑
设计评审与优化全阶段验证需求覆盖率、模块独立性,迭代优化设计方案软件设计说明书、评审报告锁定设计基线,降低后续开发与维护成本

3.1.2 结构化设计的原则 设计准则

四大原则核心逻辑

所有设计原则最终服务于高内聚、低耦合的核心目标,原则间的逻辑关系如下:

🖥️ 设计原则逻辑关系图

原则明细与落地要求

  1. 自顶向下、逐步求精原则

    • 核心定义:从系统顶层总目标出发,逐层向下分解,将复杂大功能拆分为简单子功能,直至模块可直接编码实现
    • 📌 设计动作:先定整体框架,再细化每层功能,最后落地模块细节
    • ⚠️ 避坑提示:禁止自底向上拼凑模块,避免出现整体结构混乱的问题
  2. 模块化原则

    • 核心定义:将系统拆分为多个相对独立、功能单一、可单独验证的模块,通过模块组合实现系统完整功能
    • 📌 设计动作:一个模块只负责一项明确的子功能,拆分粒度可控
    • ⚠️ 避坑提示:禁止模块功能重叠、职责模糊,避免出现“万能模块”
  3. 抽象与信息隐藏原则

    • 核心定义
      • 抽象:忽略非本质细节,只对外暴露模块核心功能与接口,聚焦“模块能做什么”
      • 信息隐藏:模块内部实现逻辑、数据结构对外部完全隐藏,仅通过标准接口访问
    • 📌 设计动作:接口定义清晰稳定,内部实现可自由迭代
    • ⚠️ 避坑提示:禁止外部模块直接操作模块内部数据,避免出现强耦合
  4. 高内聚、低耦合原则

    • 核心定义:提升模块内部元素的关联紧密程度(高内聚),降低模块间的依赖关联程度(低耦合)
    • 📌 设计动作:模块拆分与重组均以该原则为唯一评价标准
    • ⚠️ 避坑提示:禁止为了拆分而拆分,牺牲模块独立性

⚠️ 重要提示

高内聚、低耦合是结构化设计的终极评价标准,直接决定软件的可维护性、可复用性与可靠性,贯穿设计全流程。


3.1.3 模块的独立性 核心指标

模块独立性核心逻辑

模块独立性是结构化设计的核心评价指标,指模块内部功能完整、逻辑自洽,同时与外部模块的关联与依赖尽可能弱的特性,其核心构成与价值如下:

🖥️ 模块独立性价值逻辑图

1. 耦合:模块间依赖程度衡量

耦合度从低到高分为7个等级,耦合度越低,模块独立性越强,设计要求与分级明细如下:

耦合等级(低→高)核心定义设计规范
无直接耦合两模块无任何直接关联,互不调用、不传参理想状态 无强制要求
数据耦合模块间仅通过参数传递简单基本类型数据推荐优先使用 最优低耦合方案
标记耦合模块间传递复合数据结构(结构体/对象),仅使用部分字段可合理使用 控制数据结构复杂度
控制耦合模块间传递控制信号,一个模块决定另一个模块的执行逻辑尽量避免 增强逻辑依赖
外部耦合多个模块依赖同一个外部环境(全局变量/外部文件/硬件)严格限制 控制使用范围
公共耦合多个模块访问同一个公共数据环境(全局数据区/共享内存)尽量避免 易导致错误扩散
内容耦合一个模块直接修改/访问另一个模块的内部数据/代码严格禁止 完全破坏模块独立性

2. 内聚:模块内关联程度衡量

内聚度从高到低分为7个等级,内聚度越高,模块功能专一性越强,模块独立性越好,设计要求与分级明细如下:

内聚等级(高→低)核心定义设计规范
功能内聚模块内所有元素共同完成一个且仅一个明确业务功能,缺一不可最优选择 设计优先追求
顺序内聚模块内处理元素与同一功能相关,必须按固定顺序执行,前序输出是后序输入高质量内聚 可正常使用
通信内聚模块内所有处理元素,都在同一数据结构上操作,或使用相同输入/输出数据中等内聚 可合理使用
过程内聚模块内处理元素仅按特定流程顺序执行,无统一功能目标低质量内聚 尽量避免
时间内聚模块内功能仅因同一时间段执行组合在一起(如初始化模块)低内聚 限制使用场景
逻辑内聚模块内功能仅因逻辑相似组合在一起(如一个模块处理所有报表打印)极差内聚 尽量避免
偶然内聚模块内元素无任何逻辑关联,仅随意拼凑在一起完全禁止 彻底破坏功能完整性

3.1.4 结构化设计的步骤 流程步骤

全流程执行总览

结构化设计是标准化的流程化方法,核心是将数据流图(DFD)转化为模块结构图(MSD),7步递进流程如下:

🖥️ 结构化设计7步流程图

每步核心执行明细

步骤序号核心输入核心动作核心输出
步骤1结构化分析成果(DFD、数据字典、需求规格说明书)复审需求完整性、准确性,明确系统功能边界与数据流转规则需求确认文档、设计边界说明书
步骤2确认后的数据流图(DFD)判定DFD类型,分为变换流事务流两类DFD类型判定报告
步骤3分类后的DFD对应映射方法完成初始模块结构生成:
• 变换流→变换分析法
• 事务流→事务分析法
初始模块结构图(MSD)
步骤4初始模块结构图基于高内聚低耦合准则优化:调整模块粒度、降低耦合、提升内聚、优化扇入扇出优化后的模块结构图
步骤5优化后的模块结构、数据字典细化模块接口定义,完成核心数据结构、数据库表结构设计接口设计文档、数据设计文档
步骤6底层原子模块清单设计模块内部算法、执行流程、异常处理逻辑,完成过程设计流程图、伪代码、详细设计说明书
步骤7全量设计成果整理标准化设计文档,组织跨角色评审,迭代优化后锁定设计基线软件设计说明书、评审通过报告

核心映射规则:变换流 vs 事务流

🖥️ 数据流类型对比图


📝 本节总结

结构化设计模块化、自顶向下、高内聚低耦合为核心,承接需求分析成果,通过标准化流程输出可落地的模块结构方案。它是软件工程传统设计方法的核心框架,其核心设计思想至今仍为现代软件开发提供基础指导。


习题 综合难度

  1. 简述结构化设计的两大核心阶段,以及各阶段的核心任务。
答案与解析

结构化设计分为总体设计(概要设计)和详细设计两大核心阶段:① 总体设计:核心任务是完成系统体系结构设计,通过自顶向下的功能分解搭建软件整体模块骨架,同步完成接口设计与数据设计,确定模块间的调用与依赖关系。② 详细设计:核心任务是完成过程设计,为每个底层原子模块设计内部算法、执行流程、逻辑细节,输出可直接用于编码的实现方案。

  1. 请写出结构化设计的四大核心原则。
答案与解析

结构化设计的四大核心原则为:

① 自顶向下、逐步求精原则;

② 模块化原则;

③ 抽象与信息隐藏原则;

④ 高内聚、低耦合原则。

  1. 什么是模块的独立性?衡量模块独立性的两大核心维度是什么?
答案与解析

模块独立性指模块内部功能完整、逻辑自洽,同时模块与外部模块的关联、依赖尽可能弱的特性,是结构化设计的核心评价指标。

衡量模块独立性的两大核心维度为:

① 耦合:衡量模块之间相互关联、依赖的紧密程度;

② 内聚:衡量模块内部所有元素之间逻辑关联的紧密程度。


📚 拓展阅读
  1. 经典著作:《结构化设计》Edward Yourdon / Larry L. Constantine
  2. 拓展知识:结构化分析(SA)-结构化设计(SD)-结构化编程(SP)全流程方法
  3. 实操案例:管理信息系统的结构化设计完整落地案例