结构化设计方法(Structured Design, SD)是一种面向数据流的软件设计方法,主要用于将需求分析阶段得到的数据流图(DFD)转换为软件的模块结构。该方法通过结构图(Structure Chart)、层次图和 HIPO 图来描述系统的模块划分及其调用关系。
其中,结构图是核心工具,用于表示软件系统的模块组成及模块之间的调用关系。其主要成分包括:
- 模块(Module):用矩形表示,矩形内标注模块名称,代表一个功能独立的程序单元。
- 调用关系(Call):用从调用模块指向被调用模块的箭头或直线表示,说明控制流的方向。
- 数据传递(Data):在调用线上可标注数据参数,表示模块间传递的数据信息,体现数据流。
此外:
- 层次图展示模块间的上下级关系,体现系统的分层结构。
- HIPO 图(Hierarchy plus Input-Process-Output)是在层次图的基础上,为每个模块附加 I-P-O(输入-处理-输出)说明,更全面地描述模块功能。
这些图形工具共同帮助开发人员清晰地理解系统结构,提升模块的内聚性与降低耦合度,从而增强软件的可维护性和可读性。
示例结构图片段:
+-----------+ +-------------+
| 主模块 | ----> | 输入模块 |
+-----------+ +-------------+
|
v
+-------------+
| 处理模块 |
+-------------+
|
v
+-------------+
| 输出模块 |
+-------------+
结构图(Structure Chart)与数据流图(Data Flow Diagram, DFD)是结构化软件开发过程中两个重要的图形工具,它们在系统分析与设计的不同阶段发挥作用,既有区别又有密切联系。
区别:
| 比较维度 | 数据流图(DFD) | 结构图(Structure Chart) |
|---|---|---|
| 目的 | 描述系统中数据的流动、变换和存储过程,强调“数据如何被处理” | 描述软件的模块结构及模块间的调用关系,强调“程序如何组织” |
| 关注点 | 数据流、加工(处理)、数据存储、外部实体 | 模块、调用关系、接口参数(数据/控制信息) |
| 表示内容 | 数据的来源、去向、处理逻辑和存储 | 程序的模块划分及其控制层次结构 |
| 使用阶段 | 需求分析阶段 | 软件设计阶段(尤其是概要设计) |
| 图形元素 | 圆角矩形(处理)、箭头(数据流)、方框(外部实体)、双线(数据存储) | 矩形(模块)、箭头或直线(调用关系),可标注数据或控制信号 |
| 方向性 | 强调数据流动方向 | 强调控制调用方向 |
联系:
- 转化关系:结构图通常由DFD导出。通过分析DFD中的处理流程(如变换型或事务型数据流),可以映射为相应的模块结构。
- 一致性要求:结构图中的模块应实现DFD中对应处理的功能,确保功能覆盖完整。
- 共同目标:两者都服务于系统的结构化建模,帮助开发人员从不同角度理解系统逻辑。
简言之,DFD回答“做什么”(What)的问题,而结构图回答“怎么做”(How)的问题。DFD是结构图设计的基础,结构图是将DFD中的逻辑功能转化为程序结构的关键步骤。


1481

被折叠的 条评论
为什么被折叠?



