第9讲:结构化设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

两种软件开发方法可行性分析问题定义设计编码测试用户称述软件定义阶段软件开发阶段运行维护阶段需求分析维护结构化方法面向对象方法结构化方法一种面向数据流的传统软件开发方法分为:结构化分析(StructuredAnalysis简称SA)结构化设计(StructuresdDesign简称SD)结构化程序设计(StructuredProgrammin简称SP)SA的描述工具:数据流图DataFlowDiagram(简称DFD):描述输入数据流到输出数据流的变换(即加工)过程,用于对系统的功能建模DFD的基本元素:数据流(dataflow):由一组固定成分的数据组成,代表数据的流动方向加工(process):描述了输入数据流到输出数据流的变换,即将输入数据流加工成输出数据流文件(file):使用文件、数据库等保存某些数据结果供以后使用源或宿(sourceorsink):软件系统输入数据的来源和输出数据的去向示例:图书订购系统DFD图书库存入库单图书代理商书库管理收费制作财务报表财务报表经理帐务数据库制作发书单图书订购核准的订购单发书单订购单顾客顾客收费数据帐单SA的任务:建立分层数据流图2.42.32.22.121431.31.21.1X顶层图:0层图:中间层图:6第九章结构化设计方法7内容提纲结构化设计方法概述结构化设计的基本概念两种数据流类型:变换型和事务型系统体系结构的描述工具:系统结构图结构化设计过程概要设计变换分析事务分析详细设计案例:图书订购系统提出时间:由Yourdon和Constantine等于1974年提出的目标:与结构化分析相衔接,根据需求阶段对数据流的分析设计软件结构结构化设计方法概述概要设计设计软件系统的体系结构(也即软件系统的模块结构)与接口主要任务是将数据流图映射为软件系统结构图详细设计:对概要设计的每一个模块进行数据设计和过程设计结构化设计的主要内容关键点:软件系统的体系结构设计10内容提纲结构化设计方法概述结构化设计的基本概念两种数据流类型:变换型和事务型系统体系结构的描述工具:系统结构图结构化设计过程概要设计变换分析事务分析详细设计案例:图书订购系统特征:信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。组成:由输入、变换中心和输出三部分组成两种数据流类型—变换型特征:数据沿输入通路到达一个加工T,这个加工根据输入数据的类型在若干个动作序列中选出一个来执行。加工T称为事务中心,它完成以下任务:(1)接收输入数据(输入数据又称为事务)。(2)分析每个事务以确定它的类型。(3)根据事务类型选取一条动作路径。两种数据流类型—事务型什么叫变换型DFD和事务型DFD?如果某个加工的输出没有分支(即顺序结构,输入数据流在输出端不会分离,只会合成),则称为变换型;若加工后有分支(加工后会将输入流分离成许多发散的数据流,形成许多加工路径,根据输入值来选择其中一个路径来执行),则称为事务型。16内容提纲结构化设计方法概述结构化设计的基本概念两种数据流类型:变换型和事务型系统体系结构的描述工具:系统结构图结构化设计过程概要设计变换分析事务分析详细设计案例:图书订购系统缩写:SC(StructureChart)是SD方法在概要设计中使用的主要表达工具,用来显示软件的组成模块及其调用关系。系统体系结构的描述工具:系统结构图用矩形框来表示模块用带箭头的连线表示模块间的调用关系系统结构图:表现形式简单调用选择调用循环调用系统结构图:模块间调用关系20内容提纲结构化设计方法概述结构化设计的基本概念两种数据流类型:变换型和事务型系统体系结构的描述工具:系统结构图结构化设计过程概要设计变换分析事务分析详细设计案例:图书订购系统1:复审并精化数据流图2:鉴别数据流图是属于变换型还是事务型3:按照结构化设计的方法,把数据流图转换为初始的软件结构图4:按照启发式规则的指导,改进初始的软件结构图,优化设计,获得最终软件结构图5:写出详细的接口描述和全局数据结构6:复审优化后的设计结构化设计过程22内容提纲结构化设计方法概述结构化设计的基本概念两种数据流类型:变换型和事务型系统体系结构的描述工具:系统结构图结构化设计过程概要设计变换分析事务分析详细设计案例:图书订购系统变换分析是一系列设计步骤的总称,经过这些步骤把具有变换流特点的数据流图映射成为一个预定义的程序结构模板。变换分析的步骤:1.对DFD图的分析和划分2.进行第一级分解,设计顶层和第一层模块3.第二级分解,设计中、下层模块概要设计:变换分析首先区分输入流、输出流和变换中心3个部分,标明数据流的边界。从三个方面来考虑:多股数据流汇集的地方往往是系统的变换中心部分。可以从数据流图的物理输入开始,一步一步向系统中间移动,一直到数据流不再被看成是系统的输入为止,则前一个数据流就是系统的逻辑输入。从物理输出端开始,一步一步向系统中间移动,就可以找到离物理输出端最远且仍被看成是系统输出的数据流。1-对DFD图的分析和划分顶层都只有一个用于控制的主模块。第一层一般包括输入、输出和变换3个模块输入模块:其功能是向主模块提供数据;输出模块:其功能是把主模块提供的数据输出;变换模块:其功能是把逻辑输入变换成逻辑输出。2-进行第一级分解,设计顶层和第一层模块(1/2)1,第一层分解,设计顶层和第一层第一层的另外一种画法:在第一层不是每一分支只画一个模块,而是按照实际情况确定模块的数量2-进行第一级分解,设计顶层和第一层模块(2/2)第一层分解的另外一种画法第二级分解就是把数据流图中的每个加工映射成软件结构中的一个适当的模块。具体过程:1,从变换中心的边界开始,逆着输入通路向外移动,把输入通路中每个加工映射成软件结构中输入模块控制下的一个低层次模块;2,然后沿输出通路向外移动,把输出通路中每个加工映射成直接或间接受输出模块控制的一个低层次模块;3,最后把变换中心内的每个处理映射成受变换模块控制的一个模块。3-第二级分解,设计中、下层模块(1/2)1,第一层分解,设计顶层和第一层2,第二层分解1,第一层分解,设计顶层和第一层2,第二层分解1,第一层分解,设计顶层和第一层2,第二层分解第二级分解中输入输出的另外一种画法:显示数据在输入输出通道中的变换3-第二级分解,设计中、下层模块(2/2)输入通道的第二种画法:输出通道的第二种画法:事务:引起式、触发式启动单一动作或一串动作的任何数据、控制、信号、事件或状态变化。事务分析:由事务型数据流图映射为软件结构的过程。概要设计:事务分析(1)确定输入、事务变换和输出路径的集合(划分集合)。(2)根据事务的功能设计—个总控模块(设计总控)。(3)确定顶层模块和第一层模块(建立映射)。(4)继续下层分解(递归自展)。事务分析的具体过程变换-事务混合:一个数据流图中既有变换又有事务分析策略:以一种分析(比如以变换分析)为主,另一种分析为辅概要设计:变换-事务混合型分析变换-事务混合型分析例:如果文件名不存在?“读取并确认文件名”模块应向“进行字数统计”模块提供一个状态标志,“进行字数统计”模块将打印错误消息。“读取并确认文件名”和“格式化并显示字数统计”模块具有过程性内聚。因此需要进一步分解。1.改进软件结构以提高模块独立性2.模块的大小要适当3.深度、宽度、扇出和扇入都应适当4.模块的作用域应在控制域之内5.力争降低模块接口的复杂程度6.设计单入口单出口的模块7.模块功能应该可预测,避免对模块施加过多限制模块分解中的启发式规则经验表明,一个模块的规模不应过大,通常规定其语句行数为50~100行,最多不超过500行。内聚:1.巧合性内聚(coincidentalcohesion)2.逻辑性内聚(logicalcohesion)3.时间性内聚(temporalcohesion)4.过程性内聚(proceduralcohesion)5.通信性内聚(communicationalcohesion)6.顺序性内聚(sequentialcohesion)7.功能性内聚(functionalcohesion)耦合:1.非直接耦合(nodirectcoupling)2.数据耦合(datacoupling)3.特征耦合(stampcoupling)4.控制耦合(controlcoupling)5.外部耦合(externalcoupling)6.公共耦合(commoncoupling)7.内容耦合(contentcoupling)1.改进软件结构以提高模块独立性2.模块的大小要适当3.深度、宽度、扇出和扇入都应适当4.模块的作用域应在控制域之内模块分解中的启发式规则模块的作用域定义为受该模块内一个判定影响的所有模块的集合。模块的控制域是指这个模块本身以及所有直接或间接从属于它的模块的集合。在设计过程中,当出现作用域不在控制域之内时,可以用以下措施纠正:(1)将把判定所在的模块合并至上层模块中,使判定的位置提高。(2)将受判定影响的模块移到模块控制范围之内。(3)将判定上移到层次中较高的位置。1.改进软件结构以提高模块独立性2.模块的大小要适当3.深度、宽度、扇出和扇入都应适当4.模块的作用域应在控制域之内5.力争降低模块接口的复杂程度6.设计单入口单出口的模块7.模块功能应该可预测,避免对模块施加过多限制模块分解中的启发式规则设计优化是指在软件设计之后,进一步对系统的设计进行优化一般力求:尽量少的模块,尽量简单的数据结构对有时间要求的软件,挑选最耗费时间的那些模块,精心设计它们的处理过程,以求提高效率。……设计优化56内容提纲结构化设计方法概述结构化设计的基本概念两种数据流类型:变换型和事务型系统体系结构的描述工具:系统结构图结构化设计过程概要设计变换分析事务分析详细设计案例:图书订购系统详细设计就要对软件结构中的每一个模块确定使用的算法或块内数据结构,并用某种选定的表达工具给出清晰的描述。详细设计的表达工具程序流程图盒图PAD图PDLHIPO图详细设计程序流程图(程序框图),是历史最悠久、使用最广泛的描述过程设计的方法。主要优点:对控制流程的描绘直观,便于掌握。主要缺点:流程图中使用箭头可随意地将控制进行转移不易表示系统中所含的数据结构不利于逐步求精的设计对于大型软件而言,流程图过于琐碎,不容易阅读和修改详细设计表达工具一:程序流程图示例程序流程图的标准符号循环的标准符号注解的使用多出口判断1973年,Nassi和Shneiderman提出用方框图来代替传统的流程图,引起了人们的重视,根据这两位创始人的名字,许多人把它简称为N-S图(N-Schart)。详细设计表达工具二:盒图盒图与程序流程图相比较,盒图具有如下明显的优点。(1)它的控制转移不能任意规定,必须遵守结构化程序设计的要求。(2)很容易确定局部和全程数据的作用域。(3)很容易表现嵌套关系,也容易表示模块的层次结构。(4)特定控制逻辑的作用范围明确,可以从盒图上一目了然。(5)程序只有一个入口、一个出口,完全能够满足单入口单出口的结构化程序设计要求。(6)盒图简单,易学易用。缺点:当程序内嵌套的层数增多时,内层方框会越来越小,一方面会增加画图难度,另一方面会影响图形的清晰度。盒图N-S的主要特色:只能描述结构化程序所允许的标准结构,根本取消了表现诸如含有GOTO语句的非标准结构的手段。N-S图缺点:当程序内嵌套的层数增多时,内层的方块越画越小,不仅会增加画图的困难,并将使图形的清晰性受到影响。没有控制流线,不能任意转移;控制关系隐含,循环次数隐含盒图零件号100011000210003100041000510006库存量

1 / 96
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功