第4章 - 结构化设计方法
结构化设计方法分为两类:
- 根据系统的数据流进行设计 ------- ,面向数据流的设计,或称为过程驱动设计
- 根据系统的数据结构进行设计 ------,面向数据结构的设计,或称为数据驱动设计
软件设计原则
-
分而治之
-
模块独立性
若某一个模块具有单一的功能且与其他模块没有太多的联系,那么,我们则称此模块具有模块独立性。好的模块设计:高内聚、低耦合
-
提高抽象层
-
复用性设计
-
灵活性设计
结构化设计
从工程管理的角度,可以将软件设计分为两个阶段:概要设计阶段和详细设计阶段。
- 概要设计阶段完成体系结构设计、数据设计、接口设计
- 详细设计阶段完成过程设计
-
体系结构设计
基于数据流方法的设计过程。基于数据流的设计方法可以很方便地将数据流图中表示地数据流映射成软件结构,主要的过程如下:
- 复查和精化数据流图
- 确定数据流图中数据流地类型。典型地数据流类型有变换型数据流和事务型数据流。数据流类型决定了映射的方法。
- 导出初始的软件结构图
- 逐级分解
- 精化软件结构
- 导出接口描述和全局数据结构
典型的数据流类型:变换型数据流、事务型数据流。数据流的类型不同,得到的系统结构也不同。通常,一个系统中所有的数据流都可以认为是变换流,但是,当遇到有明显事务特性的数据流时,建议采用事务型映射方法进行设计。
变换型数据流 和 变换型系统结构图
变换型数据处理问题的工作过程大致分为3步骤:取得数据,变换数据,给出数据。
变换型映射方法:
- 重画数据流图
- 区分有效输入和有效输出和中心变换
- 进行一级分解,设计上层模块
- 进行二级分解,设计输入、输出和中心变换部分的中、下层模块
事务型数据流与事务型系统结构图
另一类典型的数据处理问题是事务型的。通常它是接受一项事务,根据事务处理的特点和性质,选择分派给一个适当的处理单元,然 后给出结果。我们把完成分派任务的部分叫做事务处理中心,或者分派部件。
事务型映射方法
在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理