第9章面向数据流的设计方法.ppt_第1页
第9章面向数据流的设计方法.ppt_第2页
第9章面向数据流的设计方法.ppt_第3页
第9章面向数据流的设计方法.ppt_第4页
第9章面向数据流的设计方法.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

课程名称:软件工程学第15课:日期:教室:教育主题:第9章面向数据流的设计方法9.1SD方法,9.2转换分析教育目的:掌握SD方法的基本概念,掌握转换分析方法。 教育重点: SD方法、转换分析方法。 教育难点:改变分析方法。 教具:多媒体教室,电子教案工作:读书,第9章面向数据流的设计方法,面向数据流的设计方法,所谓的结构设计法(StructureDesign,简称SD方法),是Yourdon和Constantine等人在1974年提出的结构化本文所述的技术用于软件的概要设计描述,包括模块、接口、数据结构的定义,这是今后开发的所有基础。 SD方法按其顺序处理信息,对不包含分层数据结构的系统最有效,如在过程控制、复杂的数值分析过程、科学和工程中的应用。 在SD方式用于完全的数据处理的情况下,在系统中使用分层数据也同样有效。 9.1SD方法的设计过程和相关概念,SD方法可以很容易地将流图转换为软件结构,该过程分为5个步骤:1.决定信息流的类型2 .界定流界3 .将流图映射到程序结构4 .提取层次控制结构1 )转换流、转换流-在基本系统模型(顶层数据流图)中,信息通常以“外部世界”的形式进入系统,经过处理后,以这种方式离开系统。 输入流,外部显示,内部显示,信息,时间,图911的信息流,输出流,转换流,图9-1-2的典型转换流转换流的特征是,经过转换b的流的一部分经过转换c到达转换e,然后2 )交易流和交易流个数据流被称为交易(transaction ),从外部形式转换为内部形式到达交易中心,交易中心基于数据流的评估结果选择从几个工作路径中连续执行。 可以看出这是一种选择结构。 事务中心、t、b、事务、c、a、图913的事务流、图914的面向数据流的设计、9.2转换分析,以下以“家庭安全系统”的传感器监视子系统为例,说明转换分析的各步骤。 步骤1,基本系统模型的基本系统模型是顶层DFD和外部提供的所有信息。 本设计步骤是对系统规格书和软件要求规格书进行评价。 这两个文档描述了软件界面上的信息流和结构。图921“家庭保安系统”的顶流图、警报类别、家庭保安系统软件、控制面板、显示器、报警器、电话线、传感器、用户命令、显示信息、传感器数据、电话拨号音、图922“家庭保安系统”的第配置数据、配置数据、用户命令处理、显示信息和状态、传感器监视系统结构、控制面板、显示器、报警器、电话线、传感器、配置信息、配置命令、启动/停止命令、原密码、有效密码、传感器信息、警报种类、用户命令、密码、启动/停止系统和状态、启动或停止消息、密码匹配、用户交互子系统、9.2转换分析、步骤2、复审和细化软件流程图主要是对软件要求规范的分析模型进行了完善,并提供了足够详细的d 例如,若从“传感器监视子系统”的第一级(图922的局部)和第二级(图923)DFD进一步导出第三级数据流程图图923传感器监视子系统的第二级DFD、传感器信息、传感器标志的类型和位置、传感器数据、警报种类、警报数据、显示形式、警报信号的发生、电话号码、异常数据判别、传感器数据的读取、配置信息、图924传感器警报条件代码传感器标志定时信息、传感器数据、与电话号码对应的声音、电话拨号声音、传感器信息、号码表、电话号码、传感器数据的读取、响应信息的获取、警报条件的建立、电话号码的选择、与电话网的连接、拨号脉冲的发生、警报信号的产生、格式显示显示发生传感器标志的类型和位置,格式标志的类型和位置,、报警数据、9.2转换分析,步骤3,确定DFD的特性,确定转换流还是事务流。 在图924中所示的DFD的实例中,数据沿着一个输入路径进入,沿着三个输出路径分离,并且没有明显的事务中心,因此该信息流应该属于转换流。 步骤4,划分输入流和输出流的边界,并使转换中心孤立。 执行9.2转换分析、步骤5、“一次分解”(firstlevelfactoring )一次分解的目标是导出三层程序结构,顶层是主模块,下级模块执行输入、计算和输出功能,中层模块控制基础工作、9.2转换分析,程序结构可以用Yourdon结构图表示。 在结构图中,块指示模块,而块内的名称指示该模块的功能的框之间有向边(如果没有二义,则有向边也可用)代表模块之间的调用关系。 调用模块没有标记表示按顺序调用.按顺序调用。 从左到右菱形表示选择调用,圆弧箭头表示循环调用。 但是,在本说明书之后,除了顺序呼叫以外,没有遵守这些规定。a,c,b,a,c,b,a )顺序调用b )选择调用c )循环调用,9.2转换解析,图925所示的结构图对应于一次分解的上位二层模块,即主模块和下面的几个中间层控制模块转换流程控制模块,加工、处理内部形式的数据输出流程控制单元,生成输出数据。9.2转换分析、图925的一级分解、输入流、转换流、转换流控制模块、输入流控制模块、a、b、c、d、e、f、g、h、9.2转换分析,图925表示简单的三叉结构当实际处理大型系统的复杂流时,多个模块可以对应于图9-2-5中的一个模块的功能。 “一次分解”的原则是在完成控制功能、维持低耦合度、高凝聚度的基础上,尽可能减少模块的数量。 “传感器监视子系统”的一次分解如图926所示,控制模块的名称概括了所有下级模块的功能。图926传感器监视子系统的一次分解结果,警报条件控制模块,传感器输入控制模块,、配置信息,9.2转换解析,步骤6,执行“二次分解”。 二次分解的任务是将数据流图中的处理块映射到结构图中的模块。 其过程从变换中心的边界输入,从变换中心的输入(输出)边界移动,该变换中心正沿输出信道移动,并且将相遇的处理块映射到结构图上的相应控制块下的块。 图9-2-7二次分解、输入流、变换流、输入流控制模块、a、b、d、a、c、变换流控制模块、输出流控制模块g、h、9.2转换分析、DFD的处理框与程序构成模块一一对应,但在以软件设计的原则来设计的情况下,有可能需要将几个处理框汇总为一个模块,即,应该基于“好”设计的基准来进行二次分解。二次分解得到的只是程序结构的“雏形”(firstcut ),反复进行后续的再审和精炼。 9.2转换分析,程序结构的模块名称已经暗示了模块功能,但需要给各模块写简单的处理说明。 其中,1 .应该包括出入模块的信息(接口描述)2.模块的本地信息3 .处理过程的描述包括任务和主要判断点的位置、条件4 .关于限制和特定特性的简单描述(例如,文件I/O、硬件)。 这些说明构成第一版的设计规格书。 9.2采用转换分析、步骤7、启发式设计策略,精炼得到的程序结构雏形,改进软件质量对程序结构雏形,以“模块独立”为指导思想,将模块集成或分解,易于实现高结合性、低结合性和图9-2-8的结构优化,输入流控制模块,主模块,b,d,a,c,转换流控制模块,输出流控制模块,e,f,g,h,输入流控制模块,主模块,b,d,a 有了这样的记述,设计者就能从整体的角度来评价和精炼软件的总体结构,这种情况下,修改不需要很多费用,但能大幅度提高软件的质量。 课程名称:软件工程第16课:日期:教室:教育主题: 9.3事务分析,9.4设计优化原则教育目的:掌握事务分析方法,理解设计优化原则。 教育重点:事务分析方法。 教育难点:事务分析方法。 教具:多媒体教室,电子教案工作:课题7,9.3如果数据流有明显的事务特征,就可以找到事务(也称为触发数据)和事务中心,采用事务分析法更为合适。 以下,以“家庭保安系统”中的“用户对话子系统”为例,说明事务分析法。 该子系统的第一级数据流图获得改进的第二级数据流图,如图931中所示。 当图中的“用户命令数据”流入系统后,沿着三个工作路径之一离开系统,将数据项“命令类型”视为事务时,该子系统的信息流具有明显的事务特征。图931用户交互子系统的二次流图、无效密码、启动/停止命令、密码、启动/停止消息、配置数据、配置数据、配置命令、显示信息、“重试”信息、用户命令、启动命令处理、启动/停止系统、无读取构成文件,读取密码,显示信息和状态,比较密码和文件,构成信息,用户指令数据、系统参数和数据、原始配置项目、格式化的配置数据、指令类型、确认密码、有效密码、9.3事务分析、事务分析法可以归纳为七个步骤:步骤1、基本系统模型的步骤2、重新审查和纯化软件数据流图的步骤3、确定数据流图的特征的步骤4、指定事务中心并确定接收部和发送部的流边界的步骤5、映射系统的高级模块结构的图9-3-2映射表9、8、6、1、2、5、4、3、7、10、11、接收部、发送部、SYSTEM、输入1、方差2、SUBSYS1、SUBSYS2、SUBSYS3、9.3事务分析,步骤6 这些子结构使用本节或前节所述的设计过程从在各个工作路径中流动的流的特征中逐一导出。,图9-3-3设计系统的下层模块结构,9,8,6,1,2,5,4,3,事务中心,接收部,subsys 2,7,10,4,11,输入控制,输出控制, 9.3事务分析将图9-3-4模块结构组合,得到程序结构的雏形,得到了SYSTEM、输入1、分散2、SUBSYS1,SUBSYS2,SUBSYS3,7,10,4,11,输入控制,转换控制,输出控制,3,6,6 这个步骤与转换分析法相同。 9.4优化设计和原则9.4.1启发式设计策略,1 .调整模块功能和规模,降低耦合度,提高内聚力。 在几个模块中发现共同的子功能的情况下,一般将该子功能独立地作为一个模块,提高各个模块的结束度。 集成模块通常用于在减少控制信息的传输和对整个数据的参考的同时,降低接口的复杂性。 模块的规模没有固定的要求。 以保持模块的独立性为原则。 一般来说,模块规模优选为1页左右(高级语言为75句左右)。 9.4.1启发式设计策略,2 .调整软件结构的深度、宽度、扇出和风扇数,从而提高软件结构的性能。 经验表明,设计良好的软件结构顶层扇出高,中层扇出低,顶层风扇进入共同的实用模块中。 图941应该对要避免的程序结构、9.4.1启发式设计策略、9.4.1启发式设计策略、3 .程序结构进行改造,使任何模块的作用区域都进入其控制区域。 受判定、f中判定的影响,与a、c、f、e、g、h、d、第三原则相反,满足第三原则,a、d、c、e、f、h、g、b :图942的作用域和控制域,9.4.1启发式设计策略,4 .莫接口的复杂是引起软件错误的基本因素,接口上传递的数据要尽可能简单,要与模块的功能协调一致。 接口不协调(即,在同一参数表内或以某种其它方式传送不太相关的数据束)本身是模块的低团结的特征。 9.4.1启发式设计策略,5 .模块功能应该可以预言,不要对模块施加过度限制。 模块功能可以预言,当模块的输入数据相同时,其执行所产生的输出必然相同,即,可以从该输入数据预测模块的输出结果。 此外,如果设计时模块内的本地数据的体积、控制流的选择和外部接口方式等各要素的限制过多,以后为了消除这些限制,维护的开销会增加。 9.4.1启发式设计策略,6 .改造程序结构,追求单入口单出口模块。 7 .以封装的形式封装某个软件以满足设计和可移植性的要求。 软件设计经常有特别的限制。 例如,要求程序采用垄断技术。 此时,根据模块的重要性、访问频率、两次引用的间隔等因素对模块进行分组。 此外,为了有效加载,程序中要选择的模块或“一个单调”(oneshot )模块必须单独存在。 得到辅助文件、程序结构后,必须开发一系列辅助文件,作为软件整体设计的一部分。 主要工作是:1)描述各模块的处理过程;2 )描述各模块的接口;3 )根据数据词典定义数据结构;4 )总结

温馨提示

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

评论

0/150

提交评论