结构化设计(SD
)方法是一种面向数据流的设计方法,它可以与SA
方法衔接。
结构化设计方法的基本思想是将系统设计成由相对独立、功能单一的模块组成的结构。
用结构图来描述软件系统的体系结构,指出一个软件系统由哪些模块组成,以及模块之间的调用关系。
(一)结构化设计的步骤
1. 建立初始结构图
结构化方法本质上是一种功能分解方法。
整个软件看作一个大的功能模块,通过分解将其分解成若干个较小的功能模块,每个较小的功能模块再进一步分解,直到得到一组不必再分解的模块。
当一个功能模块分解成若干个子功能模块时,该功能模块实际上就是根据业务流程调用相应的子功能模块,并根据其功能要求对子功能的结果进行处理,最终实现其功能要求。
2. 对结构图的改进
根据设计准则对一些不合理的设计进行改进。
3. 书写设计文档
在概要设计完成后,书写设计规格说明,特别要为每个模块书写模块的功能、接口、约束和限制等。
4. 设计评审
对设计结果及文档进行评审。
(二)数据流图到软件体系结构的映射
结构化设计是将结构化分析的结果(数据流图)映射成软件的体系结构(结构图)。
1. 信息流的类型
类型:
- 变换流。可以明显地分成输入、变换(主加工)和输出三大部分。
- 事务流。有明显的事务中心,各活动流以事务中心为起点呈辐射状流出。
2. 变换分析
变换分析是从变换流型的数据流图导出程序结构图。
(1)确定输入流和输出流,分离出变换中心
把数据流图中系统输入端的数据流称为物理输入,系统输出端的数据流称为物理输出,位于输入流和输出流之间的部分就是变换中心。
(2)第一级分解
第一级分解主要是设计模块结构的顶层和第一层。
变换分析的第一级分解- 顶层模块的功能是整个系统的功能
- 输入控制模块用来接收所有的输入数据
- 变换控制模块用来实现输入到输出的变换
- 输出控制模块用来产生所有的输出数据
(3)第二级分解
第二级分解主要是设计中、下层模块。
- 输入控制模块的分解。
从变换中心的边界开始,沿着每条输入通路,把输入通路上的每个加工映射成输入控制模块的一个底层模块。 - 输出控制模块的分解。
从变换中心的边界开始,沿着每条输出通路,把输出通路上的每个加工映射成输出控制模块的一个低层模块。 - 变换控制模块的分解。
根据数据流图中变换部分的实际情况进行设计。
(4)事务分析
事务分析是从事务流型数据流图中导出程序结构图。
- 确定事务中心和每条活动流的流动性。(见事务流图)
- 事务中心位于数条活动流的起点,这些活动流从该点呈辐射状流出。
- 每条活动流也是一条信息流,它可以是变换流,也可以是另一条事务流。
- 一个事务流的数据流图由输入流、事务中心和若干条活动流组成。
- 将事务流型数据流图映射成高层的程序结构。(见事务流型数据流图的高层程序结构图)
- 顶层模块的功能是整个系统的功能。
- 接收模块用来接收输入数据,对应于输入流。
- 发送模块是一个调度模块,控制下层的所有活动模块。
- 每个活动流模块对应于一条活动流,它也是该活动流映射成的程序结构图中的顶层模块。
- 进一步分解。
- 接收模块的分解类同于变换分析中输入控制模块的分解。
- 每个活动流模块根据其流特性(变换流或事务流)进一步采用变换分析或事务分析进行分解。
(5)结构化设计方法的设计步骤
- 复查并精化数据流图;
- 确定数据流图的信息类型(变换流或事务流);
- 根据流类型分别实施变换分析或事务分析;
- 根据系统设计的原则对程序结构图进行优化。
网友评论