第八讲:结构化设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
内容提纲
结构化设计方法概述
结构化设计的基本概念
两种数据流类型:变换型和事务型 系统体系结构的描述工具:系统结构图 结构化设计过程
概要设计
变换分析 事务分析
详细设计
案例:图书订购系统
13
两种数据流类型—变换型
特征:信息沿输入通路进入系统,同时由外部
形式变换成内部形式,进入系统的信息通过变 换中心,经加工处理以后再沿输出通路变换成 外部形式离开软件系统。 组成:由输入、变换中心和输出三部分组成
示例:图书订购系统DFD
顾客
订购单
帐 单
图书 订购 收费 数据 收费
核准的订 购单
制作 发书单 发书单
顾客
经理
财务报表
制作 财务报 表
图书库存
帐务数据库
书库 管理
入库单 图书代理 商
SA的任务:建立分层数据流图
顶层图: 0层图: 中间层图:
1.2 1.1 3 X
4
1
2
2.1
2.2
1.3
2.3
2.4
概要设计
变换分析 事务分析
详细设计
案例:图书订购系统
22
结构化设计过程
1:复审并精化数据流图 2:鉴别数据流图是属于变换型还是事务型 3:按照结构化设计的方法,把数据流图转换为初 始的软件结构图 4:按照启发式规则的指导,改进初始的软件结 构图,优化设计,获得最终软件结构图 5:写出详细的接口描述和全局数据结构 6:复审优化后的设计
两种数据流类型—事务型
特征:数据沿输入通路到达一个加工T,这个
加工根据输入数据的类型在若干个动作序列中 选出一个来执行。 加工T 称为事务中心,它完成以下任务:
(1) 接收输入数据(输入数据又称为事务)。 (2) 分析每个事务以确定它的类型。 (3) 根据事务类型选取一条动作路径。
内容提纲
DFD的基本元素:
数据流(data flow):由一组固定成分的数据组成,代表 数据的流动方向 加工(process):描述了输入数据流到输出数据流的变换, 即将输入数据流加工成输出数据流 文件(file):使用文件、数据库等保存某些数据结果供 以后使用 源或宿(source or sink):软件系统输入数据的来源和 输出数据的去向
第二级分解中输入输出的另外一种画法:显示数 据在输入输出通道中的变换
输入通道的第二种画法:
输出通道的第二种画法:
概要设计:事务分析
事务:引起式、触发式启动单一动作或一
串动作的任何数据、控制、信号、事件或状 态变化。 事务分析:由事务型数据流图映射为软件 结构的过程。
事务分析的具体过程
(1) 确定输入、事务变换和输出路径的集合(划分 集合)。 (2) 根据事务的功能设计—个总控模块(设计总控)。 (3) 确定顶层模块和第一层模块(建立映射)。 (4) 继续下层分解(递归自展)。
过多限制
设计优化
设计优化是指在软件设计之后,进一步对系统的设计 进行优化 一般力求:
尽量少的模块,尽量简单的数据结构 对有时间要求的软件,挑选最耗费时间的那些模块,精心设
计它们的处理过程,以求提高效率。 ……
内容提纲
结构化设计方法概述
结构化设计的基本概念
两种数据流类型:变换型和事务型 系统体系结构的描述工具:系统结构图 结构化设计过程
映射成直接或间接受输出模块控制的一个低层次模块;
3,最后把变换中心内的每个处理映射成受变换模块控
制的一个模块。
1,第一层分解,设计顶 层和第一层
2,第二层分解
1,第一层分解,设计顶 层和第一层 2,第二层分解
1,第一层分解,设计顶 层和第一层
2,第二层分解
3-第二级分解,设计中、下 层模块(2/2)
概要设计
变换分析 事务分析
详细设计
案例:图书订购系统
53
详细设计
详细设计就要对软件结构中的每一个模块确定使 用的算法或块内数据结构,并用某种选定的表达
工具给出清晰的描述。 详细设计的表达工具
程序流程图 盒图 PAD 图 PDL HIPO 图
详细设计的表达工具:PDL
结构化设计方法概述
结构化设计的基本概念
两种数据流类型:变换型和事务型 系统体系结构的描述工具:系统结构图 结构化设计过程
概要设计
变换分析 事务分析
详细设计
案例:图书订购系统
18
系统体系结构的描述工具: 系统结构图
缩写:SC(Structure Chart) 是SD 方法在概要设计中使用的主要表达工
PDL(Program Design Language),又被称为伪程 序或伪码
PROCEDURE spellcheck IS //查找拼错的单词 BEGIN xxxxxx //具体的查找过程 END spellcheck
示例:图书订购系统DFD
顾客
订购单
帐 单
图书 订购 收费 数据 收费
核准的订 购单
具,用来显示软件的组成模块及其调用关系。
系统结构图:表现形式
用矩形框来表示模块 用带箭头的连线表示模块间的调用关系
系统结构图:模块间调用关系
简单调用 选择调用 循环调用
内容提纲
结构化设计方法概述
结构化设计的基本概念
两种数据流类型:变换型和事务型 系统体系结构的描述工具:系统结构图 结构化设计过程
制作 发书单 发书单
顾客
经理
财务报表
制作 财务报 表
图书库存
帐务数据库
书库 管理
入库单 图书代理 商
第一步:对DFD的分析和划分
顾客 订购单 帐 单 财务报表 制作 财务报 表 图书 订购 核准的订 购单 制作 发书单 发书单 顾客
收费 数据
收费
库存修 改信息
库存信息 图书库存 库存信息
经理
账务信息
第九章
结构化设计方法
9
内容提纲
结构化设计方法概述
结构化设计的基本概念
两种数据流类型:变换型和事务型 系统体系结构的描述工具:系统结构图 结构化设计过程
概要设计
变换分析 事务分析
详细设计
案例:图书订购系统
10
结构化设计方法概述
提出时间:由Yourdon 和Constantine 等于
结构化分析(Structured Analysis 简称SA) 结构化设计(Structuresd Design 简称SD) 结构化程序设计(Structured Programmin 简称SP)
SA的描述工具:数据流图
Data Flow Diagram(简称DFD):
描述输入数据流到输出数据流的变换(即加工)过程,用 于对系统的功能建模
1974 年提出的
目标:与结构化分析相衔接,根据需求阶段
对数据流的分析设计软件结构
结构化设计的主要内容
概要设计
设计软件系统的体系结构(也即软件系统的模块 结构)与接口 主要任务是将数据流图映射为软件系统结构图
详细设计:
对概要设计的每一个模块进行数据设计和过程设 计
关键点:软件系统的体系结构设计
输入模块:其功能是向主模块提供数据;
输出模块:其功能是把主模块提供的数据输出; 变换模块:其功能是把逻辑输入变换成逻辑输出。
1,第一层分解,设计顶 层和第一层
2-进行第一级分解,设计顶 层和第一层模块(2/2)
第一层的另外一种画法:
在第一层不是每一分支只画一个模块,而是按照 实际情况确定模块的数量
在设计过程中,当出现作用域不在控制域之内时,可以用以下 措施纠正: (1) 将把判定所在的模块合并至上层模块中,使判定的位置提 高。 (2) 将受判定影响的模块移到模块控制范围之内。 (3) 将判定上移到层次中较高的位置。
模块分解中的启发式规则
1. 改进软件结构以提高模块独立性 2. 模块的大小要适当 3. 深度、宽度、扇出和扇入都应适当 4. 模块的作用域应在控制域之内 5. 力争降低模块接口的复杂程度 6. 设计单入口单出口的模块 7. 模块功能应该可预测,避免对模块施加
内容提纲
结构化设计方法概述
结构化设计的基本概念
两种数据流类型:变换型和事务型 系统体系结构的描述工具:系统结构图 结构化设计过程
概要设计
变换分析 事务分析
详细设计
案例:图书订购系统
24
概要设计:变换分析
变换分析是一系列设计步骤的总称,经过
这些步骤把具有变换流特点的数据流图映射 成为一个预定义的程序结构模板。 变换分析的步骤:
账务信息
帐务数据库
书库 管理
入库单 图书代理 商
第一步:对DFD的分析和划分
顾客 订购单 帐 单 财务报表 制作 财务报 表 图书 订购 核准的订 购单 制作 发书单 发书单 顾客
收费 数据
收费
库存修 改信息
库存信息 图书库存 库存信息
经理
账务信息
账务信息
帐务数据库
Fra Baidu bibliotek
书库 管理
入库单 图书代理 商
第二步:进行第一级分解,设 计顶层和第一层模块
课程进度
用户称述
问题定义
软件定义 阶段
可行性分析
需求分析
软件开发 阶段
设计
我们现在的 位置
测试
编码
运行维护 阶段
维护
两种软件开发方法
用户称述
问题定义
软件定义 阶段
可行性分析
需求分析
结构化 方法
软件开发 阶段
设计
面向对 象方法
编码
测试
运行维护 阶段
维护
结构化方法
一种面向数据流的传统软件开发方法 分为:
收费 数据
收费
经理
财务报表
制作 财务报 表
库存信息 账务信息 书库 管理 入库单 图书代理 商
账务信息
帐务数据库
刘春 计算机与信息工程学院 软件工程系
回顾—软件设计基础
软件设计的目标:弄清软件系统怎么做? 软件设计的任务:对软件系统的体系结构、接 口、数据和过程(或者对象)进行设计 软件设计的基本概念和原则:模块与模块化、
模块独立性(内聚与耦合)、抽象与逐步求精 、信息隐藏 软件体系结构:软件系统构件的集合 软件体系结构风格:软件系统的体系结构的惯 用模式
第一层分解的另外一种画法
3-第二级分解,设计中、下 层模块(1/2)
第二级分解就是把数据流图中的每个加工映射成 软件结构中的一个适当的模块。
具体过程:
1,从变换中心的边界开始,逆着输入通路向外移动,
把输入通路中每个加工映射成软件结构中输入模块控制 下的一个低层次模块;
2,然后沿输出通路向外移动,把输出通路中每个加工
1. 对DFD 图的分析和划分
2. 进行第一级分解,设计顶层和第一层模块
3. 第二级分解,设计中、下层模块
1-对DFD 图的分析和划分
标明数据流的边界。
从三个方面来考虑:
多股数据流汇集的地方往往是系统的变换中心部分。 可以从数据流图的物理输入开始,一步一步向系统中间移动,
首先区分输入流、输出流和变换中心3 个部分,
过多限制
模块分解中的启发式规则
改进软件结构以提高模块独立性 模块的作用域定义为受该模块内一个判定影响的所有模 块的集合。 2. 模块的大小要适当 模块的控制域是指这个模块本身以及所有直接或间接从 3. 深度、宽度、扇出和扇入都应适当 属于它的模块的集合。 4. 模块的作用域应在控制域之内
1.
图书订购主控制模块
系统输入
图书订购处理
系统输出
输入 控制
变换 控制
输出 控制
第三步:进行第二级分解,设 计中下层模块
第三步:进行第二级分解,设 计中下层模块
入库单、订购 单、账务信息、 库存信息
系统输入
入库单
订购单
账务信息
库存信息
顾客
订购单 帐 单
图书 订购
核准的订 读订 读入 读账务 读库存 购单 库单 制作 发书单 购单 信息 顾客 信息 发书单 库存修 改信息 库存信息 图书库存
概要设计:变换-事务混合型分析
变换-事务混合:一个数据流图中既有变换
又有事务 分析策略:以一种分析(比如以变换分析) 为主,另一种分析为辅
变换-事务混合型分析
模块分解中的启发式规则
1. 改进软件结构以提高模块独立性 2. 模块的大小要适当 经验表明,一个模块的规模不应过大,通常规定其语句 3. 深度、宽度、扇出和扇入都应适当 行数为50~100 行,最多不超过500 行。 4. 模块的作用域应在控制域之内 5. 力争降低模块接口的复杂程度 6. 设计单入口单出口的模块 7. 模块功能应该可预测,避免对模块施加
一直到数据流不再被看成是系统的输入为止,则前一个数据流 就是系统的逻辑输入。
从物理输出端开始,一步一步向系统中间移动,就可以找到离
物理输出端最远且仍被看成是系统输出的数据流。
2-进行第一级分解,设计顶 层和第一层模块(1/2)
顶层都只有一个用于控制的主模块。 第一层一般包括输入、输出和变换3 个模块