一、结构化方法的构成
结构化方法由以下三个核心环节组成,是一种面向数据流的经典软件开发方法:
-
结构化分析(Structured Analysis, SA)
- 目标:进行需求分析,明确系统“做什么”。
- 方法:基于分解与抽象原则,采用数据流图(DFD)描述系统的功能模型。
- 输出:系统的逻辑模型,包括数据流、加工、数据存储和外部实体。
-
结构化设计(Structured Design, SD)
- 目标:完成概要设计,定义系统“怎么做”的总体结构。
- 方法:依据模块独立性(高内聚、低耦合)、软件结构优化准则,将数据流图转换为软件结构图(SC图)。
- 输出:系统的物理模型,即软件体系结构。
-
结构化程序设计(Structured Programming, SP)
- 目标:实现详细设计与编码,确保程序逻辑清晰、可读性强。
- 方法:仅使用顺序、选择(如if-else)、重复(如while循环)三种基本控制结构来构造程序。
- 原则:避免使用goto语句,提升程序的正确性与可维护性。
二、结构化方法的核心思想与特点
- 核心思想:自顶向下、逐层分解。通过不断将复杂问题分解为更小、更易管理的子问题,实现对系统功能的逐步细化。
- 基本原则:功能的分解与抽象。
- 历史地位:是软件工程领域最早出现的系统化开发方法,奠定了现代软件开发的基础。
- 适用场景:特别适用于传统的数据处理系统,如银行、库存管理、财务系统等事务型应用。
- 局限性:
- 不适合大规模、高度复杂的系统(如人工智能系统或大型分布式系统)。
- 对需求变更响应能力差,难以适应快速变化的用户需求。
- 缺乏对数据结构和对象的直接支持,导致后期维护困难。
三、本章核心内容概述
本章围绕传统软件开发流程展开,重点包括:
- 系统分析与设计的基本过程;
- 结构化分析与设计的具体技术与工具(如DFD、SC图);
- WebApp 的分析与设计特点(虽以结构化为基础,但需结合事件驱动、导航设计等新要素);
- 用户界面设计的原则与实践,强调可用性与用户体验。
- 在结构化设计中,数据流图(DFD)中的“加工”(Process)是构建软件结构图(SC图)的核心依据。其映射过程遵循一定的规则和策略,主要目标是将系统的功能逻辑转化为可实现的模块化结构。
映射步骤与原则:
-
识别顶层加工(主加工)
- DFD 的最高层通常为上下文图,表示整个系统作为一个单一加工。
- 该主加工对应软件结构图中的主控模块(Main Control Module),作为程序的入口点。
-
逐层分解加工
- 对每一层 DFD 中的每个加工进行分析,将其映射为一个独立的模块。
- 每个加工代表一项具体的功能或处理逻辑,如“验证用户输入”、“计算订单总价”等。
- 分解时遵循“一对一”或“一对多”的映射关系:
- 一对一映射:一个加工直接对应一个模块(最常见情况)。
- 一对多映射:复杂的加工进一步分解为多个子功能,对应多个下层模块。
-
根据数据流类型选择映射策略
结构化设计根据数据流的特性采用不同的映射方式:-
变换流(Transform Flow)映射法:
- 当数据流图呈现明显的“输入—处理—输出”模式时使用。
- 步骤:
- 找出逻辑输入、变换中心、逻辑输出边界;
- 建立主模块:负责控制流程;
- 创建输入、变换、输出三类从属模块;
- 构建层次化的调用关系。
- 示例:工资管理系统中,“读取考勤数据 → 计算工资 → 生成报表”属于典型的变换流。
-
事务流(Transaction Flow)映射法:
- 当某个加工(事务中心)接收输入并根据类型分发到多个不同处理路径时使用。
- 映射结果是一个事务调度模块,调用多个事务处理模块。
- 示例:订单处理系统中,“解析订单类型”后分发给“普通订单处理”、“加急订单处理”等模块。
-
-
优化模块结构
- 应用模块独立性原则(高内聚、低耦合)对初步结构进行优化;
- 合并功能相近的模块,拆分过于复杂的模块;
- 确保调用层次清晰,避免交叉调用。
✅ 总结:
数据流图中的每一个“加工”都应被视为潜在的模块候选。通过识别数据流类型(变换流或事务流),结合自顶向下分解的思想,将加工逐步映射为具有明确职责和调用关系的软件结构图模块,从而完成从需求模型到设计模型的转换。


598

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



