




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程 教材 主编曹哲高诚中国水利水电出版社 教案 河北工业大学廊坊分院计算机系黄南川 软件工程 第8章面向数据流的设计方法 面向数据流的设计方法 即通常所说的结构设计法 StructureDesign 简称SD方法 由Yourdon和Constantine等人于1874年提出的 与结构化分析 SA 相衔接 根据对数据流的分析设计软件结构 本章所述技术用于软件的概要设计描述 包括模块 界面和数据结构的定义 这是所有后续开发的基础 SD方法对那些顺序处理信息且不含层次数据结构的系统最为有效 例如过程控制 复杂的数值分析过程 以及科学与工程方面的应用 当SD方法用于完全的数据处理时 即使系统中使用层次数据也同样行之有效 软件工程 8 1SD方法的设计过程和有关概念 SD方法能方便地将数据流图转换为软件结构 其过程分为五步 1 确定信息流的类型 2 划定流界 3 将数据流图映射为程序结构 4 提取层次控制结构 5 通过设计复审和使用启发式策略进一步精化所得到的结构 第3步所用映射方法涉及信息流的类型 信息流分为变换流和事务流两种类型 软件工程 1 变换流 变换流 在基本系统模型 即顶级数据流图 中信息通常以 外部世界 所具有的形式进入系统 经过处理后又以这种形式离开系统 输入流 外部表示 内部表示 信息 时间 信息流 输出流 变换流 软件工程 1 变换流 典型的变换流变换流的特点是 经过变换B的数据流一部分先经过变换C到达变换E 然后另一部分经过变换D到达E 即C和D是顺序结构 软件工程 2 事务流 事务流 单个数据项称为事务 transaction 沿传入路径 也称接受通道 进入系统 由外部形式变换为内部形式后到达事务中心 事务中心根据数据项计值结果从若干动作路径中选定一条继续执行 可见它是一个选择结构 事务中心 T B 事务 C A 事务流 软件工程 图面向数据流的设计 软件工程 8 2变换分析 下面以 家庭保安系统 的传感器监测子系统为例说明变换分析的各个步骤 步骤一 复审基本系统模型基本系统模型指顶级DFD和所有由外部提供的信息 这一设计步骤是对系统规格说明书和软件需求规格说明书进行评估 这两个文档描述软件界面上信息的流程和结构 软件工程 家庭保安系统 的顶级数据流图 警报类别 家庭保安系统软件 控制面板 显示器 警报器 电话线 传感器 用户命令 显示信息 传感数据 电话拨号音频 软件工程 家庭保安系统 的第一级DFD 电话拨号音频 配置数据 配置数据 配置数据 用户命令处理 显示信息和状态 传感器监测 系统配置 控制面板 显示器 警报器 电话线 传感器 配置信息 配置命令 启动 停止命令 原口令 有效口令 传感器信息 报警类别 传感数据 显示信息 用户命令 口令 启动 停止系统和状态 启动或停止消息 口令核对 用户交互子系统 图8 5 软件工程 8 2变换分析 步骤二 复审和精化软件数据流图这一步主要是对软件需求规格说明书中的分析模型进行精化 直至获得足够详细的DFD 例如 由 传感器监测子系统 的第一级和第二级DFD进一步推导出第三级数据流图 此时 每个变换对应一个独立的功能 可以用一个具有较高内聚度的模块实现 至此已有足够的信息可用于设计 传感器监测子系统 的程序结构 精化过程亦可结束 软件工程 传感器监测子系统 的第二级DFD 传感器信息 传感器标志的类型和位置 传感数据 警报类别 警报数据 显示格式 产生警报信号 电话拨号 异常数据判别 读取传感数据 配置信息 配置数据 传感器标识类型 电话号码 电话拨号音频 软件工程 传感器监测子系统 的第三级DFD 配置信息 警报条件码传感器标志定时信息 传感数据 电话号码对应的音频 电话拨号音频 传感器信息 号码表 电话号码 读取传感数据 获取响应信息 建立警报条件 选择电话号码 连通电话网 产生拨号脉冲 产生警报信号 格式化显示 产生显示 传感器标志的类型和位置 格式化标志的类型和位置 置传感器标识 警报数据 警报类别 配置数据 软件工程 8 2变换分析 步骤三 确定DFD的特性 判定它为变换流还是事务流 以图8 2 4所示DFD为例 数据沿一个传入路径进来 沿三个传出路径离开 没有明显的事务中心 因此 该信息流应属变换流 步骤四 划定输入流和输出流的边界 孤立变换中心 软件工程 8 2变换分析 步骤五 执行 一级分解 firstlevelfactoring 一级分解的目标是导出具有三个层次的程序结构 顶层为主控模块 底层模块执行输入 计算和输出功能 中层模块控制 协调底层的工作 软件工程 8 2变换分析 程序结构可用Yourdon结构图表示 结构图中 方框代表模块 框内名称表示模块的功能 方框之间的有向边 无二义时也可用无向边 表示模块间的调用关系 调用模块上无标志表示顺序调用 从左至右 菱形表示选择调用 弧形箭头表示循环调用 但本书后面除了顺序调用外 并没有遵循这些规定 a c b a c b a b a 顺序调用b 选择调用c 循环调用 软件工程 8 2变换分析 对应于一级分解的上两层模块 即主控模块和下面几个中层控制模块 输入流控制模块 接收所有输入数据 变换流控制模块 对内部形式数据进行加工 处理 输出流控制模块 产生输出数据 软件工程 8 2变换分析 一级分解 输入流 变换流 变换流控制模块 输入流控制模块 输出流 主控模块 输出流控制模块 A B C D E F G H 软件工程 8 2变换分析 一个简单三叉结构 实际处理大型系统的复杂数据流时 可能需要多个模块对应一个模块的功能 一级分解 总的原则是 在完成控制功能并保持低耦合度 高内聚度的前提下尽可能地减少模块的数量 传感器监测子系统 一级分解 其中控制模块的名字概括了所有下属模块的功能 软件工程 传感器监测子系统一级分解结果 警报条件控制模块 传感器输入控制模块 主控模块 警报输出控制模块 配置信息 软件工程 8 2变换分析 步骤六 执行 二级分解 二级分解的任务是把数据流图中每个处理框映射为结构图中的一个模块 其过程是从变换中心的边界开始沿输入 输出通道向外移动 从变换中心的输入 出 边界向外移动 把遇到的每个处理框映射为结构图中相应控制模块下的一个模块 软件工程 二级分解 输入流 变换流 输入流控制模块 输出流 主控模块 A B C D E F G H B D A C 变换流控制模块 输出流控制模块 E F G H 软件工程 8 2变换分析 DFD的处理框与程序结构模块一一对应 但按照软件设计原则进行设计时 可能需要把几个处理框聚合为一个模块 或者把一个处理框裂变为几个模块 总之 应根据 良好 设计的标准 进行二级分解 二级分解后得到的仅仅是程序结构的 雏形 first cut 后续的复审和精化会反复修改 软件工程 8 2变换分析 程序结构的模块名已隐含了模块功能 但仍有必要为每个模块写一个简要的处理说明 它应当包括 1 进出模块的信息 接口描述 2 模块的局部信息 3 处理过程陈述 包括任务和主要的判断点的位置 条件 4 对有关限制和一些专门特性的简要说明 例如 文件I O 独立于硬件的特性 特殊的实时要求等 这些描述构成第一版设计规格说明书 软件工程 8 2变换分析 步骤七 采用启发式设计策略 精化所得程序结构雏形 改良软件质量对于程序结构的雏形 以 模块独立 为指导思想 对模块进行整合或分解 旨在追求高内聚 低耦合 以及易实现 易测试 易维护的软件结构 软件工程 结构的优化 输入流控制模块 主控模块 B D A C 变换流控制模块 输出流控制模块 E F G H 输入流控制模块 主控模块 B D A C E F G H 软件工程 8 2变换分析 上述七个设计步骤的目标是给出软件的一个整体描述 一旦有了这样一个描述 设计人员即可从整体角度评价和精化软件的总体结构 此时修改所需耗费不多 却能大大提高软件质量 软件工程 8 3事务分析 当数据流具有明显的事务特征时 即能找到一个事务 亦称触发数据项 和一个事务中心 采用事务分析法更为适宜 下面以 家庭保安系统 中 用户交互子系统 为例 说明事务分析法 该子系统的第一级数据流图 图8 5 精化后得到第二级数据流图 8 14 图中 用户命令数据 流入系统后 沿三条动作路径之一离开系统 若将数据项 命令类型 看作事务 该子系统的信息流具有明显的事务特征 软件工程 用户交互子系统的二级数据流图 无效口令 启动 停止命令 口令 启动 停止消息 配置数据 配置数据 配置命令 显示信息 再试 信息 读取用户命令 启动命令处理 启动 停止系统 产生无效的信息 读取系统数据 读取配置文件 读取口令 显示信息和状态 比较口令与文件 配置信息 用户命令数据 系统参数和数据 原始配置项 格式化的配置数据 命令类型 确认口令 四位数 有效口令 软件工程 8 3事务分析 事务分析法可概括为七个步骤 步骤一 复审基本系统模型 步骤二 复审并精化软件数据流图 步骤三 确定数据流图的特征 步骤四 指出事务中心 确定接收部分和发送部分的流界 步骤五 映射出系统上层模块结构 软件工程 映射系统上层结构模块 9 8 6 1 2 5 4 3 7 10 11 事务中心 接收部分 发送部分 SYSTEM 输入1 散转2 SUBSYS1 SUBSYS2 SUBSYS3 软件工程 8 3事务分析 步骤六 分解并精化事务结构以及每条动作路径所对应的结构 这些子结构是根据流经每一动作路径的数据流特征 采用本节或上节所述设计步骤逐一导出的 软件工程 设计系统下层模块结构 9 8 6 1 2 5 4 3 7 10 11 事务中心 接收部分 发送部分 SUBSYS2 7 10 4 11 输入控制 变换控制 输出控制 软件工程 8 3事务分析 图8 3 4将模块结构组合 得到程序结构雏形 SYSTEM 输入1 散转2 SUBSYS1 SUBSYS2 SUBSYS3 7 10 4 11 输入控制 变换控制 输出控制 3 6 5 8 9 软件工程 8 3事务分析 步骤七 使用启发式设计策略 精化所得程序结构雏形 改良软件质量 这一步骤与变换分析法相同 软件工程 8 4设计优化及原则8 4 1启发式设计策略 1 调整模块的功能和规模 降低耦合度 提高内聚度 若在几个模块中发现了共有的子功能 一般应将此子功能独立出来作为一个模块 以提高单个模块的内聚度 合并模块通常是为了减少控制信息的传递以及对全程数据的引用 同时降低接口的复杂性 模块的规模没有固定的要求 以保持模块的独立性为原则 一般而言 模块规模以一页左右为宜 高级语言在75个语句左右 软件工程 8 4 1启发式设计策略 2 调整软件结构的深度 宽度 扇出和扇入数目 改善软件结构性能 经验表明 设计良好的软件结构通常顶层扇出较高 中层扇出较低 底层又高扇入到公共的实用模块中去 软件工程 应追求与避免的程序结构 8 4 1启发式设计策略 软件工程 8 4 1启发式设计策略 3 改造程序结构 使任一模块的作用域在其控制域之内 判定 受F中判定的影响 A C F E G H D B 违背第三条原则 满足第三条原则 A D C E F H G B 作用域与控制域 软件工程 8 4 1启发式设计策略 4 分析模块之间的接口信息 降低界面的复杂性和冗余程度 提高协调性 界面复杂是引起软件错误的一个基本因素 界面上传递的数据应尽可能简单并与模块的功能相协调 界面不协调 即在同一个参数表内或以其他某种方式传递不甚相关的一堆数据 本身就是模块低内聚的表征 软件工程 8 4 1启发式设计策略 5 模块功能应该可预言 避免对模块施加过多限制 模块功能可预言指 只要模块的输入数据相同 其运行产生的输出必然相同 也就是可以依据其输入数据预测模块的输出结果 此外 如果设计时对模块中局部数据的体积 控制流程的选择及外部接口方式等诸因素限制过多 则以后为去掉这些限制要增加维护开销 软件工程 8 4 1启发式设计策略 6 改造程序结构 追求单入口单出口的模块 7 为满足设计或可移植性的要求 把某些软件用包 package 的形式封装起来 软件设计常常附带一些特殊限制 例如 要求程序采用覆盖技术 此时 根据模块重要的程度 被访问的频率及两次引用的间隔等因素对模块分组 此外 程序中那些供选择的或 单调 one shot 的模块应单独存在 以便高效地加载 软件工程 辅助文档 无论是采用变换分析法还是事务分析法 获得程序结构后 必须开发一系列辅助文档 作为软件总体设计的组成部分 主要工作包括 1 陈述每个模块的处理过程 2 描述每个模块的界面 3 根据数据字典定义数据结构 4 综述设计中所有限制和约束 5 对概要设计进行复审 6 对设计进行优化 软件工程 8 4 2设计优化原则 我们努力追求的设计应该是既满足功能和性能的要求 又符合一般软件设计原理和上述种种启发式设计原则 对软件结构的修改越早越好 必要时 可以并行地开发若干个软件结构 通过评比 求得 最佳 结果 简洁的程序结构容易测试 容易维护 应该使用尽可能少的模块 只要满足信息要求 应该使用尽可能简单的数据结构 结构优化是一个精益求精的过程 优化过程可以在设计的早期 甚至要延续到详细设计乃至编码阶段 软件工程 8 4 2设计优化原则
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年福建省厦门市松柏第二小学补充非在编人员招聘(2025.9.23)考试模拟试题及答案解析
- 2025安徽芜湖医药健康职业学院招聘6人考试参考试题及答案解析
- c证考试及答案
- CADCAM技术及应用考试答案
- 海南省三亚市天涯区2023-2024学年高三下学期高考第一模拟考试(一模)历史试题含参考答案
- 贵州省贵阳市息烽县2024-2025学年高一下学期第二次月考化学考题及答案
- 2025年职业技能鉴定考试继电保护工中级四级历年参考题库含答案详解
- 2025年税务师考试税法二重点章节测试试卷及答案
- 现代物流配送中心建设与运营方案
- 初中英语语法知识点速记手册
- 重心的讲课课件
- 安装调试服务合同
- 酒类厂家总代理协议书
- 省级职业技能大赛2024(高职组)舞台布景赛项规程
- 课题申报书:开放型区域产教融合实践中心建设工作实施研究
- 5000亩金银花种植项目计划书
- 物业服务纠纷上诉状
- 2024-2025学年河南省青桐鸣高一上学期10月联考英语试题及答案
- GB/T 18724-2024印刷技术印刷品与印刷油墨耐各种试剂性的测定
- 现代大学教学理念与方法
- 九年级英语上学期第一次月考(广东卷)-2024-2025学年九年级英语上册模块重难点易错题精练(外研版)
评论
0/150
提交评论