软件工程-第08章-面向数据流的设计方法课课件_第1页
软件工程-第08章-面向数据流的设计方法课课件_第2页
软件工程-第08章-面向数据流的设计方法课课件_第3页
软件工程-第08章-面向数据流的设计方法课课件_第4页
软件工程-第08章-面向数据流的设计方法课课件_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程教材:主编曹哲高诚中国水利水电出版社教案:河北工业大学廊坊分院计算机系黄南川软件工程教材:主编曹哲高诚教案:河北工业大学廊坊分院第8章 面向数据流的设计方法面向数据流的设计方法,即通常所说的结构设计法(StructureDesign,简称SD方法),由Yourdon和Constantine等人于1874年提出的,与结构化分析(SA)相衔接,根据对数据流的分析设计软件结构。本章所述技术用于软件的概要设计描述,包括模块、界面和数据结构的定义,这是所有后续开发的基础。SD方法对那些顺序处理信息且不含层次数据结构的系统最为有效,例如过程控制、复杂的数值分析过程、以及科学与工程方面的应用。当SD方法用于完全的数据处理时,即使系统中使用层次数据也同样行之有效。软件工程.第8章 面向数据流的设计方法面向数据流的设计方法,即通常所说28.1SD方法的设计过程和有关概念SD方法能方便地将数据流图转换为软件结构,其过程分为五步:1.

确定信息流的类型;2.

划定流界;3.

将数据流图映射为程序结构;4.

提取层次控制结构;5.

通过设计复审和使用启发式策略进一步精化所得到的结构。第3步所用映射方法涉及信息流的类型。信息流分为变换流和事务流两种类型。软件工程.8.1SD方法的设计过程和有关概念SD方法能方便地将数据31)变换流变换流—在基本系统模型(即顶级数据流图)中信息通常以“外部世界”所具有的形式进入系统,经过处理后又以这种形式离开系统。输入流外部表示内部表示信息时间信息流输出流变换流软件工程.1)变换流变换流—在基本系统模型(即顶级数据流图)中信息41)变换流典型的变换流变换流的特点是:经过变换B的数据流一部分先经过变换C到达变换E,然后另一部分经过变换D到达E;即C和D是顺序结构。ABCDEF软件工程.1)变换流典型的变换流ABCDEF软件工程.52)事务流事务流——单个数据项称为事务(transaction)沿传入路径(也称接受通道)进入系统,由外部形式变换为内部形式后到达事务中心,事务中心根据数据项计值结果从若干动作路径中选定一条继续执行。可见它是一个选择结构。事务中心TB事务CA事务流软件工程.2)事务流事务流——单个数据项称为事务(transactio6图面向数据流的设计精化数据流图流的类型确定事务中心和各动作路径确定输入输出流界映射为事务结构映射为变换结构提取控制结构利用启发式策略精化软件结构描述接口和全局数据结构事务分析变换分析复审详细设计通过“变换”“事务”软件工程.图面向数据流的设计精化数据流图流的类型确定事务中心确定输入输78.2变换分析下面以“家庭保安系统”的传感器监测子系统为例说明变换分析的各个步骤。步骤一、复审基本系统模型基本系统模型指顶级DFD和所有由外部提供的信息。这一设计步骤是对系统规格说明书和软件需求规格说明书进行评估。这两个文档描述软件界面上信息的流程和结构。软件工程.8.2变换分析下面以“家庭保安系统”的传感器监测子系统为8“家庭保安系统”的顶级数据流图警报类别家庭保安系统软件控制面板显示器警报器电话线传感器用户命令显示信息传感数据电话拨号音频软件工程.“家庭保安系统”的顶级数据流图警报类别家庭保安控制面板显示器9“家庭保安系统”的第一级DFD电话拨号音频配置数据配置数据配置数据用户命令处理显示信息和状态传感器监测系统配置控制面板显示器警报器电话线传感器配置信息配置命令启动/停止命令原口令有效口令传感器信息报警类别传感数据显示信息用户命令口令启动/停止系统和状态启动或停止消息口令核对用户交互子系统图8-5软件工程.“家庭保安系统”的第一级DFD电话拨号音频配置数据配置108.2变换分析步骤二、复审和精化软件数据流图这一步主要是对软件需求规格说明书中的分析模型进行精化,直至获得足够详细的DFD。例如,由“传感器监测子系统”的第一级和第二级DFD进一步推导出第三级数据流图,此时,每个变换对应一个独立的功能,可以用一个具有较高内聚度的模块实现,至此已有足够的信息可用于设计“传感器监测子系统”的程序结构,精化过程亦可结束。软件工程.8.2变换分析步骤二、复审和精化软件数据流图软件工程.11“传感器监测子系统”的第二级DFD传感器信息传感器标志的类型和位置传感数据警报类别警报数据显示格式产生警报信号电话拨号异常数据判别读取传感数据配置信息配置数据传感器标识类型电话号码电话拨号音频软件工程.“传感器监测子系统”的第二级DFD传感器信息传感器标志传感12“传感器监测子系统”的第三级DFD配置信息警报条件码传感器标志定时信息传感数据电话号码对应的音频电话拨号音频传感器信息号码表电话号码读取传感数据获取响应信息建立警报条件选择电话号码连通电话网产生拨号脉冲产生警报信号格式化显示产生显示传感器标志的类型和位置格式化标志的类型和位置置传感器标识警报数据警报类别配置数据软件工程.“传感器监测子系统”的第三级DFD配置信息警报条件码138.2变换分析步骤三、确定DFD的特性,判定它为变换流还是事务流。以图8‑2‑4所示DFD为例,数据沿一个传入路径进来,沿三个传出路径离开,没有明显的事务中心,因此,该信息流应属变换流。步骤四、划定输入流和输出流的边界,孤立变换中心。软件工程.8.2变换分析步骤三、确定DFD的特性,判定它为变换流还148.2变换分析步骤五、执行“一级分解”(firstlevelfactoring)一级分解的目标是导出具有三个层次的程序结构,顶层为主控模块;底层模块执行输入、计算和输出功能;中层模块控制、协调底层的工作。软件工程.8.2变换分析步骤五、执行“一级分解”(firstle158.2变换分析程序结构可用Yourdon结构图表示。结构图中,方框代表模块,框内名称表示模块的功能;方框之间的有向边(无二义时也可用无向边)表示模块间的调用关系。调用模块上无标志表示顺序调用:从左至右;菱形表示选择调用;弧形箭头表示循环调用。但本书后面除了顺序调用外,并没有遵循这些规定。acbacbaba)顺序调用b)选择调用c)循环调用软件工程.8.2变换分析程序结构可用Yourdon结构图表示。结构168.2变换分析对应于一级分解的上两层模块,即主控模块和下面几个中层控制模块:①输入流控制模块,接收所有输入数据;②变换流控制模块,对内部形式数据进行加工、处理;③输出流控制模块,产生输出数据。软件工程.8.2变换分析对应于一级分解的上两层模块,即主控模块和下178.2变换分析一级分解输入流变换流变换流控制模块输入流控制模块输出流主控模块输出流控制模块ABCDEFGH软件工程.8.2变换分析一级分解输入流变换流变换流输入流输出流主控188.2变换分析一个简单三叉结构,实际处理大型系统的复杂数据流时,可能需要多个模块对应一个模块的功能。“一级分解”总的原则是,在完成控制功能并保持低耦合度、高内聚度的前提下尽可能地减少模块的数量。“传感器监测子系统”一级分解,其中控制模块的名字概括了所有下属模块的功能。软件工程.8.2变换分析一个简单三叉结构,实际处理大型系统的复杂数19传感器监测子系统一级分解结果警报条件控制模块传感器输入控制模块主控模块警报输出控制模块配置信息软件工程.传感器监测子系统一级分解结果警报条件控制模块传感器输入控制208.2变换分析步骤六、执行“二级分解”。二级分解的任务是把数据流图中每个处理框映射为结构图中的一个模块。其过程是从变换中心的边界开始沿输入、输出通道向外移动;从变换中心的输入(出)边界向外移动,把遇到的每个处理框映射为结构图中相应控制模块下的一个模块。软件工程.8.2变换分析步骤六、执行“二级分解”。软件工程.21二级分解输入流变换流输入流控制模块输出流主控模块ABCDEFGHBDAC变换流控制模块输出流控制模块EFGH软件工程.二级分解输入流变换流输入流控制模块输出流主控模块ABCD228.2变换分析DFD的处理框与程序结构模块一一对应,但按照软件设计原则进行设计时,可能需要把几个处理框聚合为一个模块,或者把一个处理框裂变为几个模块。总之,应根据“良好”设计的标准,进行二级分解。二级分解后得到的仅仅是程序结构的“雏形”(first‑cut),后续的复审和精化会反复修改。软件工程.8.2变换分析DFD的处理框与程序结构模块一一对应,但按238.2变换分析程序结构的模块名已隐含了模块功能,但仍有必要为每个模块写一个简要的处理说明,它应当包括:1.进出模块的信息(接口描述);2.模块的局部信息;3.处理过程陈述,包括任务和主要的判断点的位置、条件;4.对有关限制和一些专门特性的简要说明(例如,文件I/O,独立于硬件的特性,特殊的实时要求等)。这些描述构成第一版设计规格说明书。软件工程.8.2变换分析程序结构的模块名已隐含了模块功能,但仍有必248.2变换分析步骤七、采用启发式设计策略,精化所得程序结构雏形,改良软件质量对于程序结构的雏形,以“模块独立”为指导思想,对模块进行整合或分解,旨在追求高内聚、低耦合,以及易实现、易测试、易维护的软件结构。软件工程.8.2变换分析步骤七、采用启发式设计策略,精化所得程序结25结构的优化输入流控制模块主控模块BDAC变换流控制模块输出流控制模块EFGH输入流控制模块主控模块BDACEFGH软件工程.结构的优化输入流控制模块主控模块BDAC变换流控制模块输出流268.2变换分析上述七个设计步骤的目标是给出软件的一个整体描述。一旦有了这样一个描述,设计人员即可从整体角度评价和精化软件的总体结构,此时修改所需耗费不多,却能大大提高软件质量。软件工程.8.2变换分析上述七个设计步骤的目标是给出软件的一个整体278.3事务分析当数据流具有明显的事务特征时,即能找到一个事务(亦称触发数据项)和一个事务中心,采用事务分析法更为适宜。下面以“家庭保安系统”中“用户交互子系统”为例,说明事务分析法。该子系统的第一级数据流图(图8-5)精化后得到第二级数据流图(8-14)。图中“用户命令数据”流入系统后,沿三条动作路径之一离开系统,若将数据项“命令类型”看作事务,该子系统的信息流具有明显的事务特征。软件工程.8.3事务分析当数据流具有明显的事务特征时,即能找到一个28用户交互子系统的二级数据流图无效口令启动/停止命令口令启动/停止消息配置数据配置数据配置命令显示信息“再试”信息读取用户命令启动命令处理启动/停止系统产生无效的信息读取系统数据读取配置文件读取口令显示信息和状态比较口令与文件配置信息用户命令数据系统参数和数据原始配置项格式化的配置数据命令类型确认口令四位数有效口令软件工程.用户交互子系统的二级数据流图无效口令启动/停止命令口令启动298.3事务分析事务分析法可概括为七个步骤:步骤一、复审基本系统模型;步骤二、复审并精化软件数据流图;步骤三、确定数据流图的特征;步骤四、指出事务中心,确定接收部分和发送部分的流界;步骤五、映射出系统上层模块结构;软件工程.8.3事务分析事务分析法可概括为七个步骤:软件工程.30映射系统上层结构模块9861254371011事务中心接收部分发送部分SYSTEM输入1散转2SUBSYS1SUBSYS2SUBSYS3………软件工程.映射系统上层结构模块9861254371011事务中心接收部318.3事务分析步骤六、分解并精化事务结构以及每条动作路径所对应的结构。这些子结构是根据流经每一动作路径的数据流特征,采用本节或上节所述设计步骤逐一导出的。软件工程.8.3事务分析步骤六、分解并精化事务结构以及每条动作路径32设计系统下层模块结构9861254371011事务中心接收部分发送部分SUBSYS2710411输入控制变换控制输出控制软件工程.设计系统下层模块结构9861254371011事务中心接收部338.3事务分析图8-3-4将模块结构组合,得到程序结构雏形SYSTEM输入1散转2SUBSYS1SUBSYS2SUBSYS3710411输入控制变换控制输出控制36589软件工程.8.3事务分析图8-3-4将模块结构组合,得到程序结348.3事务分析步骤七、使用启发式设计策略,精化所得程序结构雏形,改良软件质量。这一步骤与变换分析法相同。SYSTEM输入1散转2SUBSYS271041136589软件工程.8.3事务分析步骤七、使用启发式设计策略,精化所得程序结358.4设计优化及原则

8.4.1启发式设计策略1.调整模块的功能和规模,降低耦合度,提高内聚度。若在几个模块中发现了共有的子功能,一般应将此子功能独立出来作为一个模块,以提高单个模块的内聚度。合并模块通常是为了减少控制信息的传递以及对全程数据的引用,同时降低接口的复杂性。模块的规模没有固定的要求。以保持模块的独立性为原则。一般而言,模块规模以一页左右为宜(高级语言在75个语句左右)。软件工程.8.4设计优化及原则

8.4.1启发式设计策略1.368.4.1启发式设计策略2.调整软件结构的深度、宽度、扇出和扇入数目,改善软件结构性能。经验表明,设计良好的软件结构通常顶层扇出较高,中层扇出较低,底层又高扇入到公共的实用模块中去。软件工程.8.4.1启发式设计策略2.调整软件结构的深度、宽度、扇37应追求与避免的程序结构应追求的结构应避免的结构8.4.1启发式设计策略软件工程.应追求与避免的程序结构应追求的结构应避免的结构8.4.1388.4.1启发式设计策略3.改造程序结构,使任一模块的作用域在其控制域之内。判定受F中判定的影响ACFEGHDB违背第三条原则满足第三条原则ADCEFHGB作用域与控制域软件工程.8.4.1启发式设计策略3.改造程序结构,使任一模块的作398.4.1启发式设计策略4.分析模块之间的接口信息,降低界面的复杂性和冗余程度,提高协调性。界面复杂是引起软件错误的一个基本因素,界面上传递的数据应尽可能简单并与模块的功能相协调,界面不协调(即在同一个参数表内或以其他某种方式传递不甚相关的一堆数据)本身就是模块低内聚的表征。软件工程.8.4.1启发式设计策略4.分析模块之间的接口信息,降低408.4.1启发式设计策略5.模块功能应该可预言,避免对模块施加过多限制。模块功能可预言指,只要模块的输入数据相同,其运行产生的输出必然相同,也就是可以依据其输入数据预测模块的输出结果。此外,如果设计时对模块中局部数据的体积,控制流程的选择及外部接口方式等诸因素限制过多,则以后为去掉这些限制要增加维护开销。软件工程.8.4.1启发式设计策略5.模块功能应该可预言,避免对模418.4.1启发式设计策略6.改造程序结构,追求单入口单出口的模块。7.为满足设计或可移植性的要求,把某些软件用包(package)的形式封装起来。软件设计常常附带一些特殊限制,例如,要求程序采用覆盖技术。此时,根据模块重要的程度、被访问的频率及两次引用的间隔等因素对模块分组。此外,程序中那些供选择的或“单调”(one‑shot)的模块应单独存在,以便高效地加载。软件工程.8.4.1启发式设计策略6.改造程序结构,追求单入口42辅助文档无论是采用变换分析法还

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论