第9章面向数据流的设计方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

接收部分 事务中心
8
9
SYSTEM 输入 1 散转 2 SUBSYS2
发送部分
SUBSYS1
SUBSYS3
图9-3-2 映射系统上层结构模块



9.3 事务分析
步骤六、分解并精化事务结构以及每条 动作路径所对应的结构。这些子结构是 根据流经每一动作路径的数据流特征, 采用本节或上节所述设计步骤逐一导出 的。
9.2 变换分析
程序结构的模块名已隐含了模块功能,但仍 有必要为每个模块写一个简要的处理说明, 它应当包括: 1.进出模块的信息(接口描述); 2.模块的局部信息; 3.处理过程陈述,包括任务和主要的判 断点的位置、条件; 4.对有关限制和一些专门特性的简要说 明(例如,文件I/O,独立于硬件的 特性,特殊的实时要求等)。 这些描述构成第一版设计规格说明书。
3.改造程序结构,使任一模块的作用域 在其控制域之内。
用户命令数据 读取 用户 命令
系统参数和数据
读取 系统 数据
启动 命令 处理
原始配置项
读取 配置 文件
命令类型
配置命令 启动/停止命令
格式化的 配置数据 配置信息 配置数据 显示信息 和状态 显示信息
确认口令
口令 读取 口令
启动/ 停止 启动/停止 消息 系统
四位数 配置数据
比较口令 与文件
有效口令 “再试”信 产生无效 息 的信息
外 部 表 示 内 部 表 示 输出流 输入流 变换流
信 息
时间
图9-1-1 信息流
1)变换流
C
A B E F
D 图9-1-2 典型的变换流 变换流的特点是:经过变换B的数据流一部分 先经过变换C到达变换E,然后另一部分经过 变换D到达E;即C和D是顺序结构。
2)事务流
事务流——单个数据项称为事务(transaction)沿 传入路径(也称接受通道)进入系统,由外部形式 变换为内部形式后到达事务中心,事务中心根据数 据项计值结果从若干动作路径中选定一条继续执行。 可见它是一个选择结构。
1.调整模块的功能和规模,降低耦合度,提高 内聚度。 若在几个模块中发现了共有的子功能,一般应 将此子功能独立出来作为一个模块,以提高单 个模块的内聚度。合并模块通常是为了减少控 制信息的传递以及对全程数据的引用,同时降 低接口的复杂性。 模块的规模没有固定的要求。以保持模块的独 立性为原则。一般而言,模块规模以一页左右 为宜(高级语言在75个语句左右)。
传感数据 警报器 显示器
传感器 监测
电话线
图9-2-2 “家庭保安系统”的第一级DFD
9.2 变换分析
步骤二、复审和精化软件数据流图 这一步主要是对软件需求规格说明书中的分析 模型进行精化,直至获得足够详细的DFD。 例如,由“传感器监测子系统”的第一级(图 9-2-2 的局部)和第二级(图 9-2-3 ) DFD 进一 步推导出第三级数据流图(图9-2-4),此时, 每个变换对应一个独立的功能,可以用一个具 有较高内聚度的模块实现,至此已有足够的信 息可用于设计“传感器监测子系统”的程序结 构,精化过程亦可结束。
9.3 事务分析
当数据流具有明显的事务特征时,即能找到一 个事务(亦称触发数据项)和一个事务中心, 采用事务分析法更为适宜。 下面以“家庭保安系统”中“用户交互子系统” 为例,说明事务分析法。 该子系统的第一级数据流图精化后得到如图 9-3-1所示第二级数据流图。图中“用户命令数 据”流入系统后,沿三条动作路径之一离开系 统,若将数据项“命令类型”看作事务,该子 系统的信息流具有明显的事务特征。
配置信息
主控模块 传感器输入 控制模块 警报条件控 制模块 警报输出控 制模块
图9-2-6 传感器监测子系统一级分解结果
9.2 变换分析
步骤六、执行“二级分解”。 二级分解的任务是把数据流图中每个处 理框映射为结构图中的一个模块。其过 程是从变换中心的边界开始沿输入、输 出通道向外移动;从变换中心的输入(出) 边界向外移动,把遇到的每个处理框映 射为结构图中相应控制模块下的一个模 块。
显示器 显示信息
警报类别
警报器
传感数据
电话拨号音频 电话线
传感器
图9-2-1 “家庭保安系统”的顶级数据流图
控制面板 用户命令 用 户 交 互 子 系 统
用户命 令处理
启动/停止 系统和状态 口令 口令 核对
系统 配置 配置数据
原口令 配置数据 配置信息 显示信息 和状态
配置 数据 显示 信息 传感器
课程名称:软件工程 第15讲 班 级: 日 期: 教 室: 教学题目:第9章 面向数据流的设计方法 9.1SD方法, 9.2变换分析 教学目的:掌握SD方法的基本概念,掌握变换分析 方法。 教学重点: SD方法、变换分析方法。 教学难点:变换分析方法。 教 具:多媒体教室、电子教案 作 业:看书
第9章 面向数据流的设计方法
9.2 变换分析
下面以“家庭保安系统”的传感器监测 子系统为例说明变换分析的各个步骤。 步骤一、复审基本系统模型 基本系统模型指顶级DFD和所有由外部 提供的信息。这一设计步骤是对系统规 格说明书和软件需求规格说明书进行评 估。这两个文档描述软件界面上信息的 流程和结构。
控制面板 用户命令
家庭保安 系统软件
9.2 变换分析
步骤五、执行“一级分解”(first level factoring) 一级分解的目标是导出具有三个层次的 程序结构,顶层为主控模块;底层模块 执行输入、计算和输出功能;中层模块 控制、协调底层的工作。
9.2 变换分析
程序结构可用Yourdon结构图表示。结构图中,方框 代表模块,框内名称表示模块的功能;方框之间的有 向边(无二义时也可用无向边)表示模块间的调用关 系。调用模块上无标志表示顺序调用:从左至右;菱 形表示选择调用;弧形箭头表示循环调用。但本书后 面除了顺序调用外,并没有遵循这些规定。
配置信息 配置数据 传感器 标识类型 读取传 感数据 传感数据
传感器标志 的类型和位置
显示 格式
传感器信息 警报类别
异常数 据判别
警报数据 电话号码 电话 拨号
产生警 报信号
电话拨号音频
图9-2-3 “传感器监测子系统”的第二级DFD
传感数据 读取传 感数据
传感器信息 产生 显示 置传感器标识 获取响 应信息 传感器标志的 类型和位置 建立警 报条件 格式化 显示 警报数据 产生警 报信号 警报类别
a a a
b
c
b
c
b
a) 顺序调用
b) 选择调用
c) 循环调用
9.2 变换分析
图 9-2-5 所示的结构图对应于一级分解的 上两层模块,即主控模块和下面几个中 层控制模块: ① 输入流控制模块,接收所有输入数据; ② 变换流控制模块,对内部形式数据进行 加工、处理; ③ 输出流控制模块,产生输出数据。
号码表
选择电 话号码 电话号码 连通电 话网 产生拨 号脉冲
配 置 数 据
配置信息 电话拨 号音频
图9-2-4 “传感器监测子系统”的第三级DFD
9.2 变换分析
步骤三、确定DFD的特性,判定它为变 换流还是事务流。 以图9-2-4所示DFD为例,数据沿一个传 入路径进来,沿三个传出路径离开,没 有明显的事务中心,因此,该信息流应 属变换流。 步骤四、划定输入流和输出流的边界, 孤立变换中心。
9.1 SD方法的设计过程和有关概念
SD 方法能方便地将数据流图转换为软件结构, 其过程分为五步: 1. 确定信息流的类型; 2. 划定流界; 3. 将数据流图映射为程序结构; 4. 提取层次控制结构; 5. 通过设计复审和使用启发式策略进 一步精化所得到的结构。
1)变换流
变换流 — 在基本系统模型(即顶级数据 流图)中信息通常以“外部世界”所具 有的形式进入系统,经过处理后又以这 种形式离开系统。
9.4.1 启发式设计策略
2.调整软件结构的深度、宽度、扇出和扇 入数目,改善软件结构性能。 经验表明,设计良好的软件结构通常顶 层扇出较高,中层扇出较低,底层又高 扇入到公共的实用模块中去。
9.4.1 启发式设计策略
应避免的结构
应追求的结构
图9-4-1 应追求与避免的程序结构
9.4.1 启发式设计策略
9.2 变换分析
输入流 变换流 输出流
A C
B E D F G H
主控模块 输入流 控制模块
变换流 控制模块
输出流 控制模块
图9-2-5 一级分解
9.2 变换分析
图9-2-5展示的是一个简单பைடு நூலகம்叉结构,实 际处理大型系统的复杂数据流时,可能 需要多个模块对应图9-2-5中一个模块的 功能。“一级分解”总的原则是,在完 成控制功能并保持低耦合度、高内聚度 的前提下尽可能地减少模块的数量。 “传感器监测子系统”一级分解如图 9-2-6所示,其中控制模块的名字概括了 所有下属模块的功能。
无效口令
图9-3-1 用户交互子系统的二级数据流图
9.3 事务分析
事务分析法可概括为七个步骤: 步骤一、复审基本系统模型; 步骤二、复审并精化软件数据流图; 步骤三、确定数据流图的特征; 步骤四、指出事务中心,确定接收部分 和发送部分的流界; 步骤五、映射出系统上层模块结构;
3 1 2 4 5
6 7 10 11
面向数据流的设计方法,即通常所说的结构设计法 (Structure Design,简称SD方法),由Yourdon和 Constantine等人于1974年提出的,与结构化分析 (SA)相衔接,根据对数据流的分析设计软件结构。 本章所述技术用于软件的概要设计描述,包括模块、 界面和数据结构的定义,这是所有后续开发的基础。 SD方法对那些顺序处理信息且不含层次数据结构的 系统最为有效,例如过程控制、复杂的数值分析过程、 以及科学与工程方面的应用。当SD方法用于完全的 数据处理时,即使系统中使用层次数据也同样行之有 效。
3 1 2 4 5 SUBSYS2 输入控制 7 变换控制 10
6 7 10 11
接收部分 事务中心
8
9 发送部分 输出控制 11
4 图9-3-3 设计系统下层模块结构
9.3 事务分析
SYSTEM 输入 1 SUBSYS1 3 输入控制 散转 2 SUBSYS2 变换控制 输出控制 11 8 SUBSYS3
A 事务 事务中心 T B
C
图9-1-3 事务流
精化数据流图 “事务” 确定事务中心 和各动作路径 映射为事务结构 提取控制结构 事务分析 利用启发式策略 精化软件结构 变换分析 流的类型 “变换” 确定输入输出 流界 映射为变换结构
描述接口和全局 数据结构
复审 通过 详细设计
图9-1-4 面向数据流 的设计
输入流
变换流
输出流
A C
B E D
主控模块
F
G
H
输入流控制 模块 B A D C
变换流控制 模块
E F
输出流控制 模块 G H
图9-2-7 二级分解
9.2 变换分析
DFD的处理框与程序结构模块一一对应, 但按照软件设计原则进行设计时,可能 需要把几个处理框聚合为一个模块,或 者把一个处理框裂变为几个模块。总之, 应根据“良好”设计的标准,进行二级 分解。 二级分解后得到的仅仅是程序结构的 “雏形”(first-cut),后续的复审和精 化会反复修改。
5
9
6
7
4
10
图9-3-4 将模块结构组合,得到程序结构雏形
9.3 事务分析
步骤七、使用启发式设计策略,精化所 得程序结构雏形,改良软件质量。这一 步骤与变换分析法相同。
SYSTEM 输入 1 3 6 7 散转 2 SUBSYS2 10 11 8 5 9
4
9.4 设计优化及原则
9.4.1 启发式设计策略
E F
G H
图9-2-8 结构的优化
9.2 变换分析
上述七个设计步骤的目标是给出软 件的一个整体描述。 一旦有了这样一个描述,设计人员 即可从整体角度评价和精化软件的 总体结构,此时修改所需耗费不多, 却能大大提高软件质量。
课程名称:软件工程 第16讲 班 级: 日 期: 教 室: 教学题目:9.3事务分析,9.4设计优化原则 教学目的:掌握事务分析方法,理解设计优化原则。 教学重点:事务分析方法。 教学难点:事务分析方法。 教 具:多媒体教室、电子教案 作 业:习题7
9.2 变换分析
步骤七、采用启发式设计策略,精化所 得程序结构雏形,改良软件质量
对于程序结构的雏形,以“模块独立”
为指导思想,对模块进行整合或分解,
旨在追求高内聚、低耦合,以及易实现、
易测试、易维护的软件结构。
主控模块 输入流控制模块 B D
变换流控制模块
E
输出流控制模块 G
A
C
F
主控模块
H
输入流控制模块 B A D C
相关文档
最新文档