软件设计师考试 | 第六章 结构化开发方法 | 结构化设计方法


结构化设计( SD)方法是一种面向数据流的设计方法,它可以与 SA方法衔接。

结构化设计方法的基本思想是将系统设计成由相对独立、功能单一的模块组成的结构。

用结构图来描述软件系统的体系结构,指出一个软件系统由哪些模块组成,以及模块之间的调用关系。

(一)结构化设计的步骤

1. 建立初始结构图

结构化方法本质上是一种功能分解方法。

整个软件看作一个大的功能模块,通过分解将其分解成若干个较小的功能模块,每个较小的功能模块再进一步分解,直到得到一组不必再分解的模块。

当一个功能模块分解成若干个子功能模块时,该功能模块实际上就是根据业务流程调用相应的子功能模块,并根据其功能要求对子功能的结果进行处理,最终实现其功能要求。

2. 对结构图的改进

根据设计准则对一些不合理的设计进行改进。

3. 书写设计文档

在概要设计完成后,书写设计规格说明,特别要为每个模块书写模块的功能、接口、约束和限制等。

4. 设计评审

对设计结果及文档进行评审。


(二)数据流图到软件体系结构的映射

结构化设计是将结构化分析的结果(数据流图)映射成软件的体系结构(结构图)。

1. 信息流的类型

类型:

  • 变换流。可以明显地分成输入、变换(主加工)和输出三大部分。
  • 事务流。有明显的事务中心,各活动流以事务中心为起点呈辐射状流出。

2. 变换分析

变换分析是从变换流型的数据流图导出程序结构图。

(1)确定输入流和输出流,分离出变换中心

把数据流图中系统输入端的数据流称为物理输入,系统输出端的数据流称为物理输出,位于输入流和输出流之间的部分就是变换中心。

(2)第一级分解

第一级分解主要是设计模块结构的顶层和第一层。

变换分析的第一级分解
变换分析的第一级分解

  • 顶层模块的功能是整个系统的功能
  • 输入控制模块用来接收所有的输入数据
  • 变换控制模块用来实现输入到输出的变换
  • 输出控制模块用来产生所有的输出数据
(3)第二级分解

第二级分解主要是设计中、下层模块。

  1. 输入控制模块的分解。
    从变换中心的边界开始,沿着每条输入通路,把输入通路上的每个加工映射成输入控制模块的一个底层模块。
  2. 输出控制模块的分解。
    从变换中心的边界开始,沿着每条输出通路,把输出通路上的每个加工映射成输出控制模块的一个低层模块。
  3. 变换控制模块的分解。
    根据数据流图中变换部分的实际情况进行设计。
(4)事务分析

事务分析是从事务流型数据流图中导出程序结构图。

  1. 确定事务中心和每条活动流的流动性。(见事务流图)
  • 事务中心位于数条活动流的起点,这些活动流从该点呈辐射状流出。
  • 每条活动流也是一条信息流,它可以是变换流,也可以是另一条事务流。
  • 一个事务流的数据流图由输入流、事务中心和若干条活动流组成。
  1. 将事务流型数据流图映射成高层的程序结构。(见事务流型数据流图的高层程序结构图)
  • 顶层模块的功能是整个系统的功能。
  • 接收模块用来接收输入数据,对应于输入流。
  • 发送模块是一个调度模块,控制下层的所有活动模块。
  • 每个活动流模块对应于一条活动流,它也是该活动流映射成的程序结构图中的顶层模块。
  1. 进一步分解。
  • 接收模块的分解类同于变换分析中输入控制模块的分解。
  • 每个活动流模块根据其流特性(变换流或事务流)进一步采用变换分析或事务分析进行分解。

事务流图
事务流图
事务流型数据流图的高层程序结构图
事务流型数据流图的高层程序结构图

(5)结构化设计方法的设计步骤
  1. 复查并精化数据流图;
  2. 确定数据流图的信息类型(变换流或事务流);
  3. 根据流类型分别实施变换分析或事务分析;
  4. 根据系统设计的原则对程序结构图进行优化。

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值