




已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
6.3过程设计的工具,6.3.1程序流程图,6.3.2盒图,6.3.3PAD图,6.3.6过程设计语言,6.3.4判定表,6.3.5判定树,过程设计工具,过程设计的任务:在使用程序设计语言编制程序以前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。在过程设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。表达过程规格说明的工具叫做详细设计工具,它可以分为以下三类:图形工具表格工具语言工具,6.3.1程序流程图,程序流程图中常用的符号,也称为程序框图,是历史最悠久、使用最广泛,独立于任何一种程序设计语言。优点:对控制流程的描绘较直观,便于掌握。,1、循环符号的使用,循环体,2、多出口判断流程符号的使用,请利用程序流程图描述下列问题的程序结构,某汽车修配厂,有一个存有汽车零件的仓库,其中存有若干种零件,请编写一个查询程序,用于查询该库中某零件的库存量为多少。,X!=S0i,i+,X,i=0,开始,输入零件库存S数组,输入零件号X,X=S0i,输出S0i和S1i,Y,F,提示输入错误,结束,程序流程图的随意性和灵活性使它存在一些缺点:,(1)并不是逐步求精的好工具:诱使程序员过早地考虑程序的具体控制流程,而忽略了程序的全局结构;,(2)用箭头代表控制流,这样使得程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制;,(3)程序流程图在表示数据结构方面存在不足。,6.3.2盒图(N-S图),不允许违背结构程序设计精神的图形工具。它有下述特点:(1)功能域(即,一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。(2)不可能任意转移控制。(3)很容易确定局部和全程数据的作用域。(4)很容易表现嵌套关系,也可以表示模块的层次结构。,N-S图的基本符号,N-S图的嵌套定义形式,请利用N-S描述下列问题的程序结构,某汽车修配厂,有一个存有汽车零件的仓库,其中存有若干种零件,请编写一个查询程序,用于查询该库中某零件的库存量为多少。,问题分析图(ProblemAnalysisDiagram)采用二维树形结构图表示程序的控制流。,6.3.3PAD图,(a)顺序结构,(b)选择结构,PAD图的基本符号,(c)WHILE型循环结构,(d)UNTIL型循环结构,(e),多分支结构,(f)语句标号,(g)定义,PAD图的主要优点如下:,(1)使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序。(2)PAD图所描绘的程序结构十分清晰,图中竖线的总条数就是程序的层次数。(3)用PAD图二维树形结构表现程序逻辑易读、易懂。程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点。,(4)容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成,有利于提高软件可靠性和软件生产率。(5)既可用于表示程序逻辑,也可用于描绘数据结构。(6)支持逐步求精方法的使用。开始时设计者可以定义一个抽象的程序,使用def符号逐步增加细节,直至完成详细设计。,图6.6使用PAD图提供的定义功能来逐步求精的例子,建立判定表的步骤左上部:过程执行期间的所有条件(或所有判断)。左下部:与一个具体过程(或模块)有关的所有处理。右上部:各种可能的条件组合。右下部:每一种条件组合所对应的应做的工作。,6.3.4判定表,假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李。当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。用判定表可以清楚地表示与上述每种条件组合相对应的计算行李费的算法,如表6.1所示。,下面以行李托运费的算法为例:,用判定表表示计算行李费的算法,所有条件,所有可能做的动作,表示做它左边那项动作,表示左边那个条件成立,表示条件成立与否不影响对动作的选择,当算法中包含多重嵌套的条件选择时,用判定表可以清晰地表示复杂的条件组合与应做的动作之间的对应关系。在判定表中的条件部分给出所有的两分支判断的列表,动作部分给出相应的处理判定表用于表示程序的静态逻辑,判定表不适于作为一种通用的设计工具,没有一种简单的方法使它能同时清晰地表示顺序和重复等处理特性。要求将程序流程图中的多分支判断都改成两分支判断,是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。形式简单,易于掌握和使用。分支的次序可能对最终的判定树的简洁程度有较大的影响。,6.3.5判定树,用判定树计算行李费的算法,某校制定了教师的讲课课时津贴标准。对于各种性质的讲座,无论教师是什么职称,每课时津贴费一律是50元;而对于一般的授课,则根据教师的职称来决定每课时津贴费:教授30元,副教授25元,讲师20元,助教15元。用判定表和判定树表示课时费的计算方法。,教师课时津贴判定树,PDL是一种用于描述功能模块的算法设计和加工细节的语言,使用自然语言的词汇,同时使用程序设计语言的语法,称为设计程序用语言。它是一种伪代码(Pseudocode),PDL,-关键词+自然语言,伪代码-文字形式的表达工具,不能在计算机上执行,但形式上与代码相似。用它来描述程序的结构,工作量要比画图小,又比较容易转换真正的代码。,6.3.6过程设计语言,结构化语言的结构分为外层和内层:,外层:具有严格的关键字外语法,用于定义控制结构和数据结构。包括有简单陈述句、判定和重复结构等三种。内层:采用自然语言短语表示实际操作和条件。使用数据词典中定义的名字和有限的自定义词,还可以使用一些简单的算术运算和逻辑运算符号。,下面是商店业务处理系统中检查发货单的例子,IF发货单金额超过$500THENIF欠款超过60天THEN在偿还欠款前不予批准ELSE(欠款未超期)发批准书及发货单ENDIFELSE(发货单金额未超过$500)IF欠款超过60天THEN发批准书,发货单及催款通知ELSE(欠款未超期)发批准书及发货单ENDIFENDIF,(1)、数据说明:,格式:TYPEAS,其功能是定义数据的类型和作用域,说明:1.变量名:是一个模块内部使用的变量或模块间共用的全局变量名。,2.限定词1:标明数据类型,3.限定词2:标明该变量的作用域,TYPEnumberASSTRINGLENGTH(12),(2)、程序块:,PDL的过程成分是由块结构构成的,而块将作为一个单个的实体来执行。,BEGINEND,(3)、子程序结构:,把PDL中的过程称为子程序。,PROCEDUREINTERFACEEND,(4)、基本控制结构:,IFTHEN;ELSE;ENDIF,-选择型结构,DOWHILE;ENDDO,REPEATUNTIL;ENDREP,-重复型结构,DOLOOP;EXITWHENENDLOOP,DOFOR;ENDFOR,-重复型结构,-多路选择结构,CASEOF;WHENSELECT;WHENSELECT;DEFAULT:;ENDCASE,READ/WRITETO,-输入/输出结构,PDL语言具有下述优点:(1)PDL描述可以直接作为注释插在源程序中,有助于保持文档和程序的一致性。(2)用PDL写出的程序,可抽象可具体,易实现自顶向下逐步求精的设计原则。(3)同自然语言很接近易于理解。可使用普通的文字处理系统完成PDL的书写和编辑工作。(4)PDL描述与程序结构相似,可以利用自动处理程序自动由PDL生成程序代码。PDL的缺点是不如图形描述形象直观,因此人们常常将PDL描述与一种图形描述结合起来使用。,6.4面向数据结构的设计方法,6.4.1Jackson图,6.4.2Jackson程序设计方法,退出,程序复杂性主要是指模块内部程序的复杂性。它直接关系到软件开发费用的多少,开发周期的长短和软件内部潜伏错误的多少。同时它也是软件可理解性的另一种度量。,6.5程序复杂程度的定量度量,程序的复杂程度乘以适当常数即可估算出软件中故障的数量以及软件开发需要的工作量。可以比较两个不同的设计和算法的优劣。定量的复杂程度可作为模块规模的精确限度。,程序复杂程度定量度量意义:,原理:程序的复杂性很大程度上取决于程序控制流的复杂程度。单一的顺序结构最简单,循环和选择构成的环路越多,程序就越复杂。,6.5.1、McCabe度量法,该方法是利用程序模块的程序图中环路的个数,来计算程序的复杂性的。为此,该方法也称为环路复杂度计算法。,1.流图(程序图),一种退化了的程序流程图。用圆表示结点,一个圆代表一条或多条语句。程序流程图中的一个顺序的处理框序列和一个菱形判定框,可以映射成流图中的一个结点。流图中的箭头线称为边,它和程序流程图中的箭头线类似,代表控制流。在流图中一条边必须终止于一个结点,即使这个结点并不代表任何语句(实际上相当于一个空语句)。由边和结点围成的面积称为区域,当计算区域数时应该包括图外部未被围起来的那个区域。,(1)程序图符号,(2)从流程图导出程序图,由点和边围成的面积称为区域。,图6.16由PDL翻译成的流图,用任何方法表示的过程设计结果,都可以翻译成流图:,图6.17由包含复合条件的PDL映射成的流图,把复合条件分解为若干个简单条件,每个简单条件对应流图中一个判定结点。从每个判定结点引出两条或多条边。,当过程设计中包含复合条件,即在条件中包含了一个或多个布尔运算符(逻辑OR,AND,NAND,NOR)时:,环形复杂度定量度量程序的逻辑复杂度。可用下述3种方法来计算环形复杂度:(1)流图中的区域数等于环形复杂度。(2)流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。(3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。,2.计算环形复杂度的方法,V(G)=E-N+2=12-11+2=3V(G)=P+1=3,当程序内分支数或循环个数增加时,环形复杂度也随之增加,因此它是对测试难度的一种定量度量,也能对软件最终的可靠性给出某种预测。环路复杂度是可加的。例如,模块A的复杂度为3,模块B的复杂度为4,则模块A与模块B的复杂度是7。,3.环形复杂度的用途,McCabe研究大量程序后发现,环形复杂度高的程序往往是最困难、最容易出问题的程序。McCabe用实例证实了在McCabe复杂度为10的附近,存在出错率的间断跃变。他建议,对于复杂度超过10的程序,应分成几个小程序,以减少程序中的错误。,用3种方法计算下图所示流图的环形复杂度,原理:根据程序中运算符和操作数的总数来度量程序的复杂程度。令N1为运算符出现的总次数,N2为操作数出现的总次数,程序长度N定义为:N=N1+N2Halstead给出预测程序长度的公式如下:H=n1log2n1+n2log2n2。n1为不同运算符(包括关键字)的个数,n2为不同操作数(变量和常数)的个数。多次验证都表明,预测的长度H与实际长度N非常接近。,6.5.2Halstead方法,例如,用重复执行加法来计算两个正整数X和Y的乘积的例子Z=0;WhileX0Z=Z+Y;X=X-1;End_while;Print(Z);,H=n1log2n1+n2log2n28log285log25=35.6N=N1+N2=26,Z=0;WhileX0Z=Z+Y;X=X-1;End_while;Print(Z);,Halstead还给出了预测程序中包含错误的个数的公式如下:E=Nlog2(n1+n2)/3000有人曾对从300条到12000条语句范围内的程序核实了上述公式,发现预测的错误数与实际错误数相比误差在8%之内。,6.6小结,详细设计阶段的关键任务是确定怎样具体地实现用户需要的软件系统,也就是要设计出程序的“蓝图”。结构程序设计技术是实现上述目标的基本保证,是进行详细设计的逻辑基础。人机界面设计是接口设计的一个重要的组成部分,必须充分重视系统响应时间、用户帮助设施、出错信息处理和命令交互等4个设计问题。,过程设计应该在数据设计、体系结构设计和接口设计完成之后进行,它的任务是设计解题的详细步骤(即算法),过程设计的工具可分为图形、表格和语言3类。面向数据结构的设计方法:在许多应用领域中信息都有清楚的层次结构,在开发这类应用系统时可以采用Jackson结构程序设计技术完成过程设计。使用环形复杂度可以定量度量程序的复杂程度,实践表明,环形复杂度V(G)=10是模块规模的合理上限。,P151:4下图给出的程序流程图代表一个非结构化的程序,请问:(1)为什么说它是非结构化的?(2)设计一个等价的结构化程序。(3)在(2)题的设计中你使用附加的标志变量flag吗?若没用,请再设计一个使用flag的程序;若用了,再设计一个不用flag的程序,作业及解答(第6章),(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年产科胎儿窘迫抢救处理模拟试卷答案及解析
- 民族常识课件
- 2025年心理医学常见疾病诊断治疗模拟试卷答案及解析
- 2025年产科手术操作规范考试答案及解析
- 2025年护理专业基础护理知识运用模拟考试答案及解析
- 2025年肾脏透析疗程护理考核答案及解析
- 民族团结石榴籽课件
- 2025年老年医学常见老年病诊疗挑战答案及解析
- 中央关于新质生产力解读
- 组织部学期方案
- T/CACEM 22.6-2022校车运营服务管理第6部分:评价与改进
- 购物中心行业研究报告2024-2025商业洞察
- AI智能体的感知与理解
- 新闻记者职业资格高频真题含答案2025年
- 教科版(2024)科学一年级上册教学计划(全册)
- 《工程制图》课件
- 炉渣综合利用项目可行性研究报告立项申请报告范文
- 临床医学研究中的数据管理与分析
- 广东工业设计城规划方案(9.2终版)图文
- 廉政协议合同协议
- 成品油行业知识培训课件
评论
0/150
提交评论