遇到的问题,都有解决方案,希望我的博客能为你提供一点帮助。
教材参考《软件工程导论(第六版)》
七、 层次图(H图)与HIPO图
1、概述
1.1、层次图(Hierarchy Chart / H图)
核心定义
- 目的:描述软件系统的层次结构,体现模块的从属关系。
- 适用阶段:自顶向下设计(Top-Down Design)的核心工具。
- 形态特征:
- 树状结构,根节点为系统顶层模块。
- 每个父模块分解为多个子模块。
- 不展示模块间数据流或控制流。
1.2、HIPO图(Hierarchy + Input-Process-Output)
核心组成
- H图(层次图):模块分解结构,附加追踪编号。
- IPO图:为每个模块定义输入、处理逻辑、输出三要素。
关键特征
- 可追踪性:模块编号体系(如
1.2.3
)明确层级关系。 - 设计完整性:H图描述结构,IPO图补充行为。
- IBM标准格式:常用于传统结构化方法,与数据字典配合使用。
1.3、层次图 vs. HIPO图对比
维度 | 层次图 | HIPO图 |
---|---|---|
核心目标 | 模块结构分解 | 模块结构+行为设计 |
信息维度 | 仅层次关系 | 层次+输入/处理/输出细节 |
可追溯性 | 无编号体系 | 严格编号支持模块追踪 |
设计深度 | 宏观架构 | 宏观到微观的完整设计 |
适用阶段 | 初步设计 | 详细设计阶段 |
2、符号
H图
HIPO图
3、例子
H图
HIOP图
八、 结构图
1、概述
步骤1:确定系统边界。步骤2:构建模块层次树。步骤3:定义调用关系。步骤4:标注数据流。步骤5:处理特殊逻辑。步骤6:连接数据存储。步骤7:验证与优化
2、符号
图形符号 | 名称 | 含义说明 | 应用场景示例 |
---|---|---|---|
▢ | 模块框 | 表示独立功能单元,通常以"动词+名词"命名 | 用户管理模块 订单处理模块 |
──── | 调用关系线 | 表示模块间的单向调用关系 | 订单模块 → 支付模块 |
⭯──→ (空心圆箭头) | 数据流箭头 | 表示模块间传递数据结构,通常伴随数据元素说明 | 传递订单数据:{订单ID, 金额, 商品列表} |
●──→ (实心圆箭头) | 控制信息箭头 | 表示传递控制标志或状态码,影响程序执行流程 | 传递支付验证状态:{状态码: 200, 错误信息: null} |
3、例子
九、面向数据流的设计方法
面向数据流的设计(Data Flow-Oriented Design)是一种基于数据流图(DFD)的结构化设计方法,旨在将系统的数据流程转换为模块化的软件结构。
1、步骤
1.1.绘制数据流图(DFD)
使用加工(Process)、