软件工程-第08章-面向数据流的设计方法课课件

上传人:仙*** 文档编号:242022014 上传时间:2024-08-10 格式:PPT 页数:46 大小:414.89KB
返回 下载 相关 举报
软件工程-第08章-面向数据流的设计方法课课件_第1页
第1页 / 共46页
软件工程-第08章-面向数据流的设计方法课课件_第2页
第2页 / 共46页
软件工程-第08章-面向数据流的设计方法课课件_第3页
第3页 / 共46页
点击查看更多>>
资源描述
,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,.,*,Click to edit Master title style,软件工程,单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,软件工程,.,*,软件工程,教材:主编 曹哲 高诚,中国水利水电出版社,教案:河北工业大学廊坊分院,计算机系 黄南川,软件工程教材:主编 曹哲 高诚教案:河北工业大学廊坊分院,第8章面向数据流的设计方法,面向数据流的设计方法,即通常所说的结构设计法(Structure Design,简称SD方法),由Yourdon和Constantine等人于1874年提出的,与结构化分析(SA)相衔接,根据对数据流的分析设计软件结构。,本章所述技术用于软件的概要设计描述,包括模块、界面和数据结构的定义,这是所有后续开发的基础。,SD方法对那些顺序处理信息且不含层次数据结构的系统最为有效,例如过程控制、复杂的数值分析过程、以及科学与工程方面的应用。当SD方法用于完全的数据处理时,即使系统中使用层次数据也同样行之有效。,软件工程,.,第8章面向数据流的设计方法面向数据流的设计方法,即通常所说,2,8.1 SD方法的设计过程和有关概念,SD方法能方便地将数据流图转换为软件结构,其过程分为五步:,1 确定信息流的类型;,2 划定流界;,3 将数据流图映射为程序结构;,4 提取层次控制结构;,5 通过设计复审和使用启发式策略进,一步精化所得到的结构。,第3步所用映射方法涉及信息流的类型。信息流分为变换流和事务流两种类型。,软件工程,.,8.1 SD方法的设计过程和有关概念SD方法能方便地将数据,3,1)变换流,变换流 在基本系统模型(即顶级数据流图)中信息通常以“外部世界”所具有的形式进入系统,经过处理后又以这种形式离开系统。,输入流,外部表示,内部表示,信息,时间,信息流,输出流,变换流,软件工程,.,1)变换流变换流 在基本系统模型(即顶级数据流图)中信息,4,1)变换流,典型的变换流,变换流的特点是:经过变换B的数据流一部分先经过变换C到达变换E,然后另一部分经过变换D到达E;即C和D是顺序结构。,A,B,C,D,E,F,软件工程,.,1)变换流典型的变换流ABCDEF软件工程.,5,2)事务流,事务流单个数据项称为事务(transaction)沿传入路径(也称接受通道)进入系统,由外部形式变换为内部形式后到达事务中心,事务中心根据数据项计值结果从若干动作路径中选定一条继续执行。,可见它是一个选择结构。,事务中心,T,B,事务,C,A,事务流,软件工程,.,2)事务流事务流单个数据项称为事务(transactio,6,图面向数据流的设计,精化数据流图,流的类型,确定事务中心,和各动作路径,确定输入输出,流界,映射为事务结构,映射为变换结构,提取控制结构,利用启发式策略,精化软件结构,描述接口和全局,数据结构,事务分析,变换分析,复审,详细设计,通过,“变换”,“事务”,软件工程,.,图面向数据流的设计精化数据流图流的类型确定事务中心确定输入输,7,8.2 变换分析,下面以“家庭保安系统”的传感器监测子系统为例说明变换分析的各个步骤。,步骤一、复审基本系统模型,基本系统模型指顶级DFD和所有由外部提供的信息。这一设计步骤是对系统规格说明书和软件需求规格说明书进行评估。这两个文档描述软件界面上信息的流程和结构。,软件工程,.,8.2 变换分析下面以“家庭保安系统”的传感器监测子系统为,8,“家庭保安系统”的顶级数据流图,警报类别,家庭保安,系统软件,控制面板,显示器,警报器,电话线,传感器,用户命令,显示信息,传感数据,电话拨号音频,软件工程,.,“家庭保安系统”的顶级数据流图警报类别家庭保安控制面板显示器,9,“家庭保安系统”的第一级DFD,电话拨号音频,配置数据,配置 数据,配置数据,用户命令处理,显示信息,和状态,传感器,监测,系统,配置,控制面板,显示器,警报器,电话线,传感器,配置信息,配置 命令,启动/停止命令,原口令,有效口令,传感器信息,报警类别,传感数据,显示 信息,用户命令,口令,启动/停止,系统和状态,启动或,停止消息,口令核对,用,户,交,互,子,系,统,图8-5,软件工程,.,“家庭保安系统”的第一级DFD 电话拨号音频配置数据配置,10,8.2 变换分析,步骤二、复审和精化软件数据流图,这一步主要是对软件需求规格说明书中的分析模型进行精化,直至获得足够详细的DFD。,例如,由“传感器监测子系统”的第一级和第二级DFD进一步推导出第三级数据流图,此时,每个变换对应一个独立的功能,可以用一个具有较高内聚度的模块实现,至此已有足够的信息可用于设计“传感器监测子系统”的程序结构,精化过程亦可结束。,软件工程,.,8.2 变换分析步骤二、复审和精化软件数据流图软件工程.,11,“传感器监测子系统”的第二级DFD,传感器信息,传感器标志,的类型和位置,传感数据,警报类别,警报数据,显示,格式,产生警,报信号,电话,拨号,异常数据判别,读取传感数据,配 置 信 息,配置数据,传感器,标识类型,电话号码,电话拨号音频,软件工程,.,“传感器监测子系统”的第二级DFD 传感器信息传感器标志传感,12,“传感器监测子系统”的第三级DFD,配 置 信 息,警报条件码,传感器标志,定时信息,传感数据,电话号码,对应的音频,电话拨,号音频,传感器信息,号码表,电话号码,读取传感数据,获取响应信息,建立警报条件,选择电话号码,连通电话网,产生拨号脉冲,产生警报信号,格式化显示,产生显示,传感器标志的类型和位置,格式化标志的类型和位置,置传感器标识,警报数据,警报类别,配 置 数 据,软件工程,.,“传感器监测子系统”的第三级DFD 配 置 信 息警报条件码,13,8.2 变换分析,步骤三、确定DFD的特性,判定它为变换流还是事务流。,以图824所示DFD为例,数据沿一个传入路径进来,沿三个传出路径离开,没有明显的事务中心,因此,该信息流应属变换流。,步骤四、划定输入流和输出流的边界,孤立变换中心。,软件工程,.,8.2 变换分析步骤三、确定DFD的特性,判定它为变换流还,14,8.2 变换分析,步骤五、执行“一级分解”(first level factoring),一级分解的目标是导出具有三个层次的程序结构,顶层为主控模块;底层模块执行输入、计算和输出功能;中层模块控制、协调底层的工作。,软件工程,.,8.2 变换分析步骤五、执行“一级分解”(first le,15,8.2 变换分析,程序结构可用Yourdon结构图表示。结构图中,方框代表模块,框内名称表示模块的功能;方框之间的有向边(无二义时也可用无向边)表示模块间的调用关系。调用模块上无标志表示顺序调用:从左至右;菱形表示选择调用;弧形箭头表示循环调用。但本书后面除了顺序调用外,并没有遵循这些规定。,a,c,b,a,c,b,a,b,a)顺序调用 b)选择调用 c)循环调用,软件工程,.,8.2 变换分析程序结构可用Yourdon结构图表示。结构,16,8.2 变换分析,对应于一级分解的上两层模块,即主控模块和下面几个中层控制模块:,输入流控制模块,接收所有输入数据;,变换流控制模块,对内部形式数据进行加工、处理;,输出流控制模块,产生输出数据。,软件工程,.,8.2 变换分析对应于一级分解的上两层模块,即主控模块和下,17,8.2 变换分析,一级分解,输入流,变换流,变换流,控制模块,输入流,控制模块,输出流,主控模块,输出流,控制模块,A,B,C,D,E,F,G,H,软件工程,.,8.2 变换分析一级分解输入流变换流变换流输入流输出流主控,18,8.2 变换分析,一个简单三叉结构,实际处理大型系统的复杂数据流时,可能需要多个模块对应一个模块的功能。“一级分解”总的原则是,在完成控制功能并保持低耦合度、高内聚度的前提下尽可能地减少模块的数量。,“传感器监测子系统”一级分解,其中控制模块的名字概括了所有下属模块的功能。,软件工程,.,8.2 变换分析一个简单三叉结构,实际处理大型系统的复杂数,19,传感器监测子系统一级分解结果,警报条件控制模块,传感器输入控制模块,主控模块,警报输出控制模块,配 置 信 息,软件工程,.,传感器监测子系统一级分解结果 警报条件控制模块传感器输入控制,20,8.2 变换分析,步骤六、执行“二级分解”。,二级分解的任务是把数据流图中每个处理框映射为结构图中的一个模块。其过程是从变换中心的边界开始沿输入、输出通道向外移动;从变换中心的输入(出)边界向外移动,把遇到的每个处理框映射为结构图中相应控制模块下的一个模块。,软件工程,.,8.2 变换分析步骤六、执行“二级分解”。软件工程.,21,二级分解,输入流,变换流,输入流控制模块,输出流,主控模块,A,B,C,D,E,F,G,H,B,D,A,C,变换流控制模块,输出流控制模块,E,F,G,H,软件工程,.,二级分解 输入流变换流输入流控制模块输出流主控模块ABCD,22,8.2 变换分析,DFD的处理框与程序结构模块一一对应,但按照软件设计原则进行设计时,可能需要把几个处理框聚合为一个模块,或者把一个处理框裂变为几个模块。总之,应根据“良好”设计的标准,进行二级分解。,二级分解后得到的仅仅是程序结构的“雏形”(firstcut),后续的复审和精化会反复修改。,软件工程,.,8.2 变换分析DFD的处理框与程序结构模块一一对应,但按,23,8.2 变换分析,程序结构的模块名已隐含了模块功能,但仍有必要为每个模块写一个简要的处理说明,它应当包括:,1进出模块的信息(接口描述);,2模块的局部信息;,3处理过程陈述,包括任务和主要的判,断点的位置、条件;,4对有关限制和一些专门特性的简要说,明(例如,文件I/O,独立于硬件的,特性,特殊的实时要求等)。,这些描述构成第一版设计规格说明书。,软件工程,.,8.2 变换分析程序结构的模块名已隐含了模块功能,但仍有必,24,8.2 变换分析,步骤七、采用启发式设计策略,精化所得程序结构雏形,改良软件质量,对于程序结构的雏形,以“模块独立”为指导思想,对模块进行整合或分解,旨在追求高内聚、低耦合,以及易实现、易测试、易维护的软件结构。,软件工程,.,8.2 变换分析步骤七、采用启发式设计策略,精化所得程序结,25,结构的优化,输入流控制模块,主控模块,B,D,A,C,变换流控制模块,输出流控制模块,E,F,G,H,输入流控制模块,主控模块,B,D,A,C,E,F,G,H,软件工程,.,结构的优化输入流控制模块主控模块BDAC变换流控制模块输出流,26,8.2 变换分析,上述七个设计步骤的目标是给出软件的一个整体描述。,一旦有了这样一个描述,设计人员即可从整体角度评价和精化软件的总体结构,此时修改所需耗费不多,却能大大提高软件质量。,软件工程,.,8.2 变换分析上述七个设计步骤的目标是给出软件的一个整体,27,8.3 事务分析,当数据流具有明显的事务特征时,即能找到一个事务(亦称触发数据项)和一个事务中心,采用事务分析法更为适宜。,下面以“家庭保安系统”中“用户交互子系统”为例,说明事务分析法。,该子系统的第一级数据流图(图8-5)精化后得到第二级数据流图(8-14)。图中“用户命令数据”流入系统后,沿三条动作路径之一离开系统,若将数据项“命令类型”看作事务,该子系统的信息流具有明显的事务特征。,软件工程,.,8.3 事务分析当数据流具有明显的事务特征时,即能找到一个,28,用户交互子系统的二级数据流图,无效口令,启动/停止命令,口令,启动/停止消息,配置数据,配置数据,配置命令,显示信息,“再试”信息,读取用户命令,启动命令处理,启动/停止系统,产生无效的信息,读取系统数据,读取配置文件,读取口令,显示信息和状态,比较口令,与文件,配 置 信 息,用户命令数据,系统参数和数据,原始配置项,格式化的,配置数据,命令类型,确认口令,四位数,有效口令,软件工程,.,用户交互子系统的二级数据流图 无效口令启动/停止命令口令启动,29,8.3 事务分析,事务分析法可概括为七个步骤:,步骤一、复审基本系统模型;,步骤二、复审并精化软件数据流图;,步骤三、确定数据流图的特征;,步骤四、指出事务中心,确定接收部分,和发送部分的流界;,步骤五、映射出系统上层模块结构;,软件工程,.,8.3 事务分析事务分析法可概括为七个步骤:软件工程.,30,映射系统上层结构模块,9,8,6,1,2,5,4,3,7,10,11,事务中心,接收部分,发送部分,SYSTEM,输入 1,散转 2,SUBSYS1,SUBSYS2,SUBSYS3,软件工程,.,映射系统上层结构模块9861254371011事务中心接收部,31,8.3 事务分析,步骤六、分解并精化事务结构以及每条动作路径所对应的结构。这些子结构是根据流经每一动作路径的数据流特征,采用本节或上节所述设计步骤逐一导出的。,软件工程,.,8.3 事务分析步骤六、分解并精化事务结构以及每条动作路径,32,设计系统下层模块结构,9,8,6,1,2,5,4,3,7,10,11,事务中心,接收部分,发送部分,SUBSYS2,7,10,4,11,输入控制,变换控制,输出控制,软件工程,.,设计系统下层模块结构9861254371011事务中心接收部,33,8.3 事务分析,图8-3-4 将模块结构组合,得到程序结构雏形,SYSTEM,输入 1,散转 2,SUBSYS1,SUBSYS2,SUBSYS3,7,10,4,11,输入控制,变换控制,输出控制,3,6,5,8,9,软件工程,.,8.3 事务分析图8-3-4 将模块结构组合,得到程序结,34,8.3 事务分析,步骤七、使用启发式设计策略,精化所得程序结构雏形,改良软件质量。这一步骤与变换分析法相同。,SYSTEM,输入 1,散转 2,SUBSYS2,7,10,4,11,3,6,5,8,9,软件工程,.,8.3 事务分析步骤七、使用启发式设计策略,精化所得程序结,35,8.4 设计优化及原则,8.4.1 启发式设计策略,1调整模块的功能和规模,降低耦合度,提高内聚度。,若在几个模块中发现了共有的子功能,一般应将此子功能独立出来作为一个模块,以提高单个模块的内聚度。合并模块通常是为了减少控制信息的传递以及对全程数据的引用,同时降低接口的复杂性。,模块的规模没有固定的要求。以保持模块的独立性为原则。一般而言,模块规模以一页左右为宜(高级语言在75个语句左右)。,软件工程,.,8.4 设计优化及原则8.4.1 启发式设计策略 1,36,8.4.1 启发式设计策略,2调整软件结构的深度、宽度、扇出和扇入数目,改善软件结构性能。,经验表明,设计良好的软件结构通常顶层扇出较高,中层扇出较低,底层又高扇入到公共的实用模块中去。,软件工程,.,8.4.1 启发式设计策略2调整软件结构的深度、宽度、扇,37,应追求与避免的程序结构,应追求的结构,应避免的结构,8.4.1 启发式设计策略,软件工程,.,应追求与避免的程序结构 应追求的结构应避免的结构8.4.1,38,8.4.1 启发式设计策略,3改造程序结构,使任一模块的作用域在其控制域之内。,判定,受F中判定的影响,A,C,F,E,G,H,D,B,违背第三条原则,满足第三条原则,A,D,C,E,F,H,G,B,作用域与控制域,软件工程,.,8.4.1 启发式设计策略3改造程序结构,使任一模块的作,39,8.4.1 启发式设计策略,4分析模块之间的接口信息,降低界面,的复杂性和冗余程度,提高协调性。,界面复杂是引起软件错误的一个基本因素,界面上传递的数据应尽可能简单并与模块的功能相协调,界面不协调(即在同一个参数表内或以其他某种方式传递不甚相关的一堆数据)本身就是模块低内聚的表征。,软件工程,.,8.4.1 启发式设计策略4分析模块之间的接口信息,降低,40,8.4.1 启发式设计策略,5模块功能应该可预言,避免对模块施加过多限制。,模块功能可预言指,只要模块的输入数据相同,其运行产生的输出必然相同,也就是可以依据其输入数据预测模块的输出结果。此外,如果设计时对模块中局部数据的体积,控制流程的选择及外部接口方式等诸因素限制过多,则以后为去掉这些限制要增加维护开销。,软件工程,.,8.4.1 启发式设计策略5模块功能应该可预言,避免对模,41,8.4.1 启发式设计策略,6.改造程序结构,追求单入口单出口的模块。,7.为满足设计或可移植性的要求,把某些软,件用包(package)的形式封装起来。,软件设计常常附带一些特殊限制,例如,要求程序采用覆盖技术。此时,根据模块重要的程度、被访问的频率及两次引用的间隔等因素对模块分组。,此外,程序中那些供选择的或“单调”(oneshot)的模块应单独存在,以便高效地加载。,软件工程,.,8.4.1 启发式设计策略6.改造程序结构,追求单入口,42,辅助文档,无论是采用变换分析法还是事务分析法,获得程序结构后,必须开发一系列辅助文档,作为软件总体设计的组成部分。主要工作包括:,1)陈述每个模块的处理过程;,2)描述每个模块的界面;,3)根据数据字典定义数据结构;,4)综述设计中所有限制和约束;,5)对概要设计进行复审;,6)对设计进行优化。,软件工程,.,辅助文档无论是采用变换分析法还是事务分析法,获得程序结构后,,43,8.4.2 设计优化原则,我们努力追求的设计应该是既满足功能和性能的要求,又符合一般软件设计原理和上述种种启发式设计原则。,对软件结构的修改越早越好。必要时,可以并行地开发若干个软件结构,通过评比,求得“最佳”结果。,简洁的程序结构容易测试、容易维护,应该使用尽可能少的模块;只要满足信息要求,应该使用尽可能简单的数据结构。,结构优化是一个精益求精的过程。优化过程可以在设计的早期,甚至要延续到详细设计乃至编码阶段。,软件工程,.,8.4.2 设计优化原则我们努力追求的设计应该是既满足功能,44,8.4.2 设计优化原则,对时间有特殊要求的软件,应根据普遍存在的“百分之二十规则”(即20%的代码占用80%的处理时间,80%的错误出自20%的代码)采用下述对策:,1在不考虑时、空耗费的情况下,设计并精化软件结构;,2借用CASE工具模拟分析运行时的性能,定位出低效的部分,加以改进;,3详细设计时对最耗时的模块,认真地设计它们的处理过程(算法),以便减少时间的开销;,4尽量用高级语言编程以利于软件的优化;,5对大量占用计算机系统资源的模块必要时用低级语言重新编码,以提高效率。,设计优化的格言“先让它干起来,再让它快起来”。,软件工程,.,8.4.2 设计优化原则对时间有特殊要求的软件,应根据普遍,45,感谢亲观看此幻灯片,此课件部分内容来源于网络,,如有侵权请及时联系我们删除,谢谢配合!,感谢亲观看此幻灯片,此课件部分内容来源于网络,,46,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!