【文档说明】软件工程第六章详细设计课件.ppt,共(90)页,1.888 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-50483.html
以下为本文档部分文字说明:
第六章详细设计(过程设计、模块设计)6.1详细设计概述6.2过程设计工具6.3面向数据结构的设计方法6.4程序复杂度的定量度量6.5详细设计说明书Evaluationonly.CreatedwithAspose.Sl
idesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第1页,共90页。6.1详细设计概述6.1.1详细设计阶段的目标与任务6.1.2结构化程序设计Evaluationonly.Crea
tedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第2页,共90页。详细设计阶段的目标:确定应该怎样具体地实
现所要求的系统。精确地描述整个目标系统,从而在编码阶段可以把这个描述翻译成用某种程序设计语言书写的程序。详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码.结构程序设计技术是实现上述目标的关键技术,是详细设计的逻辑基础.6.1.1详细
设计阶段的目标与任务Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011Aspose
PtyLtd.第3页,共90页。详细设计的主要任务主要任务:编写详细设计说明书为此,设计人员应:(1)确定每个模块的算法,用工具表达算法的过程,写出模块的详细过程性描述。(2)确定每一模块的数据结构。(3)确定模块接口细节。详细设计是编码的先导。Evaluatio
nonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第4页,共90页。•结构化程序设计•逐步求精•三种基本结构6.1.2结构化程序设计
Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第5页,共90页。结构程序设计的概念最早是由E.W.Dijstr
a提出.Bohm和Jacobini证明了只要顺序、选择、循环这三种基本结构就能实现任何单入口单出口的程序。结构程序设计结构程序设计的经典的定义是:“如果一个程序的代码仅仅通过顺序,选择,和循环这三种基本控制结构进行连接,并且每个代码块只有一个入口和一
个出口,则称这个程序是结构化的”Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第6页,共90页。逐步求精的含
义•详细设计阶段逐步求精的含义:把一个模块的功能逐步分解细化为一系列具体的处理步骤或某种高级语言的语句。•总体设计阶段逐步求精的含义:把一个复杂问题的解法分解和细化成一个由许多模块组成的层次结构的软件系统Evaluationonly.Cr
eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第7页,共90页。逐步求精的要领•不要急于用计算机指令、数字和逻辑符号去表示对问题的解法,而是
用自然语言(或其他工具)描述问题的解法,最开始的描述处于比较高的抽象层次,接着对抽象描述逐步分解,直到描述能被计算机理解为止。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientPro
file5.2.0.0Copyright2004-2011AsposePtyLtd.第8页,共90页。例子-逐步求精•读入三个数,找出并打印其中的最大数二级求精②将X1与X2的大数存于MAX中Ifx1>x2thenmax=x1elsemax=x2③将X3与MAX的大数存于MAX中Ifx
3>maxthenmax=x3一级算法输入X1,X2,X3将X1与X2的大数存于MAX中将X3与MAX的大数存于MAX中输出结果Evaluationonly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0Copyr
ight2004-2011AsposePtyLtd.第9页,共90页。BexpAABexpAAexpTFTTFF顺序结构选择结构循环结构1)“当”型循环2)直到型循环三种基本的控制结构Evaluationonly.C
reatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第10页,共90页。结构程序设计技术的优越性•(
1)自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律,因此可以显著提高软件开发工程的成功率和生产率。•(2)用先全局后局部、先整体后细节、先抽象后具体的逐步求精过程开发出的程序有清晰的层次结构,因此容易阅
读和理解。•(3)不使用GOTO语句仅使用单入口单出口的控制结构,使得程序的静态结构和它的动态执行情况比较一致,易于阅读和理解。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.
0.0.Copyright2004-2011AsposePtyLtd.第11页,共90页。•(4)控制结构有确定的逻辑模式,编写程序代码只限于很少几种直截了当的方式,因此源程序清晰流畅。•(5)程序清
晰和模块化使得在修改和重新设计一个软件时可以重用的代码量最大。•(6)程序的逻辑结构清晰,有利于程序正确性证明。Evaluationonly.CreatedwithAspose.Slidesfor.N
ET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第12页,共90页。6.2过程设计的工具过程设计工具包括图形,表格,语言三类.不论是哪一类工具,都应该指明控制流,处理功能,数据组织以及其它方面的实现细节,从而在
编码阶段能把对设计的描述直接翻译成程序代码.描述程序处理过程的工具称为过程设计工具Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright20
04-2011AsposePtyLtd.第13页,共90页。1.程序流程图2.盒图(N-S图)3.问题分析图(PAD)5.过程设计语言(PDL)(伪码)4.判定树与判定表Evaluationonly.CreatedwithAs
pose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第14页,共90页。程序流程图的标准符号Evaluationonly.CreatedwithAspose.Slidesfor
.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第15页,共90页。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProf
ile5.2.0.0Copyright2004-2011AsposePtyLtd.第16页,共90页。示例Evaluationonly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0Co
pyright2004-2011AsposePtyLtd.第17页,共90页。盒图(N-S图)用方框图代替传统的流程图描述五种基本控制结构的图形构件(1)顺序型ABCEvaluationonly.eatedwithAspose.Slidesfor.
NET3.5ClientProfile5.2.0Copyright2004-2011AsposePtyLtd.第18页,共90页。(2)选择型(If–then–else)ABF条件TAFT条件then–部分then–部分else–部分If–the
n–elseIf–thenEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第19页,共90页。(3)多分支选择型(CASE型)A1
值1A2An........条件值2值nEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第20页,共90页。(4)WHILE重复
型(5)UNTIL重复型S(循环体)DO-WHILEPS(循环体)REPEATUNTILP(先测试循环)(后测试循环)循环条件Evaluationonly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0
Copyright2004-2011AsposePtyLtd.第21页,共90页。(6)移出标记ACBFX6TA:D(调用结构)Evaluationonly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0C
opyright2004-2011AsposePtyLtd.第22页,共90页。1)功能域(即一个特定控制结构的作用域)明确2)不可能任意转移控制3)很容易确定局部和全程数据的作用域4)很容易表现嵌套关系
,也可以表示模块的层次结构N-S图的特点Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第23页,共90页。N-S图
示例ab条件1TFCaseXi,i=2,3,4X2X3X4当条件3成立条件2直到条件4成立直到条件成立cdefghij顺序结构选择结构多分支选择结构先判定型循环结构后判定型循环结构FTTFEvaluationonly.CreatedwithAspose.Slid
esfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第24页,共90页。例1:TrueFalseGNPFQstartifpthenwhileqdofenddoelsebloc
kgnendblockendifstopEvaluationonly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0Copyright2004-2011AsposePt
yLtd.第25页,共90页。例2:以下是两个程序流程图,试用N—S图表示。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Cop
yright2004-2011AsposePtyLtd.第26页,共90页。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第2
7页,共90页。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLt
d.第28页,共90页。问题分析图(PAD)(ProblemAnalysisDiagram)ABCABTF条件基本控制结构:(1)顺序结构(2)选择结构Evaluationonly.CreatedwithAspose.Sl
idesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第29页,共90页。(3)重复结构WHILECSUNTILCS(先测试循环)(后测试循环)等价的PASCAL语言:REPEATCUNTIL
S等价的PASCAL语言:WHILECDOSEvaluationonly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0Copyright2004-2011
AsposePtyLtd.第30页,共90页。(4)多分支选择型(CASE型)A1值1值2值nA2An......条件Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5Cl
ientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第31页,共90页。走图startstopPWHILEQFGNPAD图的结构类似树型结构,如果按照自上而下、自左而右的顺序走树,即可将PAD图转换为相应的算法乃至程序。Evalua
tiononly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第32页,共90页。例1:startstopPWHILEQFGNstartifpthenwhil
eqdofenddoelseblockgnendblockendifstopEvaluationonly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0Copyright2004-2011AsposePtyLtd.第33页,共90页。例2:以下
是两个程序流程图,试用PAD图表示。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第34
页,共90页。Evaluationonly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0Copyright2004-2011AsposePtyLtd.第35页,共90页。Evaluationonly.CreatedwithAspos
e.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第36页,共90页。•使用PAD符号设计的程序必然是结构化的程序.•PAD图所描绘的程序结构十分清晰.•用P
AD图表现程序逻辑,易读,易记,易懂.•容易将PAD图转换成高级语言源程序.可用软件工具实现自动转换.•即可以表示程序逻辑,也可以描绘数据结构.•支持自顶向下,逐步求精方法的使用.PAD图的优点:Evaluationo
nly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0Copyright2004-2011AsposePtyLtd.第37页,共90页。判定表程序
流程图、N-S图、PAD图都不易清楚的描述含有多重嵌套的条件选择。判定表可以清晰的表示复杂的条件组合与其对应的处理之间的关系。一张判定表由4部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种
条件组合的一个矩阵,右下部是和每种条件组合相对应的动作.判定表右半部实质上是一条规则,规定了与特定条件组合相对应的动作.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Co
pyright2004-2011AsposePtyLtd.第38页,共90页。所有条件条件组合矩阵与每种条件组合所对应的动作表所有可能的动作列表国内乘客头等舱残疾乘客行李≤30kg免费(W-30)*2(W-30)*3(W-30)*4(W-30)*6(W-30)*
8(W-30)*12TTTFTTTTTTTTTTFFFFFFFFFFFFFFFFFFF×××××××××例1假设某航空公司规定,乘客可以免费托运重量不超过30公斤的行李。当行李重量超过30公斤时,对头等舱的国内乘客超重部分每公斤收费4元,对其它舱的国内乘客
超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。用判定表来表示与上述每种条件组合相对应的动作。Evaluationonly.CreatedwithA
spose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第39页,共90页。用判定表表示计算行李费算法Evaluationonly.CreatedwithAspo
se.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第40页,共90页。12345教授TFFF副教授FTFF讲师FFTF助教FFFT讲座TFFFF50×30×25×20×15×例2:
某校制定了教师的讲课课时津贴标准。对于各种性质的讲座,无论教师是什么职称,每课时津贴费一律是50元;而对于一般的授课,则根据教师的职称来决定每课时津贴费:教授30元,副教授25元,讲师20元,助教15元。Evaluationonly.eatedwithAspose.Slide
sfor.NET3.5ClientProfile5.2.0Copyright2004-2011AsposePtyLtd.第41页,共90页。行李费算法行李重量W>30国内乘客外国乘客头等舱其它舱残疾乘客----(W-30)*2正常乘客----(W-30)*4残疾乘客----(W-30)*3正常乘
客----(W-30)*6头等舱其它舱残疾乘客----(W-30)*4正常乘客----(W-30)*8残疾乘客----(W-30)*6正常乘客----(W-30)*12行李重量W≤30免费判定树是判定表的变体,其优点是形式简单,不需要任何说明,一眼就可以看
出它的含义.判定树Evaluationonly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0Copyright2004-2011AsposePtyLtd.第42页,共90页。例1、某厂对部分职工重新分配工作的
政策是:年龄在20岁以下者,初中文化程度脱产学习。高中文化程度当电工;年龄在20—40岁之间者,中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员。年龄在40岁以上者,中学文化程度当材料员,大学文化程度当技术员。请用判定表或判定树描述上述问题的加工逻辑。Eva
luationonly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0Copyright2004-2011AsposePtyLtd.第43页,共90页。分析:本题条件包括年龄、文化程度、性别三个,构成的判定条件取值表如表3—3所
示所有的组合条件为3X3x2=18Evaluationonly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0Copyright2004-2011Aspo
sePtyLtd.第44页,共90页。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第45页,共90页。Evaluationo
nly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第46页,共90页。检查定货单过期不过期金额>1000发订货单、批准单1000<金额<2000金额>2000发通知单
、定货单、批准单不发2、用判定表描述“检查定货单”的处理逻辑:“如果金额超过1000元而又未过期,则发出批准单和提货单。如果金额超过2000元,但已过期,则不发出批准单和提货单。如果金额低于2000元,则不论是否过期,都发出批准单和提货单,而且对低于2000元已过期的还需发出通知单”。Evalu
ationonly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0Copyright2004-2011AsposePtyLtd.第47页,共90页。Jackson图表示方法Jackson图ACBD(a)顺序结构ACoBoD
o(b)选择结构AB*(c)重复结构6.3面向数据结构的设计方法Evaluationonly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0Copyright2004-2011Aspo
sePtyLtd.第48页,共90页。Jackson图的优点:(1)Jackson图不仅便于表示层次结构,而且也有利于对结构自顶向下分解;(2)Jackson图形象直观,可读性好;(3)Jackson图不仅能表示数据结构,
也能表示程序结构(因为程序结构也可以由上述3种基本结构组成)。Jackson图的缺点:在选择结构和重复结构中,选择条件或循环结束条件不能直接在Jackson图中表示出来。这样就影响了图形的表达能力,也不利于直接把图翻
译成程序。Jackson图的优点,缺点Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第49页,共90页。改进的Jackson图(a
)顺序结构ACBD(c)选择结构ACoBoDoS(i)(b)可选结构ABo_oS(i)AB*(d)重复结构I(i)Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011As
posePtyLtd.第50页,共90页。Jackson程序设计方法例:高考后将考生的基本情况文件(简称考生基本情况文件)和考生高考成绩文件(简称考分文件)合并成一个新文件(简称考生新文件)。考生基本情况文件和考分文件都是由考生记录组成的。为简便起见,考生基本情况文件中
的考生记录的内容包括:准考证号、姓名、通讯地址。考分文件中的考生记录的内容包括:准考证号和各门考分。合并后的考生新文件自然也是由考生记录组成,内容包括:准考证号、姓名、通讯地址和各门考分。Evalua
tiononly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第51页,共90页。第
一步利用Jackson图描述数据结构对要求解的问题进行分析,确定输入数据和输出数据的逻辑结构,并用Jackson图描述这些数据结构。考生新文件考生记录*准考证号姓名通讯地址考分考生情况文件考生记录*准考证号姓名通讯地址考分文件考生记录*准考证号考分II(a)
输入数据结构(b)输出数据结构IJackson程序设计方法由五个步骤组成:Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第52页,共9
0页。第二步找出输入数据结构和输出数据结构的对应关系找出输入数据结构和输出数据结构中有对应关系的数据单元,即有直接因果关系、在程序中可以同时处理的数据单元。需要注意的是,对于重复的数据单元,必须是重复的次序、次数都相同才有可能有对应关
系。考生情况文件考生记录*考生记录*考生新文件考分文件考生记录*IIIEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第53页,共9
0页。第三步确定程序结构图根据下述三规则,由Jackson图导出相应的程序结构图:(1)为每对有对应关系的数据单元,按照它们在数据结构图中所处的层次,在程序结构图中的相应层次画一个处理框。如果这对数据单元在输入数据结构图和输出数据结构图中所处的层次不同,那
么应以它们在输入数据结构图和输出数据结构图中层次较低的那个层次作为它们在程序结构图中的处理框所处的层次;(2)对于输入数据结构中剩余的数据单元,根据它们所处的层次,在程序结构图的相应层次为每个数据单元画上相应
的处理框;(3)对于输出数据结构中剩余的数据单元,根据它们所处的层次,在程序结构图的相应层次为每个数据单元画上相应的处理框。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004
-2011AsposePtyLtd.第54页,共90页。实际上,这一步是一个综合的过程:每对有对应关系的数据单元合画一个处理框,没有对应关系的数据单元则各画一个处理框。产生新文件处理考生记录*产生准考证号产生姓名产生通讯地址产生考分IEvaluationonly
.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第55页,共90页。第四步列出并分
配所有操作和条件列出所有操作和条件(包括分支条件和循环结束条件),并把它们分配到程序结构图的适当位置。操作:(1)停止;(2)打开两个输入文件;(3)建立输出文件。(4)从输入文件中各读一条记录。(5)生成一条新记
录。(6)将新记录写入输出文件。(7)关闭全部文件。条件:I(1)文件结束。Evaluationonly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0Copyrig
ht2004-2011AsposePtyLtd.第56页,共90页。把操作和条件分配到程序结构图的适当位置产生新文件处理考生记录*分析考生记录产生准考证号产生姓名产生通讯地址产生考分I(1)32471654Evaluationonly.CreatedwithAspo
se.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第57页,共90页。第五步用伪码表示程序Jackson方法中使用的伪码与Jacks
on图是完全对应的。针对三种基本程序结构,有相对应的Jackson伪码。(1)顺序结构AseqBCDAendEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright
2004-2011AsposePtyLtd.第58页,共90页。(2)选择结构(3)重复结构Aselectcondition1BAorcondition2CAorcondition3DAendAiteruntil(或while)c
onditionBAendEvaluationonly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0Copyright2004-2011AsposeP
tyLtd.第59页,共90页。Jackson伪码描述的程序产生通讯地址产生姓名产生准考证号处理考生记录seq分析考生记录iteruntil文件结束从输入文件中各读一条记录打开两个输入文件产生新文件seq产生考分生成一条新记录将新记录写入输出文件从输入文件中各读一
条记录处理考生记录end关闭全部文件停止产生新文件end分析考生记录endEvaluationonly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0Copyright2004-2011
AsposePtyLtd.第60页,共90页。6.4程序复杂度的定量度量利用软件设计的基本原理和概念可以定性的衡量软件模块的质量。但定量的度量程序复杂程度的方法很有价值:•估算程序中软件故障的数量;•估算软件开发的工作量;•比较两个
不同的设计或两个不同算法的优劣;•作为模块规模的精确上限。程序定量度量方法是一个有待进一步研究的重要领域。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011As
posePtyLtd.第61页,共90页。1)McCabe方法程序图–把程序流程图中每个处理符号都退化成一个点,原来连接不同处理符号的箭头变成连接不同点的有向弧,这样得到的有向图就称为流图.程序图仅仅描述程
序内部的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。入口点:程序图中开始点后面的那个节点。出口点:程序图中停止点前面的那个节点。用McCabe方法度量得出的结果称为程序的环形复杂度。程序的环形复杂度=强连通图中线性无关的有向环的个数。Evaluati
ononly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第62页,共90页。2)环形复杂度的计算方法•在一个强连通的有向图中,线性无关环的个数由以下公
式确定:V(G)=m–n+2其中:V(G)----有向图G中的环数。m----有向图G中的弧数。n----有向图G中的节点数。•流图中的区域数等于环形复杂度。•流图的环形复杂度V(G)=P+1p表示流图中的判定结点的个数Evalu
ationonly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0Copyright2004-2011AsposePtyLtd.第63页,共90页。K=0L=0T
OTAL=0输入ADowhileTOTAL≤1000andA≠0A>0TOTAL=TOTAL+AK=K+1输入AL=L+1停止bcdefghik输出K,L,TOTALjbcdefghjikV(G)=11-10+2=311条弧10个节点Evaluati
ononly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第64页,共90页。3)环形复杂度的用途:程序的环形复
杂度与程序控制流的复杂程度,也就是与程序结构的复杂程度有关。程序内分支数或循环个数增加时,环形复杂度就增加,因此它是对测试难度的一种度量,也能对软件最终的可靠性给出某种预测。McCabe发现:环形复杂度高的程序往往是最困难、最容易出问题的程序。实践表明:模块规模以V(G)≤10为宜。也就
是说,V(G)=10是模块规模的一个更科学更精确的上限。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第65页
,共90页。Halstesd方法它根据程序中运算符和操作数的总数来度量程序的复杂程度.21222121nloglognnnnnnH+=+=H表示预测的程序长度,为程序中运算符出现的次数,为程序中操作数出现的次数,为程序长度.实践证明,预测的长度与
实际的长度非常接近.1n2n21nnn+=nnHEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011Asp
osePtyLtd.第66页,共90页。6.5详细设计说明书•引言•程序系统的组织结构•关键程序的设计说明Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Co
pyright2004-2011AsposePtyLtd.第67页,共90页。详细设计说明书规格Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Co
pyright2004-2011AsposePtyLtd.第68页,共90页。例1Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copy
right2004-2011AsposePtyLtd.第69页,共90页。例2Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第70页,共90
页。例3Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第71页,共90页。填空题1.
详细设计阶段主要完成的任务是——。2.软件的详细设计可以采用——、——、—————三种形式的描述工具表示模块的处理过程。设计出模块的执行过程。图、表、过程设计语言3.Jackson方法可以实现从——中推
导出程序结构数据结构Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第72页,共90页。4.程序流程图称——,包括三个基本的成分:
——,——,——。5.为了实现使用程序流程图描述结构化程序,必须限制程序流程图只使用以下五种基本控制结构——、——、——、——、——。6.PAD图是一种描述程序逻辑结构的图形工具,这种图形由程序流程图演
化而来,它把程序的结构表示成——结构。程序框图加工处理步骤逻辑条件控制流向顺序型选择型先判定(while)型循环后判定(until)型循环多情况(case)型选择二维树型Evaluationonly.CreatedwithAspose.Sl
idesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第73页,共90页。7.过程设计语言属于一种——,是一种描述——的语言。8.Jackson方法简称JSD,是一种典型的——的设计方法。
面向数据结构伪码模块算法设计及处理细节Evaluationonly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0Copyright2004-2011AsposePtyLtd.第74页,共
90页。1.软件详细设计阶段的任务是()。A.算法设计B.功能设计C.调用关系设计D.输入/输出设计选择题2.软件详细设计阶段主要采用的工具是()A.DFDB.PADC.DDD.SAABEvaluationon
ly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0Copyright2004-2011AsposePtyLtd.第75页,共90页。3.软件详细设计阶段采用自左向右的二维图
形结构描述算法的是().A.IPOB.JSPC.PADD.JSDC4.软件详细设计阶段的任务是()。A.确定程序文件名B.确定模块的算法C.确定变量名D.确定使用的语言BEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfi
le5.2.0.0Copyright2004-2011AsposePtyLtd.第76页,共90页。5.结构化程序设计采用的思想是()。A.筛选法B.逐步求精法C.迭代法D.递归法B6.软件详细设计阶段属于软件生存周期的()阶段。A.需求分析B.软件设计C编码D.软件维护BEvalu
ationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第77页,共90页。7.以语言形
式描述模块算法的是()。A.PADB.程序流程图C.PDLD.盒图C8、为了使程序能在不同的计算机上运行,程序应当具有较好的()A.可移植性B.可重用性C.可维护性D.可适用性AEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5Clien
tProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第78页,共90页。9、下列属于功能性注释的是()。A.说明模块的用处和功能的注释B.说明数据的名称和用处的注释C.说明程序段的注释
D.说明程序开发背景的注释CEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011As
posePtyLtd.第79页,共90页。10.下面对提高程序编码效率没有影响的是()。A.选择良好的设计方法B.选择良好的算法C.选择良好的数据结构D.变量名的使用DEvaluationonly.CreatedwithAsp
ose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第80页,共90页。11.软件详细设计的主要任务是确定每个模块的()A.功能B.外部接口C.算法和使用的数据结构D.编程实现12.下面关于PD
L语言不正确的说法是()A.PDL的外层语法必须符合一般程序设计语言常用的语法规则B.PDL是一种伪码C.PDL只是描述加工的具体实现D.PDL是描述处理过程怎么做13.PAD图在()可以大大提高开发效率A.系统分析B.自动分析数据C.软件的自动化生成D.测试软件CCCEvaluat
iononly.eatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0Copyright2004-2011AsposePtyLtd.第81页,共90页。14.下列工具在软件详细设计过程中不常用的是()A.PDLB.N—S图C.DFD图D.
PAD图15.Jackson方法是软件设计中用到的一种常用的设计方法,使用Jackson方法可以实现()。A.从模块结构中导出数据结构B.从模块结构中导出程序结构C.从数据流图中导出初始的结构图D.从结构图导出程序结构CDEvaluationonly.Createdwit
hAspose.Slidesfor.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第82页,共90页。应用题begins1;ifx>5thens2elses3;whiley<Odobegini
fz>3thens4elses5;ifw>0s6;s7;ends8;ifu>0thens9;s10;end1.将下面的伪码表示转换为PAD图Evaluationonly.eatedwithAspose.Slidesfo
r.NET3.5ClientProfile5.2.0Copyright2004-2011AsposePtyLtd.第83页,共90页。1.答案Evaluationonly.eatedwithAspos
e.Slidesfor.NET3.5ClientProfile5.2.0Copyright2004-2011AsposePtyLtd.第84页,共90页。3.将下图所示的PAD图转换为伪码表示。Evaluationonly.CreatedwithAspose.Sli
desfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第85页,共90页。whileAdoifx>0thenx1elsex2;i
fy>0thenbeginy1;ifz>0thenz1elsez2;endelsey2;y3;end;3.答案Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5Cli
entProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第86页,共90页。4.以下是两个程序流程图,试分别用N—S图和PAD表示,并计算它们的McCabe复杂性度量。Evaluationonly.Cre
atedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第87页,共90页。4.答案对应的N—S图如下:Evaluationonly.CreatedwithAspose.Slidesfor
.NET3.5ClientProfile5.2.0.0Copyright2004-2011AsposePtyLtd.第88页,共90页。对应的PAD图如下:McCabe复杂性度量都为3。V(G)=m–n+2Evaluationon
ly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第89页,共90页。作业1.简要叙述N—S图具有的特点2.简要叙述PAD图具有的特点3.
Jackson方法的核心思想是什么?4.将下列的伪代码用PAD表示出来N=0;DOwhileN<20IfS(N)<=S(N+1)thenMin=S(N)elseMin=S(N+1)endifN=N+1;ENDDOEval
uationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第90页,共90页。