




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
按照协议,所有年工资超过$26000(含$26000)的教师工资将保持不变,年工资少于$26000的教师将增加工资,所增加的工资数按下述方法计算:给每个由此教师所赡养的人(包括教师本人)每年补助$100,此外,教师有一年工龄每年再多补助$50,但是,增加后的年工资总额不能多于$26000。教师的工资档案储存在行政办公室的磁带上,档案中有目前的年工资、赡养的人数、雇用日期等信息。需要写一个程序计算并印出每名教师的原有工资和调整后的新工资。要求:画出此系统的数据流图并映射出系统结构图.5-4xx某大学共有200名教师,校方与教师工会刚刚签订一项协议。11读取旧工资信息2调整3打印传入部分变换中心传出部分
工资档案F1
新工资档案F21读取调整工资子系统2.3校核增后工资2.2计算增加工资2.1分析旧工资2.4存储新工资<2600的工资增加金额新工资档案
F2F1书号单价数量工资档案
F1旧工资信息>2600的工资调整后工资3打印2第六章详细设计3(1)在总体设计阶段,数据项和数据结构以比较抽象的方式描述,而详细设计阶段则应在此基础上给出足够详细描述。(2)详细设计要提供关于算法的更多的细节,例如:总体设计可以声明一个模块的作用是对一个表进行排序,详细设计则要确定使用哪种排序算法。详细设计以总体设计阶段的工作为基础的,但不同于总体设计,主要表现为以下两个方面:4详细设计阶段的目的为软件结构图(SC)中的每一模块确定采用的算法和模块内数据结构,用某种选定的表达工具给出清晰的描述,从而在编码阶段可把这个描述直接翻译成用某种程序设计语言书写的程序。因此详细设计的结果基本上决定了最终的程序代码的质量。5(1)模块的逻辑描述正确可靠、清晰易读。(2)采用结构化程序设计方法,改善控制结构,降低程序复杂度,提高程序的可读性、可测试性和可维护性。详细设计的的原则66.1结构化程序设计结构化程序设计技术是一种设计程序的技术,它采用自顶向下、逐步求精的设计方法和单入口单出口的控制结构,并且只包含顺序、选择和循环三种控制结构。71、顺序型ABexpFTAB2、选择型3、当型循环型DO_WHILEexpFTA经典的结构程序设计84、直到型循环型DO_UNTILexpFTA5、多分支结构DO_CASE扩展的结构程序设计6、修正的结构程序设计----允许使用LEAVE/BREAK结构9
人机界面设计是接口设计的一个重要的组成部分。在个别系统中人机界面的设计工作量甚至占总设计量的一半以上。人机界面的设计质量,直接影响用户对软件产品的评价,从而影响软件产品的竞争力和寿命,因此,必须对人机界面设计给予足够重视。6.2人机界面设计106.2.1设计问题
在设计人机界面的过程中,会遇到下述4个问题:系统响应时间、用户帮助设施、出错信息处理和命令交互。最好在设计初期就把这些问题作为重要的设计问题来考虑,这时修改比较容易,代价也低。111.系统响应时间
指从用户完成某个控制动作(如,按回车键或点击鼠标),到软件给出预期的响应(输出信息或做动作)之间的这段时间。两个重要属性:长度和易变性。长度:系统响应时间不能过长。系统响应时间过短会迫使用户加快操作节奏,从而可能会犯错误。12易变性:指系统响应时间相对于平均响应时间的偏差,在许多情况下,这是系统响应时间的更重要的属性。易变性低也有助于用户建立起稳定的工作节奏。例如,稳定在1秒的响应时间比从0.1秒到2.5秒变化的响应时间要好。变化过大用户往往担心这暗示系统工作出现了异常。13哪种温度转换方式更好?142.用户帮助设施帮助设施使得用户无须离开用户界面就能解决自己的问题。可分为两类:集成的:一开始就设计在软件里面,用户可以从与刚刚完成的操作有关的主题中选择一个请求帮助。显然,这可以缩短用户获得帮助的时间,增加界面的友好性。附加的:在系统建成后再添加到软件中的,实际上是一种查询能力有限的联机用户手册。153.出错信息处理出错或警告信息应该具有下述属性:(1)用用户可以理解的术语描述问题。(2)提供有助于从错误中恢复的建设性意见。(3)指出错误可能导致哪些负面后果(例如,破坏数据文件)。(4)信息应伴随着听觉或视觉上的提示:如发出警告铃声、用闪烁方式或出错的颜色显示。(5)信息不能带有指责色彩,即不能责怪用户。当确实出现了问题时,有效的出错信息能提高交互式系统的质量,减轻用户的挫折感。164.命令交互现在用户既可以从菜单中选择软件功能,也可通过键盘命令序列调用软件功能。提供命令交互方式时,必须考虑下列设计问题:(1)是否每个菜单选项都有对应的命令(2)采用何种命令形式:控制序列(例如,Ctrl+P),功能键和键入命令。(3)学习和记忆命令的难度有多大,忘记了命令怎么办?(4)用户是否可以定制或缩写命令?17命令宏机制:用自己定义的名字代表一个常用的命令序列。用户只需输入命令宏的名字就可以顺序执行它所代表的全部命令。在理想的情况下,所有应用软件都有一致的命令使用方法。如在应用软件中Ctrl+D命令的含义是删除一个图形对象。186.2.2设计过程
用户界面设计是一个迭代的过程:创建设计模型----用原型实现----用户试用和评估----根据用户意见修改。软件工具:用户界面工具箱或用户界面开发系统,用于界面设计和原型开发,为简化窗口、菜单、设备交互、出错信息、命令及交互环境的许多其他元素的创建,提供了各种例程或对象。196.2.3人机界面设计指南设计指南:经验得出,有助于设计出友好、高效的人机界面。下面介绍3类设计指南:1.一般交互指南2.信息显示指南3.数据输入指南20此界面设计是否存在问题?212223鱼眼菜单246.3过程设计的工具 6.3.1程序流程图 6.3.2盒图 6.3.3PAD图 6.3.6过程设计语言 6.3.4判定表 6.3.5判定树25过程设计工具过程设计的任务:在使用程序设计语言编制程序以前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。描述程序处理过程的工具叫做过程设计的工具,它可以分为以下三类:
图形工具表格工具语言工具266.3.1程序流程图程序流程图中常用的符号历史最悠久、使用最广泛,独立于任何一种程序设计语言。优点:对控制流程的描绘较直观,便于掌握。271、循环符号的使用
循环名进入循环条件循环体
循环名
i=1,100S=S+i
i
S=0S=S+iS=0,i=1i>100i=i+1
F
T循环体28A:B
A=B
A<BA>BX=?x=1x=2x=3x=4X=?=1=2=3=4=52、多出口判断流程符号的使用29
请利用程序流程图描述下列问题的程序结构
某汽车修配厂,有一个存有汽车零件的仓库,其中存有若干种零件,请编写一个查询程序,用于查询该库中某零件的库存量为多少。
设该模块为查询模块。请设计该模块的程序结构。具体要求:
1、应具有重复查询功能;
2、应具有数据检测功能;
3、请利用程序流程图描述该模块的算法。练习30零件号100011000210003100041000510006库存量100012508866920203450
X!=S[0][i]i++
X
i=0开始输入零件库存S[][]数组输入零件号XX=S[0][i]输出S[0][i]和S[1][i]YF提示输入错误结束31程序流程图的随意性和灵活性使它存在一些缺点:(1)并不是逐步求精的好工具:诱使程序员过早地考虑程序的具体控制流程,而忽略了程序的全局结构;(2)用箭头代表控制流,这样使得程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制;(3)程序流程图在表示数据结构方面存在不足。326.3.2
盒图(N-S图)N-S图的基本符号33N-S图有以下一些特点:(1)功能域(即某一个特定控制结构的作用域)有明确的规定,并且可以很直观地从N-S图上看出来;(2)它的控制转移不能任意规定,必须遵守结构化程序设计的要求;(3)很容易确定局部数据和全局数据的作用域;(4)很容易表现嵌套关系,也可以表示模块的层次结构。34N-S图的嵌套定义形式35
请利用程序流程图描述下列问题的程序结构
某汽车修配厂,有一个存有汽车零件的仓库,其中存有若干种零件,请编写一个查询程序,用于查询该库中某零件的库存量为多少。
设该模块为查询模块。请设计该模块的程序结构。具体要求:
1、应具有重复查询功能;
2、应具有数据检测功能;
3、请利用N-S图描述该模块的算法。练习36零件号100011000210003100041000510006库存量100012508866920203450建立零件库(s数组),i=0
输入零件号xdowhile(x!=s[0][i])i++i++x==s[0][i])
Y
Ns[0][i]输出
s[1][i]
输入错误!
继续查询?
Y
N
跳出循环
37问题分析图(ProblemAnalysisDiagram)采用二维树形结构图表示程序的控制流。6.3.3
PAD图
A
B
(a)顺序结构
ABP
(b)选择结构
38PAD图的基本符号
WHILEP
S
UNTILP
S
(c)WHILE型循环结构
(d)
UNTIL型循环结构A1
A2
P=
An
…
P1
P2
Pn
(e)多分支结构
(f)语句标号(g)定义39s[17]~s[22]=0whilenum(1-1000)输入
age
age
=17
s[17]++
s[18]++
=18
s[19]++
=19
s[20]++
=20
s[21]++
=21
s[22]++
=22whilei(17-22)输出
s[i]beginend举例40PAD图的主要优点如下:(1)使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序。(2)PAD图所描绘的程序结构十分清晰,图中竖线的总条数就是程序的层次数。(3)用PAD图二维树形结构表现程序逻辑易读、易懂。程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点。41(4)容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成,有利于提高软件可靠性和软件生产率。(5)既可用于表示程序逻辑,也可用于描绘数据结构。(6)支持逐步求精方法的使用。开始时设计者可以定义一个抽象的程序,使用def符号逐步增加细节,直至完成详细设计。42图6.6使用PAD图提供的定义功能来逐步求精的例子43可以清晰地表示复杂的条件组合与应做的动作之间的对应关系。判定表不适于作为一种通用的设计工具,没有一种简单的方法使它能同时清晰地表示顺序和重复等处理特性。要求将程序流程图中的多分支判断都改成两分支判断6.3.4判定表
44建立判定表的步骤左上部:过程执行期间的所有条件(或所有判断)。左下部:与一个具体过程(或模块)有关的所有处理。右上部:各种可能的条件组合。右下部:每一种条件组合所对应的应做的工作。45假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李。当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。用判定表可以清楚地表示与上述每种条件组合相对应的计算行李费的算法,如表6.1所示。下面以行李托运费的算法为例:举例46用判定表表示计算行李费的算法所有条件所有可能做的动作表示做它左边那项动作表示左边那个条件成立表示条件成立与否不影响对动作的选择47是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。形式简单,易于掌握和使用。分支的次序可能对最终的判定树的简洁程度有较大的影响。6.3.5
判定树
48用判定树计算行李费的算法49某校制定了教师的讲课课时津贴标准。对于各种性质的讲座,无论教师是什么职称,每课时津贴费一律是50元;而对于一般的授课,则根据教师的职称来决定每课时津贴费:教授30元,副教授25元,讲师20元,助教15元。用判定表和判定树表示课时费的计算方法。练习50
12345教授
TFFF副教授
FTFF讲师
FFTF助教
FFFT讲座TFFFF50×
30
×
25
×
20
×
15
×51教师课时津贴判定树52PDL是一种用于描述功能模块的算法设计和加工细节的语言,使用自然语言的词汇,同时使用程序设计语言的语法,称为设计程序用语言。它是一种伪代码(Pseudocode)PDL-----关键词+自然语言伪代码----文字形式的表达工具,不能在计算机上执行,但形式上与代码相似。用它来描述程序的结构,工作量要比画图小,又比较容易转换真正的代码。6.3.6
过程设计语言53结构化语言的结构分为外层和内层:外层:
具有严格的关键字外语法,用于定义控制结构和数据结构。包括有简单陈述句、判定和重复结构等三种。内层:
采用自然语言短语表示实际操作和条件。使用数据词典中定义的名字和有限的自定义词,还可以使用一些简单的算术运算和逻辑运算符号。54下面是商店业务处理系统中"检查发货单"的例子
IF发货单金额超过$500THEN
IF欠款超过60天THEN
在偿还欠款前不予批准
ELSE(欠款未超期)
发批准书及发货单
ENDIF
ELSE(发货单金额未超过$500)
IF欠款超过60天THEN
发批准书,发货单及催款通知
ELSE(欠款未超期)
发批准书及发货单
ENDIF
ENDIF
55(1)、数据说明:格式:TYPE<变量名>AS<限定词1><限定词2>其功能是定义数据的类型和作用域说明:1.变量名:是一个模块内部使用的变量或模块间共用的全局变量名。2.限定词1:标明数据类型3.限定词2:标明该变量的作用域TYPEnumberASSTRINGLENGTH(12)56(2)、程序块:PDL的过程成分是由块结构构成的,而块将作为一个单个的实体来执行。BEGIN<块名><一组伪代码语句>END(3)、子程序结构:把PDL中的过程称为子程序。PROCEDURE<子程序名><一组属性>INTERFACE<参数表><程序块或一组伪代码语句>END57(4)、基本控制结构:IF<条件>THEN<程序块/伪代码语句组>;
ELSE<程序块/伪代码语句组>;
ENDIF---选择型结构
58DOWHILE<条件描述><程序块/伪代码语句组>;
ENDDOREPEATUNTIL<条件描述><程序块/伪代码语句组>;
ENDREP---重复型结构
59DOLOOP<条件描述><程序块/伪代码语句组>;
EXITWHENENDLOOPDOFOR<下标=下标表,表达式><程序块/伪代码语句组>;
ENDFOR---重复型结构
60-----多路选择结构
CASEOF<case变量名>;
WHEN<case条件1>SELECT<程序块/伪代码语句组>;
WHEN<case条件2>SELECT<程序块/伪代码语句组>;
……DEFAULT:<缺省或错误case:<程序块/伪代码语句组>;
ENDCASEREAD/WRITETO<设备><I/O表>---输入/输出结构
61
EnteravectorSetMaximumtothevalueofthefirstelementinthevector
DOfor
eachsecondonetothelast
IF
valueof
THEN
elementisgreaterthantheMaximumvalue
SetMaximumtovalueoftheelement
ENDDO
PrinttheMaximumvalueInputarrayAMax=A(1)DOforI=2toNIFMax<A(I)SetMax=A(I)ENDIFENDDOPrintMax62
设某模块的功能是:读入任意长的一段英文课文,将其分解为单字。然后输出一个单词表,并指出每个单词在课文中所出现的次数。请按下列给出的文字要求,用PDL描述其该模块的算法练习63executeprocessaREPEATUNTILconditionX8executeprocessbIFconditionX1THENBEGINexecuteprocessfIFconditionX6THENREPEATUNTILconditionX7executeprocessiENDREPELSEBEGINexecuteprocessgexecuteprocesshENDENDIFEND请将下列的PDL表示的某模块的过程性描述,改为用:1、N-S
图2、PAD
图表示练习64
ELSECASEOFXiWHENconditionX2SELECTDOWHILEconditionX5executeprocessCENDDOWHENconditionX3SELECTprocessdWHENconditionX4SELECTprocesseENDCASEENDIFENDREPexecuteprocessjEND65PDL语言具有下述优点:(1)PDL描述可以直接作为注释插在源程序中,有助于保持文档和程序的一致性。(2)用PDL写出的程序,可抽象可具体,易实现自顶向下逐步求精的设计原则。(3)同自然语言很接近易于理解。可使用普通的文字处理系统完成PDL的书写和编辑工作。(4)PDL描述与程序结构相似,可以利用自动处理程序自动由PDL生成程序代码。PDL的缺点是不如图形描述形象直观,因此人们常常将PDL描述与一种图形描述结合起来使用。666.4面向数据结构的设计方法 6.4.1Jackson图 6.4.2Jackson程序设计方法退出67Jackson程序设计方法数据结构既影响程序的结构又影响程序的处理过程。面向数据结构设计方法的最终目标是得出对程序处理过程的描述。适合于在详细设计阶段设计每个模块的处理过程。首先需要分析确定数据结构,并用适当的工具清晰地描绘数据结构。686.4.1Jackson图Jackson图表示方法顺序结构:数据由一个和多个数据元素组成,每个元素按确定次序出现一次。选择结构:数据包含两个和多个数据元素,每次使用这个数据时按一定条件从这些数据元素中选择一个。重复结构:重复结构的数据,根据使用时的条件,由一个数据元素出现零次或多次构成。69Jackson图的优点:(1)不仅便于表示层次结构,而且也有利于对结构自顶向下分解;(2)形象直观,可读性好;(3)不仅能表示数据结构,也能表示程序结构。Jackson图的缺点:在选择结构和重复结构中,选择条件或循环结束条件不能直接在Jackson图中表示出来。影响了图形的表达能力,也不利于直接把图翻译成程序。70改进的Jackson图标识循环条件和分支条件框间连线改为直线i是分支条件的编号i是循环结束条件的编号6.4.2改进的Jackson图71层次图中的方框通常代表一个模块;而Jackson图即使在描绘程序结构时,一个方框也并不代表一个模块,通常只代表几个语句。
层次图表现的是调用关系,通常一个模块除了调用下级模块外,还完成其他操作;而Jackson图表现的是组成关系,也就是说,一个方框中包括的操作仅仅由它下层框中的那些操作组成。Jackson图实质上是对第3.7节中介绍的层次方框图的一种精化。与层次图的区别:726.4.3Jackson方法Jackson结构程序设计方法基本上由下述5个步骤组成:1)分析并并用Jackson图描绘输入数据和输出数据的逻辑结构。2)找出输入和输出数据结构中有对应关系的数据单元。所谓有对应关系是指有直接的因果关系,在程序中可以同时处理的数据单元(对于重复出现的数据单元必须重复的次序和次数都相同)。733)根据下述规则,由Jackson图导出相应的程序结构图:(1)为每对有对应关系的数据单元,按照它们在数据结构图中所处的层次,在程序结构图中的相应层次画一个处理框。如果所处的层次不同,那么应以较低层次作为它们在程序结构图中的处理框所处的层次;(2)对于输入和输出数据结构中没有对应关系的数据单元,根据它们所处的层次,分别在程序结构图的相应层次画上相应的处理框;74注:在导出程序结构图的过程中,由于改进的Jackson图规定在构成顺序结构的元素中不能有重复出现或选择出现的元素,因此可能需要增加中间层次的处理框。(4)列出所有操作和条件(包括分支条件和循环结束条件),并把它们分配到程序结构图的适当位置。(5)用伪码表示程序。Jackson方法中使用的伪码和Jackson图是完全对应的,下面是和3种基本结构对应的伪码。75(1)顺序结构AseqBCDAend(2)选择结构(3)重复结构Aselectcondition1BAorcondition2CAorcondition3DAendAiteruntil(或while)conditionBAend76一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。要求的输出数据格式是,每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。举例77图6.12表示输入输出数据结构的Jackson图78第二步是分析确定在输入数据结构和输出数据结构中有对应关系的数据单元:最高层次的两个单元总是有对应关系的。将和程序结构图中最顶层的方框(代表程序)相对应,也就是说经过程序的处理由正文文件得到输出表格。因为每处理输入数据中一个“字符串”之后,就可以得到输出数据中一个“串信息”,它们都是重复出现的数据单元,而且出现次序和重复次数都完全相同,因此,“字符串”和“串信息”也是一对有对应关系的单元。79
依次考察输入数据结构中余下的数据单元:“字符”不可能和多个字符组成的“字符串”对应。
“空格”和“空格数”:单个空格并不能决定一个记录中包含的空格个数,因此没有对应关系。类似的考察发现,余下的单元都找不到对应关系。在图6.12中用一对虚线箭头把有对应关系的数据单元连接起来,以突出表明这种对应关系。80第三步是从数据结构图导出程序结构图。首先,在Jackson图的最顶层画一个处理框“统计空格”,它与“正文文件”和“输出表格”这对最顶层的数据单元相对应。第二层:因为在输出数据结构中“串信息”的上层还有“表格体”和“空格总数”两个数据单元,在程序结构图的第二层应该有与这两个单元对应的处理框——“程序体”和“印总数”。81第三层:与“字符串”和“串信息”相对应的处理框——“处理字符串”。第四层:处理框“印字符串”、“分析字符”及“印空格数”,这3个处理是顺序执行的。但是,“字符”是重复出现的数据单元,因此“分析字符”也应该是重复执行的处理。改进的Jackson图规定顺序执行的处理中不允许混有重复执行或选择执行的处理,所以在“分析字符”这个处理框上面又增加了一个处理框“分析字符串”。82图6.13描绘统计空格程序结构的Jackson图83第四步是列出所有操作和条件,并且把它们分配到程序结构图的适当位置。列出统计空格个数需要的全部操作和条件。把这些操作和条件分配到程序结构图的适当位置,结果为图6.14。最后一步是用伪码表示程序处理过程。因为Jackson使用的伪码和Jackson图之间存在简单的对应关系,所以从图6.14很容易得出下面的伪码:84图6.14把操作和条件分配到程序结构图的适当位置85统计空格seq
打开文件 读入字符串
totalsum∶=0
程序体iteruntil文件结束 处理字符串seq
印字符串seq
印出字符串 印字符串end sum∶=0 pointer∶=1
分析字符串iteruntil字符串结束 分析字符select字符是空格86
处理空格seq sum∶=sum+1 pointer∶=pointer+1
处理空格end
分析字符or字符不是空格 处理非空格seq pointer∶=pointer+1
处理非空格end
分析字符end
分析字符串end
印空格数seq
印出空格数目 印空格数end87 totalsum∶=totalsum+sum
读入字符串 处理字符串end
程序体end
印总数seq
印出空格总数 印总数end
关闭文件 停止统计空格end88考生基本情况文件中的考生记录的内容包括:准考证号、姓名、通讯地址。考分文件中的考生记录的内容包括:准考证号和各门考分。要求高考后将两文件合并成一个新文件(简称考生新文件),内容包括:准考证号、姓名、通讯地址和各门考分。Jackson程序设计方法由五个步骤组成:练习89第一步数据结构表示对问题进行分析,确定输入数据和输出数据的逻辑结构,并用Jackson图描述这些数据结构。90第二步找出输入和输出数据结构的对应关系有直接因果关系、在程序中可以同时处理的数据单元称为有对应关系。注:重复的数据单元必须是重复的次序、次数都相同才可能有对应关系。91实际上,这一步是一个综合的过程:每对有对应关系的数据单元合画一个处理框,没有对应关系的数据单元则各画一个处理框。第三步确定程序结构图92第四步列出并分配所有操作和条件列出所有操作和条件(包括分支条件和循环结束条件),并把它们分配到程序结构图的适当位置。操作:(1)停止(2)打开两个输入文件;(3)建立输出文件。(4)从输入文件中各读一条记录(5)生成一条新记录。(6)将新记录写入输出文件。(7)关闭全部文件。条件:I(1)文件结束。93把操作和条件分配到程序结构图的适当位置94用Jackson伪码描述的程序:产生新文件seq打开两个输入文件从输入文件中各读一条记录分析考生记录iteruntil文件结束处理考生记录seq产生准考证号产生姓名产生通讯地址产生考分生成一条新记录将新记录写入输出文件从输入文件中各读一条记录处理考生记录end关闭全部文件停止产生新文件end第五步用伪码表示程序95
程序复杂性主要是指模块内部程序的复杂性。它直接关系到软件开发费用的多少,开发周期的长短和软件和软件内部潜伏错误的多少。同时它也是软件可理解性的另一种度量。6.5程序复杂程度的定量度量96程序的复杂程度乘以适当常数即可估算出软件中故障的数量以及软件开发需要的工作量。可以比较两个不同的设计和算法的优劣。定量的复杂程度可作为模块规模的精确限度。程序复杂程度定量度量意义:97
原理:程序的复杂性很大程度上取决于程序控制流的复杂程度。单一的顺序结构最简单,循环和选择构成的环路越多,程序就越复杂。6.5.1、McCabe度量法
该方法是利用程序模块的程序图中环路的个数,来计算程序的复杂性的。为此,该方法也称为环路复杂度计算法。981.流图(程序图)一种退化了的程序流程图。把程序流程图中一个顺序的处理框序列和一个判定框可映射成流图中的一个结点,而原来流程图中的流程线,则变成连接不同结点的有向弧。99(1)程序图符号100TC1C2CABED(2)从流程图导出程序图A开始C1BCED结束C2T101ABCDEFGHKLJ由点和边围成的面积称为区域。102图6.16由PDL翻译成的流图用任何方法表示的过程设计结果,都可以翻译成流图:103图6.17由包含复合条件的PDL映射成的流图
把复合条件分解为若干个简单条件,每个简单条件对应流图中一个判定结点。从每个判定结点引出两条或多条边。当过程设计中包含复合条件,即在条件中包含了一个或多个布尔运算符(逻辑OR,AND,NAND,NOR)时:104
环形复杂度定量度量程序的逻辑复杂度。可用下述3种方法来计算环形复杂度:(1)流图中的区域数等于环形复杂度。(2)流图G的环形复杂度V(G)=E-N+2,其中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【部编版】四年级语文下册《习作例文》精美课件
- 2025年律师事务所律师聘用劳动合同范本
- 2025健身教练股权激励合同范本
- 2025教育培训机构师资培训劳动合同模板
- 2025临街店面租赁合同协议书范本
- 2025年技术成果转化服务合作协议书
- 2025YY县公立中学食堂餐饮服务外包合同
- 2025版企业合作龙腾合同
- 弧形衣柜施工方案
- 泥工壁龛施工方案
- (二模)2025年深圳市高三年级第二次调研考试历史试卷(含标准答案)
- 广西《疼痛综合评估规范》(材料)
- 2025年山东省淄博市张店区中考一模历史试题(含答案)
- 美容师考试与法律法规相关知识及试题答案
- 推动研究生教育高质量发展方案
- 2025-2030中国药用活性炭行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2031年中国竹鼠养殖及深加工行业投资研究分析及发展前景预测报告
- 超星尔雅学习通《国际经济学(中国人民大学)》2025章节测试附答案
- 第13课 辽宋夏金元时期的对外交流 教案2024-2025学年七年级历史下册新课标
- 陕西省2024年高中学业水平合格考化学试卷试题(含答案解析)
- 输液泵/微量注射泵使用技术操作考核评分标准
评论
0/150
提交评论