面向数据流设计方法
9.2变换分析
2020/8/17
16
变换分析
9.2变换分析
步骤五 执行“一级分解”导出具有三个层次的程序结构。
顶层为总控模块; 底层模块执行输入、计算和输出功能;
如图9.8
输出流控制模块,产生输出数据
2020/8/17
17
一级分解
9.2变换分析
2020/8/17
18
变换分析
9.2变换分析
一级分解
2020/8/17
14
变换分析
9.2变换分析
划定输入流和输出流边界孤立变换中心。
输入、输出流边界的划分可能因人而异,不同的设计 人员可能把边界沿着数据通道向前推进或后退一个处 理框,这对最后的软件结构影响不大。
“传感器监测子系统”的流界在图9.7中用虚线表示。
2020/8/17
15
“传感器监测子系统”
每个变换对应一个独立的功能,可望用一 个具有较高内聚度 的模块实现,至此已有足够的信息用于设计“传感器监测子系 统”
2020/8/17
11
9.2变换分析
“传感器监测子系统”的第二级DFD
2020/8/17
12
9.2变换分析
“传感器监测子系统”的第三级DF
2020/8/17
13
变换分析
9.2变换分析
2020/8/17
9.1基本概念和设计过程
6
9.1基本概念和设计过程
在大系统的DFD中,变换流与事务流往往交织在一 起。
在基于事务流的系统中,当信息沿动作路径流动时可 能呈现变换流的特征,变换分析法与事物分析法需要
任何设计过程都不应该也不可能完全机械化,人的判 断力和创造性往往起决定作用。
2020/8/17
图9.4和图 9.5分别为“家庭保安系统”的顶层和第一层数据 流图。
2020/8/17
9
9.2变换分析
“家庭保安系统”的顶级数据流图
家庭保安系统-传感 器监测子系统的变
2020/8/17
10
变换分析
9.2变换分析
复审和精化软件数据流图
精化软件需求规格说明书中的分析模型,直至获得足够详细 的DFD。 如,由“传感器监测子系统”的第一级(图9.5的局部)和第 二级(图9.6)DFD进 一步推导出第三级数据流图(图9. 7)。
第九章
传统的软件工程方法学采用结构化设计(Structured Design,SD)技术,完成软件设计工作,通常把软件设计工作 划分为概要设计和详细设计这样两个阶段。
概要设计的主要任务是,通过仔细分析软件规格说明, 适当地对软件进行功能分解,从而把软件划分为模块,并且 设计出完成预定功能的模块结构。详细设计阶段详细地设计 每个模块,确定完成每个模块功能所需要的算法和数据结构。
确定DFD为变换流还是事务流。
系统内部的信息流总可以用变换流表示,倘若具有明显的事务 特性,还应该采用针对事务流的映射方法。设计人员首先要判 定DFD中占主导地位的信息流,并确定其特性,然后孤立出 具有变换特性或事务特性的支流,这些支流将用于精化由主导
以图9.7所示DFD为例,数据沿一个传入路径进来,沿三个传 出路径离开,无明显的事务中心,该信息流应属变换流。
每种软件设计方法都有长处和不足,选用哪种方法应考虑适 用的范围。
任何软件系统都可以用数据流图表示,面向数据流的设计方 法可用于任一种软件系统的开发。
该方法对那些顺序处理信息且不含层次数据结构的系统最为 有效,如,过程控制、复杂的数值分析过程、以及科学与工程 方面的应用等等。
当SD方法用于完全的数据处理时,即使系统中使用层次数 据同样行之有效。
7
面向数据流的设计
9.1基本概念和设计过程
2020/8/17
8
9.2 变换分析
第九章 面向数据流的设计方法
变换分析由一系列设计步骤组成,经过这些步骤就能把具有 变换流特点的数据流图,按预先确定的模式映射成软件结构。
基本系统模型指顶级DFD和所有由外部提供的信息。这一 设计步骤是对系统规格说明书和 软件需求规格说明书进行评 估。这两个文档描述软件界面上信息的流程和结构。
2020/8/17
3
9.1
第九章 面向数据流的设计方法
用SD方法将数据流图转换为软件结构 ( ( ( ( ( 第三步所用映射方法涉及信息流的类型。
2020/8/17
4
基本概念和设计过程
9.1基本概念和设计过程
在基本系统模型(即顶级数据 流图)中信息通常以“外部 世界”所具有的形式进入系 统,经过处理后又以这种形 式离开系统。 输入信息流沿传入路径进入系 统,同时由外部形式变换为 内部形式,经系统变换中心 加工、处理,作为输出信息 流又沿传出路径离开系统, 并还原为外部形式。
2020/8/17
1
将分析模型转换为设计
据数
加工
对 ห้องสมุดไป่ตู้ 描
述
图系关体数实据词典数据流图规格说明
状态转换图 控制 规 格说明
2020/8/17
过程设计 接口设计 体系结构设计 数据设计
2
第九章 面向数据流的设计方法
本章所述技术用于软件的概要设计描述 ,包括模块、界面和 数据结构的定义,这是后续开发的基础。
2020/8/17
20
二级分解
执行“二级分解” 把数据流图中每个处理 框映射成程序结构中一 个适当的模块,二级分 解过程是从变换中心的 边界开始沿输入、输出 通道向外移动,把遇到 的每个处理框映射为程 序结构中的一个模块。
2020/8/17
9.2变换分析
21
变换分析
9.2变换分析
二级分解 DFD的处理框与程序结构模块一一对应 按照软件设计原则,可能需要几个处理框聚合为一个 模块,或者把一个处理框细分为几个模块。 应根据“良好”设计的标准,进行二级分解。
图9.8展示的是一个简单三叉结构,实际处理大型 系统的复杂数据流时,可能需要两个甚至多个模块对 应上述一个模块的功能。
“一级分解”的原则 在完成控制功能并保持低耦合度、高内聚度的前提
2020/8/17
19
9.2变换分析
传感器监测子系统一级分解结果
控制模 块的名 字概括 了所有 下属模 块的功 能。
2020/8/17
若数据流图所描述的 信息流具有上述特征
则称作变换流。
5
基本概念和设计过程
事务流 由于基本系统模型呈变
换流,故任意系统中的信 息均可用变换流刻画。 若数据流具有如图9.2所 示形状,称“事务流”。 单个数据项称为事务 (transaction)沿传入 路径(接受通道)进入系 统,由外部形式变换为内 部形式后到达事务中心, 事务中心根据数据项计值 结果从若干动作路径中选