《结构化设计方法》PPT课件.ppt

上传人:sh****n 文档编号:12756699 上传时间:2020-05-22 格式:PPT 页数:57 大小:327KB
返回 下载 相关 举报
《结构化设计方法》PPT课件.ppt_第1页
第1页 / 共57页
《结构化设计方法》PPT课件.ppt_第2页
第2页 / 共57页
《结构化设计方法》PPT课件.ppt_第3页
第3页 / 共57页
点击查看更多>>
资源描述
第9章结构化设计方法,结构化设计阶段数据流设计方法面向数据的设计结构化程序设计案例分析,结构化设计概述,设计先于编码”,这是软件工程“推迟实现”基本原则的又一体现。结构化设计方法(StructuredDesign,SD)是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础上发展起来的。结构化设计方法用模块结构图来表达程序模块之间的关系。软件设计分为两个阶段:概要设计详细设计,概要设计,概要设计也称总体设计,确定软件的结构以及各组成成分(子系统或模块)之间的相互关系。概要设计的主要任务是:将系统划分成模块;决定每个模块的功能;决定模块的调用关系;决定模块的界面,即模块间传递的数据。概要设计阶段的主要任务是通过数据流图来确定系统的结构图,并且对这些结构图进行分析和细化。在概要设计阶段,结构化设计主要采用面向数据流的设计方法。,详细设计,详细设计就是在概要设计的基础上决定如何具体实现各模块的内部细节,直到对系统中的每个模块给出足够详细的过程描述。在编码实现阶段就可以完全按照详细设计的细节过程来映射到代码,最终实现整个系统。一般使用结构化程序设计工具来描述,数据流类型,根据基本系统模型,数据信息必须以“外部”信息形式进入软件系统,经过内部处理以后再以“外部”的形式离开系统。有三种数据流类型:变换型数据流事务型数据流混合型数据流,变换型数据流,信息可以通过各种路径进入系统,信息在“流”入系统的过程中由外部形式变换成内部数据形式,这被标识为输入流。在软件的核心,输入数据经过一系列加工处理,这被标识为变换流。通过变换处理后的输出数据,沿各种路径转换为外部形式“流”出软件,这被标识为输出流。整个数据流体现了以输入、变换、输出的顺序方式,沿一定路径前行的特征,这就是变换型数据流,简称变换流。,变换型数据流,事务型数据流,当数据流经过一个具有“事务中心”特征的数据处理时,它可以根据事务类型从多条路径的数据流中选择一条活动通路。这种具有根据条件选择处理不同事务的数据流,就是事务型数据流,简称事务流。,事务型数据流,混合型数据流,在一个大型系统的DFD中,变换流和事务流往往会同时出现。例如,在一个事务型的DFD中,分支动作路径上的信息流也可能会体现出变换流的特征。这种具有将事务流和变换流组合出现,就是混合型数据流,简称混合流。,混合型数据流,混合型数据流,数据流设计方法,面向数据流分析(DFA,DataFlowAnalysis)的设计是一种结构化的软件体系结构设计方法。面向数据流分析的设计能与大多数需求规格说明技术配合,可以使模块达到高内聚性(顺序性内聚)。这一设计技术是从数据流图(DFD)分析模型映射为软件模块组成结构设计的描述,所以也称为结构化设计(SD,StructuredDesign)方法。,数据流映射步骤,复查基本系统模型,并精化系统数据流图分析数据流类型,确定数据流具有变换流特征还是事务流特征如果是变换流特征,确定输入流和输出流的边界(也分别称为最高输入/输出抽象点),输入流边界和输出流边界之间就是变换流,也称为“变换中心”。变换流加工处理的是某些形式的内部数据。如果是事务流特征,则可确定一个接收分支和一个发送分支。其中发送分支包含一个“事务中心”和各个事务动作流。采用自顶向下、逐步求精的方式完成模块分解,确定相应的软件组成结构根据模块独立性原理和运用设计度量标准,对导出的软件结构进行优化,变换流设计,变换流设计的要点是分析数据流图,确定输入流、输出流边界,根据输入、变换、输出三个数据流分支将软件映射成一个标准的“树型”体系结构。在有多个输入流和多个输出流时,应分别找出各个输入流和输出流的边界,即最高抽象点,然后分别连接这些输入流的最高抽象点和输出流的最高抽象点,分别形成输入边界和输出边界。下面设计一个“统计输入文件中单词数目”程序。,第一次分解,第二次分解,事务流设计,事务流分析设计是把事务流映射成包含一个接收分支和一个发送分支的软件结构。接收分支的映射方法和变换流设计映射出输入结构的方法相似,即从事务中心的边界开始,把沿着接收流通路的处理映射成一个个模块。发送分支结构包含了一个分类控制模块和它下层的各个动作模块。数据流图的每一个事务动作流路径应映射成与其自身信息流特征相一致的结构。,事务流设计,ATM机系统结构,混合流设计,混合流设计,面向数据的设计,大多数软件本质上都是数据信息处理系统,而数据信息都有清楚的层次结构,即输入数据、内部存储信息、输出数据都可能有独特的数据结构。面向数据的设计原理就是根据软件操作的数据结构设计软件。适合于总体设计和详细设计“合而为一”的软件设计。面向数据的设计技术最常用的有Jackson方法(JacksonStructuredDesign,JSD)由数据结构导出它的程序结构是Jackson方法的基本思想。,Jackson图,Jackson图是Jackson方法分析和设计最有效的表达手段,用它既可以描述问题的数据结构,也可以描述软件的程序结构。Jackson图的优点是便于表示层次结构,利于结构自顶向下分解,形象直观、可读性好。Jackson方法用某种形式的伪码给出程序的过程性描述。,JSD方法设计步骤,分析并确定问题的输入和输出数据的逻辑结构,并用Jackson图描绘这些数据结构。找出输入数据结构和输出数据结构中有对应关系的数据单元。根据下述三条规则从数据结构的Jackson图导出程序结构的Jackson图。为每个有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框。根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。列出操作和条件,并把它们分配到程序结构图的适当位置。用某种形式的伪码给出程序结构图对应的过程性描述。,JSD举例分析(Jackson图),JSD举例分析(Jackson图),输出数据,输出数据结构,程序结构,程序矛盾,伪码,PROCESS_CUST_DATAseqopenPAY_FILE;openCUST_M_FILE;分别打开支付文件和顾客主文件PROCESS_CNO_GROUPiteruntileof:PAY_FILE;处理顾客号码组readPAY_FILE;读支付文件一个记录PROCESS_CNO;读顾客主文件一个记录,找老结余PROCESS_PAY_RECORDiteruntilend:CNO_GROUP;处理顾客号码组中每个支付记录writereportline;写出报告行computetotalpayments;计算总支付额readPAY_FILE;读支付文件下一个记录PROCESS_PAY_RECORDend;一位顾客数据处理完COMPUTE_CUST_TOTAL;计算顾客总数COMPUTE_BALANCEseq计算结余PROCESS_OLD_BALANCE;处理老结余COMPUTE_NEW_BALANCE;计算新结余)writereportline;写出报告行COMPUTE_BALANCEend;计算结余完毕PROCESS_CNO_GROUPend;支付文件处理完成PROCESS_CUST_DATAend;SubstructurePROCESS_CUST_DATA,结构化程序设计方法,结构化程序设计的理念是在20世纪60年代,由Dijkstra等人提出并加以完善的。结构化的程序一般只需要用三种基本的逻辑结构就能实现。这三种基本逻辑结构是顺序结构、选择结构和循环结构。结构化程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。,结构化程序设计优点,自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律,因此可以显著提高软件开发工程的成功率和生产率。用先全局后局部、先整体后细节、先抽象后具体的逐步求精过程开发出的程序有清晰的层次结构,因此容易阅读和理解。不使用GOTO语句仅使用单入口单出口的控制结构,使得程序的静态结构和它的动态执行情况比较一致。因此,程序容易阅读和理解,开发时也比较容易保证程序的正确性,即使出现错误也比较容易诊断和改正。控制结构有确定的逻辑模式,编写程序代码只限于使用很少几种直截了当的方式,因此源程序清晰流畅,易读易懂而且容易测试。程序清晰和模块化使得在修改和重新设计一个软件时可以重用的代码量最大。程序的逻辑结构清晰,有利于程序正确性证明。,结构化程序设计工具,图形工具:把过程的细节表示成一个图的组成部分,在这个图上,逻辑构造用具体的图形来表示。列表工具:用一个表来表示过程的细节,这个表列出了各种操作及其相应的条件。也即,描述了输入、处理和输出信息。语言工具:用类语言来表示过程的细节,这种类语言很接近于编程语言。,程序流程图,程序流程图又称为程序框图,Goldstine于1946年首先采用。它的主要优点是对控制流程的描绘很直观,便于初学者掌握。程序流程图的主要缺点:程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构;程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制;程序流程图不易表示数据结构。,程序流程图符号,盒图,盒图是由Nassi和Shneiderman提出的,所以又称为N-S图。每个处理步骤都用一个盒子来表示,这些处理步骤可以是语句或语句序列,在需要时,盒子中还可以嵌套另一个盒子,嵌套深度一般没有限制。盒图具有下述特点:功能域(即,一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。由于只能从上边进入盒子然后从下面走出盒子,除此之外没有其它的入口和出口,所以盒图限制了任意的控制转移,保证程序有良好的结构。很容易确定局部和全程数据的作用域。很容易表现嵌套关系,也可以表示模块的层次结构。盒图很容易表示程序结构化的层次结构,确定局部和全局数据的作用域。由于没有箭头,因此不允许随意转移控制。,盒图符号,PAD图,PAD是问题分析图(ProblemAnalysisDiagram)的英文缩写,自1973年由日本日立公司发明。它是由程序流程图演化而来,用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。PAD图的基本原理:采用自顶向下、逐步细化和结构化设计的原则,力求将模糊的问题解的概念逐步转换为确定的和详尽的过程,使之最终可采用计算机直接进行处理。,PAD图符号,PAD图的主要优点,使用表示结构化控制结构的PAD符号设计出来的程序必然是结构化程序。PAD图所描绘的程序结构十分清晰。图中最左边的竖线是程序的主线,即第一层结构。随着程序层次的增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线。PAD图中竖线的总条数就是程序的层次数。用PAD图表现程序逻辑,易读、易懂、易记。PAD图是二维树形结构的图形,程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点。容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性和软件生产率。既可用于表示程序逻辑,又可用于描绘数据结构。,PAD图举例,HIPO图,HIPO(HiberarchyPlusInput-Process-Output,层次加输入-处理-输出)图是根据IBM公司研制的软件设计与文件编制技术发展而来的。HIPO图采用功能框图和PDL来描述程序逻辑,它由两部分组成:可视目录表给出程序的层次关系体系框图:又称层次图(H图),是可视目录表的主体,用它表明各个功能的隶属关系图例:图形符号说明描述说明:每一框的补充说明IPO图则为程序各部分提供具体的工作细节,盘存销售系统工作流程图,层次图,说明,IPO图,详细的IPO图,实例分析:出卷系统,接口,接口:没有输入参数,输出参数为用户命令。接口:输入参数为出卷命令,没有输出参数。接口:输入参数为设置试卷要求,没有输出参数。接口:输入参数为手动出卷命令,没有输出参数。接口:输入参数为自动出卷命令,没有输出参数。,自动出卷,手动出卷,图书馆系统,图书馆系统,维护管理系统,小结,概要设计就是确定系统的模块以及模块之间的结构和关系,将软件的功能需求分配给所划分的最小单元模块。详细设计要确定数据结构、文件结构、数据库模式以及确定测试方法与策略。在概要设计阶段主要树立一个模块化的思想。将分析阶段的数据流图,将数据流进行分析。是变换流还是事务流,或者是两种的结合混合流。按照数据流到软件结构图的映射步骤将数据流图转化为系统的软件结构图。再对结构图进行分析、细化得到合理的软件模块结构。在软件模块确定后,就需要考虑为软件结构图中的每一个模块确定相应的算法和块内的数据结构,用结构化程序设计工具来描述。结构化程序设计工具通常以图形语言来描述,然后用PDL语言来加工。使得操作的步骤尽可能详细和清晰。在详细设计工具中主要有程序流程图、盒图、PAD图和HIPO图等。用面向数据结构的结构化程序设计方法JSD方法来详细描述程序的结构。,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


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

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


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