面向数据流的设计方法
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程
2)事务流
事务流——单个数据项称为事务(transaction)沿传入路径 (也称接受通道)进入系统,由外部形式变换为内部形式 后到达事务中心,事务中心根据数据项计值结果从若干动 作路径中选定一条继续执行。 可见它是一个选择结构。
A
事务
T
B
事务中心
C
图9-1-3 事务流
“事务” 确定事务中心 和各动作路径 映射为事务结构
本章所述技术用于软件的概要设计描述,包括模块、 界面和数据结构的定义,这是所有后续开发的基础。
SD方法对那些顺序处理信息且不含层次数据结构的 系统最为有效,例如过程控制、复杂的数值分析过程、 以及科学与工程方面的应用。当SD方法用于完全的 数据处理时,即使系统中使用层次数据也同样行之有 效。
软件工程
精化数据流图 流的类型
“变换” 确定输入输出
流界 映射为变换结构
事务分析
提取控制结构 利用启发式策略
精化软件结构 描述接口和全局
数据结构
变换分析
图9-1-4 面向数据流的设计
复审
通过 详细设计
9.2 变换分析
软件工程
下面以“家庭保安系统”的传感器监测子系统 为例说明变换分析的各个步骤。
步骤一、复审基本系统模型
输入流
A
B
CD
变换流
软件工程
输出流
EF
G
H
主控模块
输入流 控制模块
变换流 控制模块
图9-2-5 一级分解
输出流 控制模块
9.2 变换分析
软件工程
图9-2-5展示的是一个简单三叉结构,实际处理 大型系统的复杂数据流时,可能需要多个模块 对应图9-2-5中一个模块的功能。“一级分解” 总的原则是,在完成控制功能并保持低耦合度、 高内聚度的前提下尽可能地减少模块的数量。
中信息通常以“外部世界”所具有的形式进入 系统,经过处理后又以这种形式离开系统。
外 部 表 信示 息内 部 表 示
输入流 输出流 变换流
时间 图9-1-1 信息流
1)变换流
软件工程
C
A
B
E
F
D
图9-1-2 典型的变换流
变换流的特点是:经过变换B的数据流一部分 先经过变换C到达变换E,然后另一部分经过 变换D到达E;即C和D是顺序结构。
9.1 SD方法的设计过程和有关概念
SD方法能方便地将数据流图转换为软件结构, 其过程分为五步: 1. 确定信息流的类型; 2. 划定流界; 3. 将数据流图映射为程序结构; 4. 提取层次控制结构; 5. 通过设计复审和使用启发式策略进 一步精化所得到的结构。
1)变换流
软件工程
变换流 — 在基本系统模型(即顶级数据流图)
a
a
a
b
c
a) 顺序调用
b
c
b) 选择调用
b
c) 循环调用
9.2 变换分析
软件工程
图9-2-5所示的结构图对应于一级分解的上两层 模块,即主控模块和下面几个中层控制模块:
① 输入流控制模块,接收所有输入数据;
② 变换流控制模块,对内部形式数据进行加工、 处理;
③ 输出流控制模块,产生输出数据。
9.2 变换分析
控制面板
用户命令
用 户 交 互 子 系 统
用户命 令处理
口令
系统 配置
原口令
配置数据 配置信息
启动/停止 系统和状态
口令 核对
配置数据
显示信息 和状态
配置 数据
显示 信息
传感数据 传感器
传感器 监测
警报器
显示器
电话线
图9-2-2 “家庭保安系统”的第一级DFD
9.2 变换分析
软件工程
步骤二、复审和精化软件数据流图
基本系统模型指顶级DFD和所有由外部提供的 信息。这一设计步骤是对系统规格说明书和软 件需求规格说明书进行评估。这两个文档描述 软件界面上信息的流程和结构。
控制面板
用户命令
传感数据
家庭保安 系统软件
传感器
软件工程
显示器 显示信息 警报类别 警报器 电话拨号音频
电话线
图9-2-1 “家庭保安系统”的顶级数据流图
配置信息 配置数据 传感器 标识类型
传感器标志 的类型和位置
软件工程
显示 传感器信息 格式
异常数 据判别
警报数据 产生警 警报类别 报信号
电话号码
读取传 感数据 传感数据
电话 拨号
电话拨号音频
图9-2-3 “传感器监测子系统”的第二级DFD
传感数据
读取传 感数据 置传感器标识
获取响 应信息
传感器标志的 类型和位置
这一步主要是对软件需求规格说明书中的分析模型进 行精化,直至获得足够详细的DFD。
例如,由“传感器监测子系统 ”的第一级(图9-2-2的 局部)和第二级(图9-2-3)DFD进一步推导出第三级 数据流图(图9-2-4),此时,每个变换对应一个独立 的功能,可以用一个具有较高内聚度的模块实现,至 此已有足够的信息可用于设计“传感器监测子系统” 的程序结构,精化过程亦可结束。
格式化 显示
传感器信息
产生 显示
Hale Waihona Puke Baidu
建立警
警报数据
报条件
号码表
产生警 警报类别 报信号
选择电 话号码
电话号码
配置数据 配置信息
连通电 话网
图9-2-4 “传感器监测子系统”的第三级DFD
产生拨 号脉冲 电话拨
号音频
软件工程
9.2 变换分析
步骤三、确定DFD的特性,判定它为变换流还 是事务流。 以图9-2-4所示DFD为例,数据沿一个传入路 径进来,沿三个传出路径离开,没有明显的事 务中心,因此,该信息流应属变换流。 步骤四、划定输入流和输出流的边界,孤立变 换中心。
9.2 变换分析
软件工程
步骤五、执行“一级分解”(first level factoring)
一级分解的目标是导出具有三个层次的程序结
构,顶层为主控模块;底层模块执行输入、计 算和输出功能;中层模块控制、协调底层的工 作。
9.2 变换分析
软件工程
程序结构可用Yourdon结构图表示。结构图中,方框代表模块, 框内名称表示模块的功能;方框之间的有向边(无二义时也 可用无向边)表示模块间的调用关系。调用模块上无标志表 示顺序调用:从左至右;菱形表示选择调用;弧形箭头表示 循环调用。但本书后面除了顺序调用外,并没有遵循这些规 定。
软件工程
第9章 面向数据流的设计方法
9.1 SD方法,9.2 变换分析 教学目的:掌握SD方法的基本概念,掌握变换分析
方法。 教学重点:SD方法、变换分析方法。 教学难点:变换分析方法。 教 具:多媒体教室、电子教案 作 业:看书
软件工程
第9章 面向数据流的设计方法
面向数据流的设计方法,即通常所说的结构设计法 (Structure Design,简称SD方法),由Yourdon和 Constantine等人于1974年提出的,与结构化分析 (SA)相衔接,根据对数据流的分析设计软件结构。