第五章-传统的设计方法2课件.ppt

上传人(卖家):晟晟文业 文档编号:4782533 上传时间:2023-01-10 格式:PPT 页数:92 大小:1.49MB
下载 相关 举报
第五章-传统的设计方法2课件.ppt_第1页
第1页 / 共92页
第五章-传统的设计方法2课件.ppt_第2页
第2页 / 共92页
第五章-传统的设计方法2课件.ppt_第3页
第3页 / 共92页
第五章-传统的设计方法2课件.ppt_第4页
第4页 / 共92页
第五章-传统的设计方法2课件.ppt_第5页
第5页 / 共92页
点击查看更多>>
资源描述

1、n本章介绍了传统的设计模型,以及从分析模本章介绍了传统的设计模型,以及从分析模型导出设计模型的一般方法。重点讲述了面型导出设计模型的一般方法。重点讲述了面向数据流设计的结构化设计方法(包括结构向数据流设计的结构化设计方法(包括结构设计和过程设计)和面向数据结构设计的设计和过程设计)和面向数据结构设计的Jackson设计方法。设计方法。n重点掌握:重点掌握:结构化设计模型,结构化设计结构化设计模型,结构化设计方法。方法。1uhiukun结构化设计模型结构化设计模型n结构化设计方法结构化设计方法n过程设计过程设计nJackson方法方法2uhiukun本章内容本章内容n介绍了传统的设计模型,以及从

2、分析模型导出设计模介绍了传统的设计模型,以及从分析模型导出设计模型的一般方法。型的一般方法。n重点讲述了面向数据流设计的结构化设计方法(包括重点讲述了面向数据流设计的结构化设计方法(包括结构设计和过程设计)和面向数据结构设计的结构设计和过程设计)和面向数据结构设计的Jackson设计方法。设计方法。n重点掌握重点掌握n结构化设计模型,结构化设计方法。结构化设计模型,结构化设计方法。3uhiukun面向数据流设计和面向数据设计面向数据流设计和面向数据设计n从分析模型导出设计模型从分析模型导出设计模型4uhiukun面向数据流设计面向数据流设计n将信息流映射成软件结构将信息流映射成软件结构n数据流

3、是考虑一切问题的出发点数据流是考虑一切问题的出发点n最终目的最终目的n给出设计软件结构的一个系统化的途径给出设计软件结构的一个系统化的途径n数据流的类型决定映射方法数据流的类型决定映射方法n变换流变换流n事务流事务流n该方法适用于概要设计阶段该方法适用于概要设计阶段n常称为结构化设计(常称为结构化设计(SD)方法)方法5uhiukun面向数据设计面向数据设计n该方法不明显的使用软件结构的概念,模块是设该方法不明显的使用软件结构的概念,模块是设计过程的副产品。对于模块独立性也没有给予应计过程的副产品。对于模块独立性也没有给予应有的重视。有的重视。n以数据结构作为分析和设计的基础以数据结构作为分析

4、和设计的基础n最终目标最终目标n得出程序的过程性描述得出程序的过程性描述n该方法适用于过程设计该方法适用于过程设计/详细设计阶段详细设计阶段n主要设计方法主要设计方法nJackson方法方法nWarnier方法方法6uhiukun结构化设计与结构化分析的关系结构化设计与结构化分析的关系n软件设计必须依据对软件的需求来进行,结构软件设计必须依据对软件的需求来进行,结构化分析的结果为结构化设计提供了最基本的输化分析的结果为结构化设计提供了最基本的输入信息。入信息。n分析模型的每个元素都提供了创建设计模型时分析模型的每个元素都提供了创建设计模型时所需要的信息。所需要的信息。7uhiuku图图5.1

5、将分析模型转换为软件的设计模型将分析模型转换为软件的设计模型8uhiuku 数据设计把分析阶段创建的信息域模型转变成实现数据设计把分析阶段创建的信息域模型转变成实现软件所需要的数据结构。软件所需要的数据结构。体系结构设计确定了程序的主要结构元素体系结构设计确定了程序的主要结构元素(即程序构即程序构件件)之间的关系。之间的关系。接口设计的结果描述了软件内部、软件与协作系统接口设计的结果描述了软件内部、软件与协作系统之间以及软件与使用者之间的通信方式。之间以及软件与使用者之间的通信方式。过程设计把程序体系结构中的结构元素,变换成对过程设计把程序体系结构中的结构元素,变换成对软件构件的过程性描述。软

6、件构件的过程性描述。在软件设计期间我们所做出的决策,将最终决定软在软件设计期间我们所做出的决策,将最终决定软件开发能否成功,更重要的是,这些设计决策将决定软件开发能否成功,更重要的是,这些设计决策将决定软件维护的难易程度。件维护的难易程度。9uhiukunSD方法的中心任务方法的中心任务n把用把用DFD图表示的系统分析模型方便地转换图表示的系统分析模型方便地转换为软件结构的设计模型。为软件结构的设计模型。n软件结构的描述工具软件结构的描述工具nH图(层次图)图(层次图)nSC图(软件结构图)图(软件结构图)10uhiuku层次图层次图 通常使用层次图描绘软件的层次结构。在层通常使用层次图描绘软

7、件的层次结构。在层次图中一个矩形框代表一个模块,框间的连线表次图中一个矩形框代表一个模块,框间的连线表示调用关系。示调用关系。11uhiukuHIPOHIPO图图 HIPO HIPO图是美国图是美国IBMIBM公司发明的公司发明的“层次图层次图+输入输入/处处理理/输出图输出图”的英文缩写。为了使的英文缩写。为了使HIPOHIPO图具有可追踪图具有可追踪性,在性,在H H图图(即层次图即层次图)里除了顶层的方框之外,每个里除了顶层的方框之外,每个方框都加编号。方框都加编号。12uhiuku基本的基本的IPO图图13uhiuku表格式的表格式的IPO图(图(IPO表)表)14uhiukunSC图

8、的组成符号图的组成符号n矩形框矩形框来表示模块来表示模块 n带箭头的连线表示模块间的带箭头的连线表示模块间的调用关系调用关系n在调用线的两旁标出传入和传出模块的在调用线的两旁标出传入和传出模块的数据流数据流 nSC图中的模块符号图中的模块符号n传入传入n传出传出n变换变换n源源n漏漏n控制控制 P88实物投影解释用于表达软件的组成模块及其调用关系。用于表达软件的组成模块及其调用关系。15uhiukunSC图中的模块调用图中的模块调用n简单调用:调用线的箭头指向被调用模块简单调用:调用线的箭头指向被调用模块n选择调用:图中用菱形符号表示选择选择调用:图中用菱形符号表示选择 n循环调用:用叠加在调

9、用线始端的环形箭头表示循环循环调用:用叠加在调用线始端的环形箭头表示循环ABCDABCACBX,YZZ简单调用简单调用 选择调用选择调用 循环调用循环调用 16uhiuku在结构图中通常还用带注释的箭头表示模块调用过程中来回传递的信息。如果希望进一步标明传递的信息是数据还是控制信息,则可以利用注释箭头尾部的形状来区分:尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息 17uhiuku注意:注意:层次图和结构图并不严格表示模块的调用次序。层次图和结构图并不严格表示模块的调用次序。层次图和结构图并不指明什么时候调用下层模层次图和结构图并不指明什么时候调用下层模块。块。通常用层次图作为描绘软

10、件结构的文档。结通常用层次图作为描绘软件结构的文档。结构图作为文档并不合适。但是,利用构图作为文档并不合适。但是,利用IPOIPO图和数图和数据字典中的信息得到模块调用时传递的信息,从据字典中的信息得到模块调用时传递的信息,从而由层次图导出结构图的过程,却可以作为检察而由层次图导出结构图的过程,却可以作为检察设计正确性和评价模块独立性的好方法。设计正确性和评价模块独立性的好方法。18uhiukun数据流图的类型数据流图的类型n变换型结构变换型结构n事务型结构事务型结构19uhiuku组成组成n传入路径传入路径n变换中心变换中心n传出路径传出路径 数据流数据流n传入流传入流n变换流变换流n传出流

11、传出流变换中心:通过计算或处理,将变换中心:通过计算或处理,将系统的传入流变为传出流。又称系统的传入流变为传出流。又称加工中心。加工中心。传入流:离输入始端最远但仍可传入流:离输入始端最远但仍可被看作系统输入的那些数据流。被看作系统输入的那些数据流。传出流:离输出末端最远但仍可传出流:离输出末端最远但仍可被看作系统输出的那些数据流。被看作系统输出的那些数据流。变换中心传入传出信息传入流 传出流 变换流时间20uhiukun组成组成n一条接受路径一条接受路径n一个事务中心一个事务中心n若干条动作路径若干条动作路径n特征特征n具有在多种事务中具有在多种事务中执行某类事务的能执行某类事务的能力。力。

12、事务事务 中心中心接受路径接受路径动作路径动作路径21uhiukun复审复审DFD图,必要时可再次进行修改或细化图,必要时可再次进行修改或细化n鉴别鉴别DFD图的结构特征图的结构特征:事务?变换?事务?变换?n按照规则,把按照规则,把DFD图为初始的图为初始的SC图图 n改进初始的改进初始的SC图,获得最终图,获得最终SC图。图。22uhiukun两种映射方法两种映射方法n变换映射变换映射n事务映射事务映射变换型变换型DFD图图事务型事务型DFD图图初始初始SC图图初始初始SC图图变换映射变换映射事务映射事务映射23uhiuku 适用于将变换型结构的适用于将变换型结构的DFDDFD图转换为初始

13、软图转换为初始软件结构图。步骤如下:件结构图。步骤如下:1 1、区分传入、传出和变换中心三个部分,在、区分传入、传出和变换中心三个部分,在DFDDFD图上标明它们的分界线图上标明它们的分界线(1)(1)变换中心的任务:通过计算或处理,把系统变换中心的任务:通过计算或处理,把系统的逻辑输入变换的逻辑输入变换(或加工或加工)为系统的逻辑输出。为系统的逻辑输出。(2)(2)逻辑输入逻辑输入(传入数据项传入数据项):离物理输入端:离物理输入端(输入输入始端始端)最远,但仍可以被看作系统输入的那些数最远,但仍可以被看作系统输入的那些数据流。据流。24uhiuku(3)(3)逻辑输出逻辑输出(传出数据项传

14、出数据项):离物理输出端:离物理输出端(输出末输出末端端)最远,但仍可以被看作系统输出的那些数据流。最远,但仍可以被看作系统输出的那些数据流。(4)(4)数据在系统中流动时,不仅在通过变换中心时要数据在系统中流动时,不仅在通过变换中心时要被变换,在传入路径和传出路径上,其内容和形式被变换,在传入路径和传出路径上,其内容和形式也可能发生变化。故变换中心又称为也可能发生变化。故变换中心又称为“中心加工中心加工”,以区别于数据在传入传出过程中的其它加工。以区别于数据在传入传出过程中的其它加工。(5)(5)划分的结果可能会受经验的影响,但必须从实际划分的结果可能会受经验的影响,但必须从实际情况出发,对

15、情况出发,对DFDDFD图作认真和细致的分析图作认真和细致的分析(6)(6)几种可能遇到的情况及其处理方法几种可能遇到的情况及其处理方法25uhiuku有些系统没有中心加工,系统的逻辑输入和逻有些系统没有中心加工,系统的逻辑输入和逻辑输出是完全相同的数据流,应将辑输出是完全相同的数据流,应将DFDDFD划分为传划分为传入和传出两部分,不要强求一律硬分成三个部分。入和传出两部分,不要强求一律硬分成三个部分。除传入部分外,在变换中心甚至传出部分也可除传入部分外,在变换中心甚至传出部分也可能从系统外接受某些输入数据流,称为二次传入能从系统外接受某些输入数据流,称为二次传入数据。该数据不应当作传入部分

16、的一部分。数据。该数据不应当作传入部分的一部分。有些有些DFDDFD图可能失之太粗,缺少应有的细节,可图可能失之太粗,缺少应有的细节,可考虑对自己用于分析的考虑对自己用于分析的DFDDFD进行补充。进行补充。26uhiuku27uhiuku2 2、完成、完成“第一级分解第一级分解”,建立初始,建立初始SCSC图的框架。图的框架。包括顶层控制模块和第一层模块。包括顶层控制模块和第一层模块。两种画法:两种画法:a.a.顶层控制模块顶层控制模块+传入、传出和中心变换传入、传出和中心变换3 3个一层个一层模块模块b.b.顶层控制模块顶层控制模块+按照传入、传出实际数据流数按照传入、传出实际数据流数和中

17、心变换模块数确定数量的模块和中心变换模块数确定数量的模块28uhiukuM Mc cM MT TM MA AM ME Ec,ew,uc,ew,uM Mc cP PcR RM ME1E1M ME2E2M MA1A1M MA2A2Q Qeepc,prrw,uwu29uhiuku3 3、完成、完成“第二级分解第二级分解/分支分解分支分解”,分解,分解SCSC图的各图的各个分支。对初始个分支。对初始SCSC图的框架继续进行由顶向下的分图的框架继续进行由顶向下的分解,直至画出每个分支所需要的全部模块。解,直至画出每个分支所需要的全部模块。传入路径的处理传入路径的处理:由变换中心外移,把传入路径中由变换中

18、心外移,把传入路径中每个处理映射成软件结构中输入处理的低一层模块每个处理映射成软件结构中输入处理的低一层模块 传出路径的处理传出路径的处理:由变换中心外移,通路中各处理由变换中心外移,通路中各处理直接映射成输出处理的低一层模块直接映射成输出处理的低一层模块30uhiukuM MA Ac,eC CB BA AE ED DedcbaM MA Ac,eGetCGetCGetBGetBReadAReadAGetEGetEAtoBAtoBecbaBtoCBtoCabbcReadDReadDdDtoEDtoEde为了显式的表示在传入为了显式的表示在传入/传出路径上的数据变换,传出路径上的数据变换,在分支分

19、解中可考虑增加变换模块,功能为在分支分解中可考虑增加变换模块,功能为 Read/Get Read/Get 和和 Write/PutWrite/Put。传传入入路路径径处处理理31uhiukuM ME EW WU UV Vuvwu,wM ME EWriteWWriteWuvwu,wPutUPutUUtoVUtoVuWriteVWriteVv传传出出路路径径处处理理32uhiukuM MT TP PR RQ Qepc,p r rw,u变变换换中中心心的的处处理理33uhiukuMcMcM MA Ac,eGetCGetCGetBGetBReadAReadAGetEGetEAtoBAtoBecbaBt

20、oCBtoCabbcReadDReadDdDtoEDtoEdeM ME EWriteWWriteWuvwu,wPutUPutUUtoVUtoVuWriteVWriteVvM MT Tc,ew,u合合成成34uhiuku 虽然在任何情况下都可以使用变换分析方法虽然在任何情况下都可以使用变换分析方法设计软件结构,但是在数据流具有明显的事务特设计软件结构,但是在数据流具有明显的事务特点时,也就是有一个明显的点时,也就是有一个明显的“发射中心发射中心”(事务事务中心中心)时,还是以采用事务分析方法为宜。时,还是以采用事务分析方法为宜。事务:事务:引发、触发或启动某一动作或一串动引发、触发或启动某一动作

21、或一串动作的任何数据、控制、信号、事件或状态变化作的任何数据、控制、信号、事件或状态变化35uhiuku事务分析步骤:事务分析步骤:1 1、在、在DFDDFD图上确定事务中心、接受部分图上确定事务中心、接受部分(包包括接受路径括接受路径)和发送部分和发送部分(包含全部动作路径包含全部动作路径)事务中心事务中心通常位于通常位于DFDDFD图中多条动作路径的起点;图中多条动作路径的起点;向事务中心提供信息的路径,是系统的向事务中心提供信息的路径,是系统的接受路径接受路径;动作路径动作路径通常不止一条,切每条均具有自己的结通常不止一条,切每条均具有自己的结构特性构特性(变换或事务型变换或事务型)。3

22、6uhiuku37uhiuku2 2、画出、画出SCSC图框架,把图框架,把DFDDFD图的三个部分分别映射图的三个部分分别映射为事务控制模块、接受模块和动作发送模块为事务控制模块、接受模块和动作发送模块事务控制事务控制接收接收发送发送事务控制事务控制 事务事务 分析发送分析发送38uhiuku3 3、分解和细化接受和发送、分解和细化接受和发送分支,完成初始的分支,完成初始的SCSC图图接受分支接受分支一般具有变换特性,一般具有变换特性,可对其进行变换分析;可对其进行变换分析;动作分支动作分支典型的可映射为典型的可映射为4 4层:层:P-P-处理层、处理层、T-T-事务层、事务层、A-A-操作

23、层、操作层、D-D-细节层。细节层。A A、D D常可被常可被P P、T T共享。共享。PT1T2A2A1AjA3TiD2D1Dk39uhiuku 在大型系统的在大型系统的DFDDFD中,变换型和事务型两类中,变换型和事务型两类结构往往同时存在。对于一个大系统,常常把变结构往往同时存在。对于一个大系统,常常把变换分析和事务分析应用到同一个数据流图的不同换分析和事务分析应用到同一个数据流图的不同部分,由此得到的子结构形成部分,由此得到的子结构形成“构件构件”,可以利,可以利用它们构造完整的软件结构。用它们构造完整的软件结构。40uhiukuC1AC3BC2DLFGEKJabb1b2b3c1c2c

24、3defghjklm总体为变换型结构总体为变换型结构传入路径为事务型结构传入路径为事务型结构41uhiuku面面向向数数据据流流方方法法的的设设计计过过程程42uhiuku 软件工程师们在开发计算机软件的长期实践软件工程师们在开发计算机软件的长期实践中积累了丰富的经验,总结这些经验得出了一些中积累了丰富的经验,总结这些经验得出了一些启发规则。这些启发规则在许多场合能给软件工启发规则。这些启发规则在许多场合能给软件工程师有益的启示,往往能帮助他们找到改进软件程师有益的启示,往往能帮助他们找到改进软件设计提高软件质量的途径,因此有助于实现有效设计提高软件质量的途径,因此有助于实现有效的模块化。的模

25、块化。下面介绍几条常用的启发规则。下面介绍几条常用的启发规则。43uhiuku一、改进软件结构提高模块独立性一、改进软件结构提高模块独立性 通过模块分解或合并,力求降低耦合提高内聚。通过模块分解或合并,力求降低耦合提高内聚。二、模块规模应该适中二、模块规模应该适中 一页纸内一页纸内(60(60行行)。过大,可考虑继续分解模块功能;过小,可考虑合过大,可考虑继续分解模块功能;过小,可考虑合并到上层模块。并到上层模块。44uhiuku三、深度、宽度、扇出和扇入都应适当三、深度、宽度、扇出和扇入都应适当1 1、概念、概念深度:深度:软件结构中控制的层数,往往粗略的标志一个系软件结构中控制的层数,往往

26、粗略的标志一个系统的大小和复杂程度。越大,意味着模块功能可能过分统的大小和复杂程度。越大,意味着模块功能可能过分简单,软件的程序控制复杂。简单,软件的程序控制复杂。宽度:宽度:软件结构内同一个层次上的模块总数的最大值。软件结构内同一个层次上的模块总数的最大值。宽度越大系统越复杂。宽度越大系统越复杂。(主要受扇出影响主要受扇出影响)扇出:扇出:模块直接调用的下级模块数目,也称模块的控制模块直接调用的下级模块数目,也称模块的控制宽度。宽度。扇入:扇入:直接调用它的上级模块数。直接调用它的上级模块数。45uhiuku2 2、高扇出结构、高扇出结构扇出数应保持在:扇出数应保持在:77。太高:调用的控制

27、困难;太高:调用的控制困难;太低:应考虑向上合并功能。太低:应考虑向上合并功能。(1)(1)高扇出结构:高扇出结构:称为称为“煎饼煎饼”结构结构计算实发工资计算实发工资取得工取得工资数据资数据计时制计时制工资额工资额薪金制薪金制工资额工资额编外人编外人员工资员工资税收税收扣款扣款编外人编外人员税款员税款常规常规扣款扣款编外人编外人员扣款员扣款46uhiuku(2)(2)改进方法:增加中间层,形成塔形结构改进方法:增加中间层,形成塔形结构计算实发工资计算实发工资取得工取得工资数据资数据计时制计时制工资额工资额薪金制薪金制工资额工资额编外人编外人员工资员工资税收税收扣款扣款编外人编外人员税款员税款

28、常规常规扣款扣款编外人编外人员扣款员扣款计时工人计时工人实发工资实发工资计薪工人计薪工人实发工资实发工资编外人员编外人员实发工资实发工资47uhiuku3 3、高扇入结构、高扇入结构(1)(1)一个模块的扇入越高,则共享这一模块的上级模块数一个模块的扇入越高,则共享这一模块的上级模块数目越多,消除重复代码的效果就越明显。目越多,消除重复代码的效果就越明显。(2)(2)底层高扇入结构:可共享的底层功能多,形成底层高扇入结构:可共享的底层功能多,形成“瓮形瓮形”或或“清真寺清真寺”结构。结构。(3)(3)高扇入结构的画法:调用线太多,交叉,乱。考虑用高扇入结构的画法:调用线太多,交叉,乱。考虑用编

29、号代替功能方框,直接画在调用模块下。编号代替功能方框,直接画在调用模块下。48uhiuku四、模块的作用域应该在控制域之内四、模块的作用域应该在控制域之内1 1、两个范围的含义、两个范围的含义控制范围:控制范围:包括模块本身及其下属模块,不论这些模块包括模块本身及其下属模块,不论这些模块系由该模块直接调用,还是间接调用。系由该模块直接调用,还是间接调用。作用范围:作用范围:是一个与条件判定相联系的概念,指模块内是一个与条件判定相联系的概念,指模块内的某条件判定涉及的直接调用和间接调用模块。的某条件判定涉及的直接调用和间接调用模块。一般情况,一个判定作用范围内的模块可能会有一般情况,一个判定作用

30、范围内的模块可能会有3 3种情况:种情况:整个模块是否执行,依赖于判定的结果;整个模块是否执行,依赖于判定的结果;上述模块的下属模块;上述模块的下属模块;模块内有部分功能的执行依赖于这一判定。模块内有部分功能的执行依赖于这一判定。49uhiuku2 2、作用范围、作用范围/控制范围原则控制范围原则(1)(1)把一个判定的作用范围限制在判定所在模块的控制范围把一个判定的作用范围限制在判定所在模块的控制范围之内,是改进模块结构的基本原则之内,是改进模块结构的基本原则。(2)(2)理想情况,是使判定的作用范围和判定所在模块的控制理想情况,是使判定的作用范围和判定所在模块的控制范围尽可能的吻合。范围尽

31、可能的吻合。3 3、把系统中有较大影响的判定放在层次结构中较低的位置,、把系统中有较大影响的判定放在层次结构中较低的位置,可能是导致违反作用范围可能是导致违反作用范围/控制范围原则的主要原因。因此,控制范围原则的主要原因。因此,要么把这类重要的判定从低层次上移到足够高的上层模块要么把这类重要的判定从低层次上移到足够高的上层模块中,要么把受这些判定影响的模块调整并下移到控制范围中,要么把受这些判定影响的模块调整并下移到控制范围之内。之内。50uhiukuM MA AG GB BC CD DE EF F51uhiuku五、力争降低模块接口的复杂程度五、力争降低模块接口的复杂程度 模块接口复杂是软件

32、发生错误的一个主要原因。设模块接口复杂是软件发生错误的一个主要原因。设计接口时,应使得信息传递简单并且和模块的功能一致。计接口时,应使得信息传递简单并且和模块的功能一致。接口复杂或不一致接口复杂或不一致(即看起来传递的数据之间没有联即看起来传递的数据之间没有联系系),是紧耦合或低内聚的征兆,应该重新分析这个模块,是紧耦合或低内聚的征兆,应该重新分析这个模块的独立性。的独立性。如:一元二次方程求根的两种接口设计:如:一元二次方程求根的两种接口设计:quad_root(TBLquad_root(TBL,X)X),其中,其中TBLTBL和和X X均为数组均为数组quad_root(Aquad_roo

33、t(A,B B,C C,ROOT1ROOT1,ROOT2)ROOT2)52uhiuku六、设计单入口单出口的模块六、设计单入口单出口的模块 不要设计内容耦合模块。不要设计内容耦合模块。七、模块功能应该可以预测七、模块功能应该可以预测 模块的功能应该能够预测,但也要防止模块功能过模块的功能应该能够预测,但也要防止模块功能过分局限。分局限。53uhiuku书例书例P10054uhiukun目的与任务目的与任务n原则与方法原则与方法n常用表达工具常用表达工具n流程图与流程图与N-S图图n伪代码和伪代码和PDL语言语言55uhiukun目的目的n为软件结构图中的每一个模块确定采用为软件结构图中的每一个

34、模块确定采用的算法和块内数据结构,用某种选定的的算法和块内数据结构,用某种选定的表达工具给出更清晰地描述。表达工具给出更清晰地描述。n任务任务n编写软件的编写软件的“过程设计说明书过程设计说明书”n为每个模块确定采用的算法为每个模块确定采用的算法 n确定每一模块使用的数据结构确定每一模块使用的数据结构 n确定模块接口的细节确定模块接口的细节 n为每个模块设计出一组测试用例。为每个模块设计出一组测试用例。56uhiukun清晰第一的设计风格清晰第一的设计风格n结构化的控制结构结构化的控制结构n任何程序的逻辑均可用顺序、选择和循环任何程序的逻辑均可用顺序、选择和循环3种控制结构或它们的组合来实现;

35、种控制结构或它们的组合来实现;n每个控制结构只该有一个入口和一个出口。每个控制结构只该有一个入口和一个出口。n逐步细化的实现方法逐步细化的实现方法过程设计的结果基本上决定了最终的程序代码的质量过程设计的结果基本上决定了最终的程序代码的质量57uhiukun在大多数情况下,应该优先考虑程序的在大多数情况下,应该优先考虑程序的清晰度,把效率的考虑放在第二位。清晰度,把效率的考虑放在第二位。58uhiuku 在软件的生命周期中,设计测试方案,诊断程在软件的生命周期中,设计测试方案,诊断程序错误,修改和改进程序等都必须首先读懂程序。序错误,修改和改进程序等都必须首先读懂程序。实际上对于长期使用的软件系

36、统而言,人读程序的实际上对于长期使用的软件系统而言,人读程序的时间可能比写程序的时间还要长得多。因此,时间可能比写程序的时间还要长得多。因此,衡量衡量程序的质量不仅要看它的逻辑是否正确,性能是否程序的质量不仅要看它的逻辑是否正确,性能是否满足要求,更主要的是要看它是否容易阅读和理解。满足要求,更主要的是要看它是否容易阅读和理解。过程设计的目标不仅仅是逻辑上正确地实现每过程设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程应该个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂。尽可能简明易懂。是实现上述目是实现上述目标的关键技术,因此是过程设计的逻辑基础标的关键

37、技术,因此是过程设计的逻辑基础。59uhiukun任何程序的逻辑均可用顺序、选择和循环任何程序的逻辑均可用顺序、选择和循环3种种控制结构或它们的组合来实现;控制结构或它们的组合来实现;n每个控制结构只该有一个入口和一个出口。每个控制结构只该有一个入口和一个出口。n如果在详细设计中,所有的模块都只使用单入如果在详细设计中,所有的模块都只使用单入口、单出口的口、单出口的3种基本控制结构,则整个程序种基本控制结构,则整个程序将保持一条清晰的线索。将保持一条清晰的线索。结构化程序设计的经典定义结构化程序设计的经典定义 如果一个程序的代码块仅仅通过顺序、选择和循环这如果一个程序的代码块仅仅通过顺序、选择

38、和循环这三种控制结构进行连接,并且每个代码块只有一个入口和三种控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。一个出口,则称这个程序是结构化的。60uhiukun对经典结构程序设计的补充完善对经典结构程序设计的补充完善n增加两种控制结构增加两种控制结构nDO-UNTILnDO-CASEn允许多个出口使程序可以立即从循环中转移允许多个出口使程序可以立即从循环中转移出来;出来;nGOTO语句不应滥用,但也不必完全禁止语句不应滥用,但也不必完全禁止n最好仅在错误处理时才使用最好仅在错误处理时才使用GOTO语句语句n应该总是使用前向应该总是使用前向GOTO语句语句n应限

39、制在一个模块内跳转应限制在一个模块内跳转61uhiukun由粗到细的逐步描述程序由粗到细的逐步描述程序n需从需从算法算法(处理过程处理过程)和和数据结构数据结构两个方面同时逐步细化两个方面同时逐步细化n逐步细化的优点逐步细化的优点n每一步只优先处理当前最需要细化的部分,其余部分每一步只优先处理当前最需要细化的部分,其余部分推迟到适当的时机再考虑;推迟到适当的时机再考虑;n易于验证程序正确性,比形式化的程序正确性证明更易于验证程序正确性,比形式化的程序正确性证明更易为非专业人员接受,因而也更加实用易为非专业人员接受,因而也更加实用。n结论结论n模块的逻辑设计必须用结构程序设计的原理来指导。模块的

40、逻辑设计必须用结构程序设计的原理来指导。62uhiukun流程图与流程图与N-S图图n伪代码和伪代码和PDL语言语言63uhiukun流程图流程图n最古老的设计表达工具最古老的设计表达工具n具有能随意表达任何程序逻辑的优点具有能随意表达任何程序逻辑的优点部部分分图图例例64uhiuku缺点:缺点:本质上本质上不是逐步求精的好工具,过早考虑太多不是逐步求精的好工具,过早考虑太多细节,而忽视全局结构细节,而忽视全局结构 流程图中的流程图中的箭头代表控制流箭头代表控制流,使得程序员可以,使得程序员可以随意转移控制,不符合结构化程序设计思想。随意转移控制,不符合结构化程序设计思想。程序流程图程序流程图

41、难以表示数据结构难以表示数据结构65uhiukunN-S图图n是完全遵循结构化程序的流程图技术是完全遵循结构化程序的流程图技术n俗称俗称“方框图方框图”n只能描述结构化程序所允许的只能描述结构化程序所允许的标准结构标准结构66uhiuku(a)(a)顺序顺序 (b)IF-THEN-ELSE(b)IF-THEN-ELSE型分支型分支 (c)CASE(c)CASE型多分支型多分支(d)(d)循环循环 (e)(e)调用子程序调用子程序A A67uhiuku优缺点:优缺点:n一个特定控制结构的作用域明确,不能随意转移一个特定控制结构的作用域明确,不能随意转移n很容易确定局部和全局数据的作用域很容易确定

42、局部和全局数据的作用域n很容易表现嵌套关系,也可表示模块的层次结构很容易表现嵌套关系,也可表示模块的层次结构n但区域狭窄,难以适用于大的程序设计但区域狭窄,难以适用于大的程序设计68uhiukun伪代码伪代码n属于文字形式的表达工具属于文字形式的表达工具n工作量小,且较易转换为真正的代码工作量小,且较易转换为真正的代码nPDL语言语言(Program Design Language)n一种软件设计工具一种软件设计工具n具有很强的描述功能,是一种十分灵活和有具有很强的描述功能,是一种十分灵活和有用的过程设计表达工具用的过程设计表达工具69uhiukun以上四种工具都可用来描述模块的逻辑过程;以上

43、四种工具都可用来描述模块的逻辑过程;n一般用一般用PDL进行过程设计;进行过程设计;n设计完成后用流程图或设计完成后用流程图或N-S图表示所设计的程图表示所设计的程序,以便复审或进行交流。序,以便复审或进行交流。70uhiuku输入输入数据存储数据存储处理处理输出输出71uhiuku1 1、面向数据结构的设计方法的基本思想:、面向数据结构的设计方法的基本思想:算法算法+数据结数据结构构=程序程序,算法的结构常常依赖于要处理的数据结构算法的结构常常依赖于要处理的数据结构。只只要事先知道一个问题的数据结构,就可由此导出它的程要事先知道一个问题的数据结构,就可由此导出它的程序结构序结构。2 2、面向

44、数据流的设计方法、面向数据流的设计方法SDSD与面向数据结构的设计方法与面向数据结构的设计方法的比较的比较SDSD方法方法的目标是得出软件的的目标是得出软件的最终最终SCSC图图,注意力集中在模,注意力集中在模块的合理划分;块的合理划分;面向数据结构的设计面向数据结构的设计则要求在最终得出则要求在最终得出程序的过程性描程序的过程性描述述,并不明确地提出软件应该先分成模块等概念。,并不明确地提出软件应该先分成模块等概念。不同72uhiuku相同:相同:都遵循结构程序设计、由顶向下逐步细化都遵循结构程序设计、由顶向下逐步细化策略;都服从策略;都服从“程序结构服从问题结构程序结构服从问题结构”的基本

45、的基本原则;都拥有从问题结构原则;都拥有从问题结构(包括数据结构包括数据结构)导出程导出程序结构的一组映射规则。序结构的一组映射规则。两种方法的应用:两种方法的应用:一般用一般用SDSD方法确定软件结构,方法确定软件结构,在详细设计阶段用面向数据结构的方法确定部分在详细设计阶段用面向数据结构的方法确定部分或全部模块的逻辑过程或全部模块的逻辑过程。73uhiuku一、一、JacksonJackson图图 19751975年,年,M.A.JacksonM.A.Jackson提出了一类至今仍广泛使用的提出了一类至今仍广泛使用的软件开发方法。这一方法软件开发方法。这一方法从目标系统的输入、输出数据从目

46、标系统的输入、输出数据结构入手,导出程序框架结构,再补充其它细节,就可结构入手,导出程序框架结构,再补充其它细节,就可得到完整的程序结构图得到完整的程序结构图。这一方法。这一方法对输入、输出数据结对输入、输出数据结构明确的中小型系统特别有效构明确的中小型系统特别有效,如商业应用中的文件表,如商业应用中的文件表格处理。该方法也可与其它方法结合,格处理。该方法也可与其它方法结合,用于模块的详细用于模块的详细设计。在实际应用中,许多报表程序的设计可按照这种设计。在实际应用中,许多报表程序的设计可按照这种方法方法。该方法的该方法的特点特点:程序模块结构与数据结构相对应:程序模块结构与数据结构相对应74

47、uhiuku1 1JacksonJackson方法设计结果的表示方法设计结果的表示n结构图解结构图解:表示数据结构、程序结构的类型表示数据结构、程序结构的类型n图解逻辑图解逻辑:使用类似使用类似PDLPDL语言的工具补充结构图解语言的工具补充结构图解2 2JacksonJackson图的组成图的组成 由方框、连线和一些附加的标记组成。由方框、连线和一些附加的标记组成。0 0代表选代表选择,择,*代表重复,代表重复,连线连线表示表示“包含包含”或或“由由组组成成”(不一定是调用不一定是调用);连线上可标记;连线上可标记SnSn、InIn表示是第表示是第几个选择或循环。几个选择或循环。75uhiu

48、ku3 3三种基本程序结构的表示图例三种基本程序结构的表示图例(1)(1)顺序结构顺序结构顺序结构的数据由一个或多个数据元素组成,每个元素按确定次序出现一次顺序结构的数据由一个或多个数据元素组成,每个元素按确定次序出现一次A A由由B B、C C、D D三个元素顺序组成三个元素顺序组成(每个元素只出现一次,出现的次序依次是每个元素只出现一次,出现的次序依次是B B、C C和和D)D)76uhiuku3 3三种基本程序结构的表示图例三种基本程序结构的表示图例(2)(2)选择结构选择结构选择结构的数据包含两个或多个数据元素,每次使用这个数据时按一定条件从这些数选择结构的数据包含两个或多个数据元素,

49、每次使用这个数据时按一定条件从这些数据元素据元素中选择一个。中选择一个。根据条件,根据条件,A A是是B B或或C C或或D D中的某一个中的某一个(注意:在注意:在B B、C C和和D D的右上角有小圆圈做标记的右上角有小圆圈做标记)77uhiuku3 3三种基本程序结构的表示图例三种基本程序结构的表示图例(3)(3)重复结构重复结构重复结构的数据,根据使用时的条件由一个数据元素出现零次或多次构成。重复结构的数据,根据使用时的条件由一个数据元素出现零次或多次构成。A A由由B B出现出现N N次次(N0)(N0)组成组成(注意:在注意:在B B的右上角有星号标记的右上角有星号标记)78uhi

50、uku(a)(a)顺序结构顺序结构,B B、C C、D D中任一个都不能是中任一个都不能是选择出现或重复出现选择出现或重复出现的数据元素;的数据元素;(b)(b)选择结构选择结构,S S右面右面括号中的数字括号中的数字i i是分是分支条件的编号;支条件的编号;(c)(c)可选结构可选结构,A A或者或者是元素是元素B B或者不出现或者不出现(可选结构是选择结可选结构是选择结构的一种常见的特殊构的一种常见的特殊形式形式);(d)(d)重复结构重复结构,循环循环结束条件的编号为结束条件的编号为i。改进的改进的Jackson图图79uhiuku数据结构与问题结构相对应数据结构与问题结构相对应姓名姓名

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第五章-传统的设计方法2课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|