核心思想**:自顶向下、逐层分解,通过不断将复杂问题分解为更小、更易管理的子问题,实现对系统功能的逐步细化

一、结构化方法的构成
结构化方法由以下三个核心环节组成,是一种面向数据流的经典软件开发方法:

  1. 结构化分析(Structured Analysis, SA)

    • 目标:进行需求分析,明确系统“做什么”。
    • 方法:基于分解与抽象原则,采用数据流图(DFD)描述系统的功能模型。
    • 输出:系统的逻辑模型,包括数据流、加工、数据存储和外部实体。
  2. 结构化设计(Structured Design, SD)

    • 目标:完成概要设计,定义系统“怎么做”的总体结构。
    • 方法:依据模块独立性(高内聚、低耦合)、软件结构优化准则,将数据流图转换为软件结构图(SC图)。
    • 输出:系统的物理模型,即软件体系结构。
  3. 结构化程序设计(Structured Programming, SP)

    • 目标:实现详细设计与编码,确保程序逻辑清晰、可读性强。
    • 方法:仅使用顺序、选择(如if-else)、重复(如while循环)三种基本控制结构来构造程序。
    • 原则:避免使用goto语句,提升程序的正确性与可维护性。

二、结构化方法的核心思想与特点

  • 核心思想:自顶向下、逐层分解。通过不断将复杂问题分解为更小、更易管理的子问题,实现对系统功能的逐步细化。
  • 基本原则:功能的分解与抽象。
  • 历史地位:是软件工程领域最早出现的系统化开发方法,奠定了现代软件开发的基础。
  • 适用场景:特别适用于传统的数据处理系统,如银行、库存管理、财务系统等事务型应用。
  • 局限性
    • 不适合大规模、高度复杂的系统(如人工智能系统或大型分布式系统)。
    • 对需求变更响应能力差,难以适应快速变化的用户需求。
    • 缺乏对数据结构和对象的直接支持,导致后期维护困难。

三、本章核心内容概述
本章围绕传统软件开发流程展开,重点包括:

  • 系统分析与设计的基本过程;
  • 结构化分析与设计的具体技术与工具(如DFD、SC图);
  • WebApp 的分析与设计特点(虽以结构化为基础,但需结合事件驱动、导航设计等新要素);
  • 用户界面设计的原则与实践,强调可用性与用户体验。
  • 在结构化设计中,数据流图(DFD)中的“加工”(Process)是构建软件结构图(SC图)的核心依据。其映射过程遵循一定的规则和策略,主要目标是将系统的功能逻辑转化为可实现的模块化结构。

映射步骤与原则:

  1. 识别顶层加工(主加工)

    • DFD 的最高层通常为上下文图,表示整个系统作为一个单一加工。
    • 该主加工对应软件结构图中的主控模块(Main Control Module),作为程序的入口点。
  2. 逐层分解加工

    • 对每一层 DFD 中的每个加工进行分析,将其映射为一个独立的模块。
    • 每个加工代表一项具体的功能或处理逻辑,如“验证用户输入”、“计算订单总价”等。
    • 分解时遵循“一对一”或“一对多”的映射关系:
      • 一对一映射:一个加工直接对应一个模块(最常见情况)。
      • 一对多映射:复杂的加工进一步分解为多个子功能,对应多个下层模块。
  3. 根据数据流类型选择映射策略
    结构化设计根据数据流的特性采用不同的映射方式:

    • 变换流(Transform Flow)映射法

      • 当数据流图呈现明显的“输入—处理—输出”模式时使用。
      • 步骤:
        1. 找出逻辑输入、变换中心、逻辑输出边界;
        2. 建立主模块:负责控制流程;
        3. 创建输入、变换、输出三类从属模块;
        4. 构建层次化的调用关系。
      • 示例:工资管理系统中,“读取考勤数据 → 计算工资 → 生成报表”属于典型的变换流。
    • 事务流(Transaction Flow)映射法

      • 当某个加工(事务中心)接收输入并根据类型分发到多个不同处理路径时使用。
      • 映射结果是一个事务调度模块,调用多个事务处理模块。
      • 示例:订单处理系统中,“解析订单类型”后分发给“普通订单处理”、“加急订单处理”等模块。
  4. 优化模块结构

    • 应用模块独立性原则(高内聚、低耦合)对初步结构进行优化;
    • 合并功能相近的模块,拆分过于复杂的模块;
    • 确保调用层次清晰,避免交叉调用。

总结:
数据流图中的每一个“加工”都应被视为潜在的模块候选。通过识别数据流类型(变换流或事务流),结合自顶向下分解的思想,将加工逐步映射为具有明确职责和调用关系的软件结构图模块,从而完成从需求模型到设计模型的转换。
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bol5261

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值