结构化设计

1、结构化设计是将结构化分析得到的数据流图映射成软件结构的一种设计方法
强调模块化、自顶向下逐步求精、信息隐蔽、高内聚低耦合等设计准则

2、结构化设计的内容
结构设计—概要设计
结构图(Structure Chart)
物理数据模型
过程设计—详细设计
模块的处理过程
N-S图,PAD,PDL等

3、结构图
用结构图(Structure Chart)来描述软件系统的体系结构
描述一个软件系统由哪些模块组成,以及模块之间的调用关系
结构图的基本成分有:模块、调用和数据

4、数据流图到结构图的映射
结构化设计是将结构化分析的结果(数据流图)映射成软件的体系结构(结构图)
将数据流图分为变换型数据流图和事务型数据流图,对应的映射分别称为变换分析和事务分析

5、变换流
特征:数据流图可明显地分成三部分
输入:信息沿着输入路径进入系统,并将输入信息的外部形式经过编辑、格式转换、合法性检查、预处理等辅助性加工后变成内部形式
变换:内部形式的信息由变换中心进行处理
输出:然后沿着输出路径经过格式转换、组成物理块、缓冲处理等辅助性加工后变成输出信息送到系统外

6、事务流
特征:数据流沿着输入路径到达一个事务中心,事务中心根据输入数据的类型在若干条动作路径中选择一条来执行
事务中心的任务是:接收输入数据(即事务);分析每个事务的类型;根据事务类型选择执行一条动作路径

7、变换分析
变换分析的任务是将变换型的DFD映射成初始的结构图,步骤如下:
划定输入流和输出流的边界,确定变换中心
进行第一级分解:将DFD映射成变换型的程序结构
进行第二级分解:将DFD中的加工映射成结构图中的一个适当的模块
标注输入输出信息:根据DFD,在初始结构图上标注模块之间传递的输入信息和输出信息

8、事务分析
将事务型DFD映射成初始的结构图
实例:银行业务中有存款、取款、查询余额、开户、转帐等多种事务,这种软件通常是接收一个事务,然后根据事务的类型执行一个事务处理的功能
事务型的结构图包括:
主控模块:完成整个系统的功能
接收模块:接收输入数据(事务)
发送模块:根据输入事务的类型,选择一个动作路径控制模块
动作路径控制模块:完成相应的动作路径所执行的子功能
在DFD图上确定边界
事务中心
接受部分(包括接受路径)
发送部分(包括全部动作路径)
画出SC图框架
DFD图的三个部分分别映射为事务控制模块,接受模块和动作发送模块
分解和细化接受分支和发送分支

9、优化结构图
启发式设计策略
1) 降低耦合度,提高内聚度
2) 避免高扇出,并随着深度的增加,力求高扇入
3) 模块的影响范围应限制在该模块的控制范围内

结构图改进技巧
减少模块间的耦合度
消除重复功能
消除“管道”模块
模块的大小适中
避免高扇出
应尽可能研究整张结构图,而不是只考虑其中的一部分

10、过程设计(详细设计)
目标: 确定应该怎样具体地实现所要求的系统。
精确地描述整个目标系统,从而在编码阶段可以把这个描述翻译成用某种程序设计语言书写的程序。
任务:编写软件的“过程设计说明书”
为每个模块确定采用的算法
确定每一模块使用的数据结构
确定模块接口的细节

过程设计的原则
清晰第一的设计风格
结构化的控制结构
逐步细化的实现方法

过程设计工具
流程图(Flow Diagram)
N-S图
PAD图(Problem Analysis Diagram)
PDL语言

11、结构程序设计
只有顺序、选择、循环这三种基本结构就能实现任何单入口单出口的程序。

PDL(Program Design Language)
过程设计语言(伪码 pseudocode)

猜你喜欢

转载自blog.csdn.net/algzjh/article/details/80734246