资源预览内容
第1页 / 共90页
第2页 / 共90页
第3页 / 共90页
第4页 / 共90页
第5页 / 共90页
第6页 / 共90页
第7页 / 共90页
第8页 / 共90页
第9页 / 共90页
第10页 / 共90页
亲,该文档总共90页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第六章第六章 详细设计详细设计( (过程设计过程设计、模块设计模块设计) )6.1 详细设计概述详细设计概述6.2 过程设计工具过程设计工具6.3 面向数据结构的设计方法面向数据结构的设计方法6.4 程序复杂度的定量度量程序复杂度的定量度量6.5 详细设计说明书详细设计说明书Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.6.1 详细设计概述详细设计概述6.1.1 详细设计阶段的目标与任务详细设计阶段的目标与任务6.1.2 结构化程序设计结构化程序设计Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.详细设计阶段的目标:详细设计阶段的目标: 确定应该怎样具体地实现所要求的系统。精确确定应该怎样具体地实现所要求的系统。精确地描述整个目标系统,从而在编码阶段可以把这地描述整个目标系统,从而在编码阶段可以把这个描述翻译成用某种程序设计语言书写的程序。个描述翻译成用某种程序设计语言书写的程序。 详细设计阶段的任务还不是具体地编写程序详细设计阶段的任务还不是具体地编写程序,而而是要设计出程序的是要设计出程序的“蓝图蓝图”,以后程序员将根据这个以后程序员将根据这个蓝图写出实际的程序代码蓝图写出实际的程序代码.结构程序设计技术是实结构程序设计技术是实现上述目标的关键技术现上述目标的关键技术,是详细设计的逻辑基础是详细设计的逻辑基础.6.1.1 详细设计阶段的目标与任务详细设计阶段的目标与任务Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd. 详细设计详细设计的主要任务的主要任务主要任务主要任务: :编写详细设计说明书编写详细设计说明书为此,设计人员应:为此,设计人员应: (1) (1)确定每个模块的算法,用工具表达算法的过确定每个模块的算法,用工具表达算法的过 程,写出模块的详细过程性描述。程,写出模块的详细过程性描述。 (2) (2)确定每一模块的数据结构。确定每一模块的数据结构。 (3) (3)确定模块接口细节。确定模块接口细节。详细设计是编码的先导。详细设计是编码的先导。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.结构化程序设计结构化程序设计逐步求精逐步求精三种基本结构三种基本结构6.1.2 结构化程序设计结构化程序设计Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd. 结构程序设计的概念最早是由结构程序设计的概念最早是由E. W. Dijstra提出提出. Bohm 和和 Jacobini 证明了只要顺序、选择、循环这证明了只要顺序、选择、循环这三种基本结构就能实现任何单入口单出口的程序。三种基本结构就能实现任何单入口单出口的程序。结构程序设计结构程序设计 结构程序设计的经典的定义是结构程序设计的经典的定义是:“如果一个程序的代如果一个程序的代码仅仅通过顺序码仅仅通过顺序,选择选择,和循环这三种基本控制结构进行和循环这三种基本控制结构进行连接连接,并且每个代码块只有一个入口和一个出口并且每个代码块只有一个入口和一个出口,则称这则称这个程序是结构化的个程序是结构化的”Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.逐步求精的含义逐步求精的含义n详细设计阶段逐步求精的含义:把一个模块的功详细设计阶段逐步求精的含义:把一个模块的功能逐步分解细化为一系列具体的处理步骤或某种能逐步分解细化为一系列具体的处理步骤或某种高级语言的语句。高级语言的语句。n总体设计阶段逐步求精的含义:把一个复杂问题总体设计阶段逐步求精的含义:把一个复杂问题的解法分解和细化成一个由许多模块组成的层次的解法分解和细化成一个由许多模块组成的层次结构的软件系统结构的软件系统Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.逐步求精的要领逐步求精的要领n不要急于用计算机指令、数字和逻辑符号去表示不要急于用计算机指令、数字和逻辑符号去表示对问题的解法,而是用自然语言(或其他工具)对问题的解法,而是用自然语言(或其他工具)描述问题的解法,最开始的描述处于比较高的抽描述问题的解法,最开始的描述处于比较高的抽象层次,接着对抽象描述逐步分解,直到描述能象层次,接着对抽象描述逐步分解,直到描述能被计算机理解为止。被计算机理解为止。 Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.例子逐步求精例子逐步求精n读入三个数,找出并打印其中的最大数读入三个数,找出并打印其中的最大数 二级求精二级求精将将X1X1与与X2X2的大数存于的大数存于MAXMAX中中If x1x2 then max=x1 elseIf x1x2 then max=x1 else max=x2 max=x2将将X3X3与与MAXMAX的大数存于的大数存于MAXMAX中中If x3max then max=x3If x3max then max=x3一级算法一级算法 输入输入X1,X2,X3X1,X2,X3 将将X1X1与与X2X2的大数存于的大数存于MAXMAX中中 将将X3X3与与MAXMAX的大数存于的大数存于MAXMAX中中 输出结果输出结果Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.BexpAABexpAAexpTFTTFF顺序结构顺序结构选择结构选择结构循环结构循环结构1)“当当”型循环型循环2)直到型循环)直到型循环三种基本的控制结构三种基本的控制结构Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.结构程序设计技术的优越性结构程序设计技术的优越性n(1)自顶向下逐步求精的方法符合人类解决复自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律,因此可以显著提高软件杂问题的普遍规律,因此可以显著提高软件开发工程的成功率和生产率。开发工程的成功率和生产率。n(2)用先全局后局部、先整体后细节、先抽象用先全局后局部、先整体后细节、先抽象后具体的逐步求精过程开发出的程序有清晰后具体的逐步求精过程开发出的程序有清晰的层次结构,因此容易阅读和理解。的层次结构,因此容易阅读和理解。n(3)不使用不使用GO TO语句仅使用单入口单出口的语句仅使用单入口单出口的控制结构,使得程序的静态结构和它的动态控制结构,使得程序的静态结构和它的动态执行情况比较一致,易于阅读和理解。执行情况比较一致,易于阅读和理解。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.n(4)控制结构有确定的逻辑模式,编写程序控制结构有确定的逻辑模式,编写程序代码只限于很少几种直截了当的方式,因代码只限于很少几种直截了当的方式,因此源程序清晰流畅。此源程序清晰流畅。n(5)程序清晰和模块化使得在修改和重新设程序清晰和模块化使得在修改和重新设计一个软件时可以重用的代码量最大。计一个软件时可以重用的代码量最大。n(6)程序的逻辑结构清晰,有利于程序正确程序的逻辑结构清晰,有利于程序正确性证明。性证明。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.6.2 6.2 过程设计的工具过程设计的工具 过程设计工具包括过程设计工具包括图形图形, ,表格表格, , 语言语言三类三类. . 不论是哪一类工具不论是哪一类工具, ,都应该指明控制流都应该指明控制流, ,处理功能处理功能, ,数据组织以及其它方面的实现细节数据组织以及其它方面的实现细节, ,从而在编码阶段能从而在编码阶段能把对设计的描述直接翻译成程序代码把对设计的描述直接翻译成程序代码. . 描述程序处理过程的工具称为过程设计工具描述程序处理过程的工具称为过程设计工具Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.1. 1. 程序流程图程序流程图2. 2. 盒图盒图(N-S(N-S图图) )3. 3. 问题分析图问题分析图(PAD)(PAD)5. 5. 过程设计语言过程设计语言(PDL)(PDL)(伪码伪码) )4. 4. 判定树与判定表判定树与判定表Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.程序流程图的标准符号程序流程图的标准符号Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.示例Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.盒图盒图(N-S(N-S图图) )用方框图代替传统的流程图用方框图代替传统的流程图描述五种基本控制结构的图形构件描述五种基本控制结构的图形构件(1) (1) 顺序型顺序型ABCEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.(2) 选择型(If then else)ABF条件条件TAFT条件条件then部分部分then部分部分else部分部分If then elseIf thenEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.(3)(3)多分支选择型多分支选择型( (CASE型型) )A1值值1 1A2An.条件条件值值2 2值值n nEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.(4) WHILE(4) WHILE重复型重复型 (5) UNTIL (5) UNTIL重复型重复型S(循环体)(循环体)DO-WHILEPS(循环体)(循环体)REPEATUNTILP( (先测试循环先测试循环) )( (后测试循环后测试循环) )循环条件循环条件Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.(6) 移出标记ACBFX6TA:D( (调用结构调用结构) )Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.1)功能域)功能域(即一个特定控制结构的作用即一个特定控制结构的作用 域)明确域)明确2)不可能任意转移控制)不可能任意转移控制3)很容易确定局部和全程数据的作用域)很容易确定局部和全程数据的作用域4)很容易表现嵌套关系,也可以表示模块)很容易表现嵌套关系,也可以表示模块 的层次结构的层次结构N-S图的特点图的特点Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.N-S图示例图示例ab条条 件件 1TF Case Xi, i=2,3,4X2X3X4当条件当条件3成立成立条条 件件 2直到条件直到条件4成立成立直直 到到 条条 件件 成立成立cdefghij顺顺序序结结构构选选择择结结构构多多分分支支选选择择结结构构先先判判定定型型循循环环结结构构后后判判定定型型循循环环结结构构FTTFEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.例例1:start if p then while q do f end do else block g n end block endifstopEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.例例2:以下是两个程序流程图,试用以下是两个程序流程图,试用NS图表示。图表示。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.问题分析图(PAD) (Problem Analysis Diagram)ABCABTF条条件件基本控制结构基本控制结构:(1)顺序结构顺序结构(2)选择结构选择结构 Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.(3)(3)重复结构重复结构WHILE CSUNTIL CS( (先测试循环先测试循环) )( (后测试循环后测试循环) )等价的等价的PASCALPASCAL语言:语言:REPEAT C UNTIL S等价的等价的PASCALPASCAL语言:语言:WHILE C DO SEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.(4) 多分支选择型(CASE型)A1A1值值1 1值值2 2值值n n A2A2AnAn. . . . . . .条件条件Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.走图走图PAD图的结构类似树型结构,如果按照自上图的结构类似树型结构,如果按照自上而下、自左而右的顺序走树,即可将而下、自左而右的顺序走树,即可将PAD图图转换为相应的算法乃至程序。转换为相应的算法乃至程序。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.例例1:startif p then while q do f end doelse block g n end blockendifstopEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.例例2:以下是两个程序流程图,试用以下是两个程序流程图,试用PAD图表示。图表示。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.使用使用PAD符号设计的程序必然是结构化的程符号设计的程序必然是结构化的程序序.PAD图所描绘的程序结构十分清晰图所描绘的程序结构十分清晰.用用PAD图表现程序逻辑图表现程序逻辑,易读,易记,易懂易读,易记,易懂.容易将容易将PAD图图 转换成高级语言源程序转换成高级语言源程序.可用可用软件工具实现自动转换软件工具实现自动转换.即可以表示程序逻辑即可以表示程序逻辑,也可以描绘数据结构也可以描绘数据结构.支持自顶向下支持自顶向下,逐步求精方法的使用逐步求精方法的使用.PAD图的优点图的优点:Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.判定表判定表 程序流程图、程序流程图、N-S图、图、PAD图都不易清楚的图都不易清楚的描述含有多重嵌套的条件选择。判定表可以清描述含有多重嵌套的条件选择。判定表可以清晰的表示复杂的条件组合与其对应的处理之间晰的表示复杂的条件组合与其对应的处理之间的关系的关系。 一张判定表由一张判定表由4部分组成部分组成,左上部列出所有条左上部列出所有条件件,左下部是所有可能做的动作左下部是所有可能做的动作,右上部是表示各右上部是表示各种条件组合的一个矩阵种条件组合的一个矩阵,右下部是和每种条件组右下部是和每种条件组合相对应的动作合相对应的动作.判定表右半部实质上是一条规判定表右半部实质上是一条规则则,规定了与特定条件组合相对应的动作规定了与特定条件组合相对应的动作.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.所有条件所有条件条件组合矩阵条件组合矩阵与每种条件组合与每种条件组合所对应的动作表所对应的动作表所有可能的所有可能的动作列表动作列表国内乘客国内乘客头头 等等 舱舱残疾乘客残疾乘客行李行李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.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.用判定表表示计算行李费算法用判定表表示计算行李费算法Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.12345教授TFFF副教授FTFF讲师FFTF助教FFFT讲座TFFFF5030252015例2:某校制定了教师的讲课课时津贴标准。对于各种性质的讲座,无论教师是什么职称,每课时津贴费一律是50元;而对于一般的授课,则根据教师的职称来决定每课时津贴费:教授30元,副教授25元,讲师20元,助教15元。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.行李费行李费算算 法法行李重量行李重量 W30国内乘客国内乘客外国乘客外国乘客头等舱头等舱其它舱其它舱残疾乘客残疾乘客 - (W-30)*2正常乘客正常乘客 - (W-30)*4残疾乘客残疾乘客 - (W-30)*3正常乘客正常乘客 - (W-30)*6头等舱头等舱其它舱其它舱残疾乘客残疾乘客 - (W-30)*4正常乘客正常乘客 - (W-30)*8残疾乘客残疾乘客 - (W-30)*6正常乘客正常乘客 - (W-30)*12行李重量行李重量 W30免费免费判定树是判定表的变体判定树是判定表的变体,其优点是形式简单其优点是形式简单,不需要任何说明不需要任何说明,一眼就可以看出它的含义一眼就可以看出它的含义.判定树判定树Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.例例1、某厂对部分职工重新分配工作的政策是:、某厂对部分职工重新分配工作的政策是:年龄在年龄在20岁以下者,初中文化程度脱产学习。岁以下者,初中文化程度脱产学习。高中文化程度当电工;年龄在高中文化程度当电工;年龄在2040岁之间者,岁之间者,中学文化程度男性当钳工,女性当车工,大学中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员。年龄在文化程度都当技术员。年龄在40岁以上者,中岁以上者,中学文化程度当材料员,大学文化程度当技术员。学文化程度当材料员,大学文化程度当技术员。请用判定表或判定树描述上述问题的加工逻辑。请用判定表或判定树描述上述问题的加工逻辑。 Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.分析:本题条件包括年龄、文化程度、性别分析:本题条件包括年龄、文化程度、性别三个,构成的判定条件取值表如表三个,构成的判定条件取值表如表33所示所示 所有的组合条件为所有的组合条件为3X3x218Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.2 2、用判定表描述、用判定表描述“检查定货单检查定货单”的处理逻辑:的处理逻辑:“如如果金额超过果金额超过10001000元而又未过期,则发出批准单和提元而又未过期,则发出批准单和提货单。如果金额超过货单。如果金额超过20002000元,但已过期,则不发出元,但已过期,则不发出批准单和提货单。如果金额低于批准单和提货单。如果金额低于20002000元,则不论是元,则不论是否过期,都发出批准单和提货单,而且对低于否过期,都发出批准单和提货单,而且对低于20002000元已过期的还需发出通知单元已过期的还需发出通知单”。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.Jackson图表示方法图表示方法 Jackson图图6.3 面向数据结构的设计方法面向数据结构的设计方法Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.Jackson图的优点:图的优点:(1)Jackson图图不不仅仅便便于于表表示示层层次次结结构构,而而且且也也有有利利于对结构自顶向下分解;于对结构自顶向下分解;(2)Jackson图形象直观,可读性好;图形象直观,可读性好;(3)Jackson图图不不仅仅能能表表示示数数据据结结构构,也也能能表表示示程程序序结构(因为程序结构也可以由上述结构(因为程序结构也可以由上述3种基本结构组成)。种基本结构组成)。Jackson图的缺点:图的缺点:在在选选择择结结构构和和重重复复结结构构中中,选选择择条条件件或或循循环环结结束束条条件件不不能能直直接接在在Jackson图图中中表表示示出出来来。这这样样就就影影响响了了图图形形的的表达能力,也不利于直接把图翻译成程序。表达能力,也不利于直接把图翻译成程序。Jackson图的优点图的优点,缺点缺点Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.改进的改进的Jackson图图 Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.Jackson程序设计方法程序设计方法例例:高高考考后后将将考考生生的的基基本本情情况况文文件件(简简称称考考生生基基本本情情况况文文件件)和和考考生生高高考考成成绩绩文文件件(简简称称考考分分文文件件)合合并并成成一一个个新新文文件件(简简称称考考生生新新文文件件)。考考生生基基本本情情况况文文件件和和考考分分文文件件都都是是由由考考生生记记录录组组成成的的。为为简简便便起起见见,考考生生基基本本情情况况文文件件中中的的考考生生记记录录的的内内容容包包括括:准准考考证证号号、姓姓名名、通通讯讯地地址址。考考分分文文件件中中的的考考生生记记录录的的内内容容包包括括:准准考考证证号号和和各各门门考考分分。合合并并后后的的考考生生新新文文件件自自然然也也是是由由考考生生记记录录组组成成,内内容容包包括括:准准考考证证号号、姓姓名名、通通讯讯地址和各门考分。地址和各门考分。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第一步第一步 利用利用Jackson图描述数据结构图描述数据结构对对要要求求解解的的问问题题进进行行分分析析,确确定定输输入入数数据据和和输输出出数数据据的的逻逻辑辑结结构构,并并用用Jackson图图描描述述这些数据结构。这些数据结构。Jackson程序设计方法由五个步骤组成:程序设计方法由五个步骤组成: Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第二步第二步 找出输入数据结构和输出数据结构找出输入数据结构和输出数据结构 的对应关系的对应关系找找出出输输入入数数据据结结构构和和输输出出数数据据结结构构中中有有对对应应关关系系的的数数据据单单元元,即即有有直直接接因因果果关关系系、在在程程序序中中可可以以同同时时处处理理的的数数据据单单元元。需需要要注注意意的的是是,对对于于重重复复的的数数据据单单元元,必必须须是是重重复复的的次次序、次数都相同才有可能有对应关系。序、次数都相同才有可能有对应关系。 Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第三步第三步 确定程序结构图确定程序结构图根据下述三规则,由根据下述三规则,由Jackson图导出相应的程序结构图:图导出相应的程序结构图: (1)为为每每对对有有对对应应关关系系的的数数据据单单元元,按按照照它它们们在在数数据据结结构构图图中中所所处处的的层层次次,在在程程序序结结构构图图中中的的相相应应层层次次画画一一个个处处理理框框。如如果果这这对对数数据据单单元元在在输输入入数数据据结结构构图图和和输输出出数数据据结结构构图图中中所所处处的的层层次次不不同同,那那么么应应以以它它们们在在输输入入数数据据结结构构图图和和输输出出数数据据结结构构图图中中层层次次较较低低的的那那个个层层次次作作为为它它们们在在程程序序结结构构图图中的处理框所处的层次;中的处理框所处的层次; (2)对对于于输输入入数数据据结结构构中中剩剩余余的的数数据据单单元元,根根据据它它们们所所处处的的层层次次,在在程程序序结结构构图图的的相相应应层层次次为为每每个个数数据据单单元元画画上上相应的处理框;相应的处理框; (3)对对于于输输出出数数据据结结构构中中剩剩余余的的数数据据单单元元,根根据据它它们们所所处处的的层层次次,在在程程序序结结构构图图的的相相应应层层次次为为每每个个数数据据单单元元画画上上相应的处理框。相应的处理框。 Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.实实际际上上,这这一一步步是是一一个个综综合合的的过过程程:每每对对有有对对应应关关系系的的数数据据单单元元合合画画一一个个处处理理框框,没没有有对对应应关关系系的的数数据单元则各画一个处理框。据单元则各画一个处理框。 Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.第四步第四步 列出并分配所有操作和条件列出并分配所有操作和条件列列出出所所有有操操作作和和条条件件(包包括括分分支支条条件件和和循循环环结结束束条条件件),并把它们分配到程序结构图的适当位置。并把它们分配到程序结构图的适当位置。 操作:(操作:(1)停止;)停止; (2)打开两个输入文件;)打开两个输入文件; (3)建立输出文件。)建立输出文件。 (4)从输入文件中各读一条记录。)从输入文件中各读一条记录。 (5)生成一条新记录。)生成一条新记录。 (6)将新记录写入输出文件。)将新记录写入输出文件。 (7)关闭全部文件。)关闭全部文件。条件:条件:I(1)文件结束。)文件结束。 Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.把操作和条件分配到程序结构图的适当位置把操作和条件分配到程序结构图的适当位置 Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd. 第五步第五步 用伪码表示程序用伪码表示程序Jackson方方法法中中使使用用的的伪伪码码与与Jackson图图是是完完全全对对应应的的。针针对对三三种种基基本本程程序序结结构构,有有相相对对应应的的Jackson伪码。伪码。 (1)顺序结构)顺序结构A seq B C DA endEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.(2)选择结构)选择结构(3)重复结构)重复结构A select condition1 BA or condition2 CA or condition3 DA endA iter until(或(或while)condition BA endEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.Jackson伪码伪码描述的程序描述的程序产生通讯地址产生通讯地址产生姓名产生姓名产生准考证号产生准考证号处理考生记录处理考生记录 seq分析考生记录分析考生记录iter until文件结束文件结束从输入文件中各读一条记录从输入文件中各读一条记录打开两个输入文件打开两个输入文件产生新文件产生新文件 seq产生考分产生考分生成一条新记录生成一条新记录将新记录写入输出文件将新记录写入输出文件从输入文件中各读一条记录从输入文件中各读一条记录处理考生记录处理考生记录 end关闭全部文件关闭全部文件停止停止产生新文件产生新文件 end 分析考生记录分析考生记录endEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.6.4 程序复杂度的定量度量程序复杂度的定量度量 利用软件设计的基本原理和概念可以定性利用软件设计的基本原理和概念可以定性的衡量软件模块的质量。但定量的度量程序复杂程的衡量软件模块的质量。但定量的度量程序复杂程度的方法很有价值:度的方法很有价值: 估算程序中软件故障的数量;估算程序中软件故障的数量; 估算软件开发的工作量;估算软件开发的工作量; 比较两个不同的设计或两个不同算法比较两个不同的设计或两个不同算法 的优的优劣劣 ; 作为模块规模的精确上限。作为模块规模的精确上限。程序定量度量方法是一个有待进一步研究的重要程序定量度量方法是一个有待进一步研究的重要领域。领域。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.1)McCabe 方法方法程序图程序图 把程序流程图中每个处理符号都退化成一把程序流程图中每个处理符号都退化成一个点,原来连接不同处理符号的箭头变成连接不同个点,原来连接不同处理符号的箭头变成连接不同点的有向弧,这样得到的有向图就称为点的有向弧,这样得到的有向图就称为流图流图.程序图程序图仅仅描述程序内部的控制流程,完全不表现对数据仅仅描述程序内部的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。的具体操作以及分支或循环的具体条件。 入口点入口点:程序图中开始点后面的那个节点。:程序图中开始点后面的那个节点。 出口点出口点:程序图中停止点前面的那个节点。:程序图中停止点前面的那个节点。用用McCabe方法度量得出的结果称为程序的环形复杂方法度量得出的结果称为程序的环形复杂度。度。 程序的环形复杂度程序的环形复杂度 = 强连通图中线性无关的有向强连通图中线性无关的有向环的个数。环的个数。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.2)环形复杂度的计算方法)环形复杂度的计算方法 在一个强连通的有向图中,线性无关环的在一个强连通的有向图中,线性无关环的 个数个数由以下公式确定:由以下公式确定: V(G) = m n + 2 其中:其中: V(G) - 有向图有向图 G 中的环数。中的环数。 m - 有向图有向图 G 中的弧数。中的弧数。 n - 有向图有向图 G 中的节点数。中的节点数。 流图中的区域数等于环形复杂度。流图中的区域数等于环形复杂度。 流图的流图的环形复杂度环形复杂度V(G) P1 p表示流图中的判定结点的个数表示流图中的判定结点的个数Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.K=0 L=0TOTAL=0输入输入ADo while TOTAL 1000 and A 0A0TOTAL=TOTAL+AK=K+1输入输入AL=L+1停止停止bcdefghik输出输出K,L,TOTALjbcdefghjikV(G)=11-10+2=311 条弧条弧10 个节点个节点Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.3) 环形复杂度的用途:环形复杂度的用途: 程序的环形复杂度与程序控制流的复杂程度,也程序的环形复杂度与程序控制流的复杂程度,也就是与程序结构的复杂程度有关。程序内分支数或循就是与程序结构的复杂程度有关。程序内分支数或循环个数增加时,环形复杂度就增加,因此它是对测试环个数增加时,环形复杂度就增加,因此它是对测试难度的一种度量,也能对软件最终的可靠性给出某种难度的一种度量,也能对软件最终的可靠性给出某种预测。预测。 McCabe 发现:环形复杂度高的程序往往是最发现:环形复杂度高的程序往往是最困难、最容易出问题的程序。困难、最容易出问题的程序。 实践表明:实践表明: 模块规模以模块规模以 V( G) 10 为宜。为宜。也就是说也就是说,V( G)= 10 是模块规模的一个更科学是模块规模的一个更科学更精确的上限。更精确的上限。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.Halstesd方法方法 它根据程序中运算符和操作数的总数来度量它根据程序中运算符和操作数的总数来度量程序的复杂程度程序的复杂程度. H表示预测的程序长度表示预测的程序长度, 为程序中运算符出为程序中运算符出现的次数现的次数, 为程序中操作数出现的次数为程序中操作数出现的次数, 为程为程序长度序长度.实践证明实践证明,预测的长度预测的长度 与实际的长度与实际的长度 非常接近非常接近.Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.6.5 详细设计说明书详细设计说明书n引言引言n程序系统的组织结构程序系统的组织结构n关键程序的设计说明关键程序的设计说明Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.详细设计说明书规格详细设计说明书规格Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.例例1Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.例例2Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.例例3Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.填空题填空题 1详细设计阶段主要完成的任务是详细设计阶段主要完成的任务是。2软件的详细设计可以采用软件的详细设计可以采用、 三种形式的描述工具表示模块的处三种形式的描述工具表示模块的处理过程。理过程。设计出模块的执行过程。设计出模块的执行过程。图、表、过程设计语言图、表、过程设计语言3 3JacksonJackson方法可以实现从方法可以实现从中推导出中推导出程序结构程序结构 数据结构数据结构 Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.4.程序流程图称程序流程图称, 包括三个基本的成分:包括三个基本的成分: ,。5.为了实现使用程序流程图描述结构化程序,为了实现使用程序流程图描述结构化程序, 必须限制程序流程图只使用以下五种基本控制结构必须限制程序流程图只使用以下五种基本控制结构 、。6.PAD图是一种描述程序逻辑结构的图形工具,图是一种描述程序逻辑结构的图形工具, 这种图形由程序流程图演化而来,它把程序的结构这种图形由程序流程图演化而来,它把程序的结构表示成表示成结构。结构。程序框图程序框图 加工处理步骤加工处理步骤 逻辑条件逻辑条件 控制流向控制流向顺序型顺序型 选择型选择型 先判定(先判定(whilewhile)型循环)型循环 后判定(后判定(untiluntil)型循环)型循环 多情况(多情况(casecase)型选择)型选择二维树型二维树型Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.7.7.过程设计语言属于一种过程设计语言属于一种,是一种描述,是一种描述 的语言。的语言。8.Jackson8.Jackson方法简称方法简称JSDJSD,是一种典型的,是一种典型的的设计方法。的设计方法。面向数据结构面向数据结构伪码伪码 模块算法设计及处理细节模块算法设计及处理细节Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.1软件详细设计阶段的任务是软件详细设计阶段的任务是( )。 A.算法设计算法设计 B.功能设计功能设计 C.调用关系设计调用关系设计 D输入输入/输出设计输出设计 选择题选择题2软件详细设计阶段主要采用的工具是软件详细设计阶段主要采用的工具是( ) A.DFD BPADC.DD DSA ABEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.3.软件详细设计阶段采用自左向右的二维软件详细设计阶段采用自左向右的二维图形结构描述算法的是图形结构描述算法的是(). AIPO BJSP CPAD DJSD C4软件详细设计阶段的任务是软件详细设计阶段的任务是( )。 A.确定程序文件名确定程序文件名 B.确定模块的算法确定模块的算法 C.确定变量名确定变量名 D确定使用的语言确定使用的语言 BEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.5.结构化程序设计采用的思想是结构化程序设计采用的思想是( )。 A.筛选法筛选法 B逐步求精法逐步求精法 C.迭代法迭代法 D递归法递归法 B6.软件详细设计阶段属于软件生存周期的软件详细设计阶段属于软件生存周期的 ( )阶段。阶段。 A.需求分析需求分析 B软件设计软件设计 C编码编码 D软件维护软件维护 BEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.7.以语言形式描述模块算法的是以语言形式描述模块算法的是( )。 A.PAD B.程序流程图程序流程图 C.PDL D.盒图盒图 C8、为了使程序能在不同的计算机上运行,、为了使程序能在不同的计算机上运行,程序应当具有较好的()程序应当具有较好的() A.可移植性可移植性 B可重用性可重用性 C.可维护性可维护性 D可适用性可适用性 AEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.9、下列属于功能性注释的是、下列属于功能性注释的是( )。 A.说明模块的用处和功能的注释说明模块的用处和功能的注释 B.说明数据的名称和用处的注释说明数据的名称和用处的注释C.说明程序段的注释说明程序段的注释D.说明程序开发背景的注释说明程序开发背景的注释 CEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.10.下面对提高程序编码效率没有影响的是下面对提高程序编码效率没有影响的是( )。 A.选择良好的设计方法选择良好的设计方法 B选择良好的算法选择良好的算法 C.选择良好的数据结构选择良好的数据结构 D变量名的使用变量名的使用 DEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.11.11.软件详细设计的主要任务是确定每个模块的()软件详细设计的主要任务是确定每个模块的() A. A.功能功能 B. B.外部接口外部接口 C. C.算法和使用的数据结构算法和使用的数据结构 D. D.编程实现编程实现12. 12. 下面关于下面关于PDLPDL语言不正确的说法是()语言不正确的说法是() A.PDL A.PDL的外层语法必须符合一般程序设计语言的外层语法必须符合一般程序设计语言 常用的语法规则常用的语法规则 B.PDL B.PDL是一种伪码是一种伪码 C.PDL C.PDL只是描述加工的具体实现只是描述加工的具体实现 D.PDL D.PDL是描述处理过程怎么做是描述处理过程怎么做13. PAD13. PAD图在()可以大大提高开发效率图在()可以大大提高开发效率 A. A.系统分析系统分析 B. B.自动分析数据自动分析数据 C. C.软件的自动化生成软件的自动化生成 D. D.测试软件测试软件CCCEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.14.14.下列工具在软件详细设计过程中不常用的是()下列工具在软件详细设计过程中不常用的是() A.PDL B.N A.PDL B.NS S图图 C.DFD C.DFD图图 D.PAD D.PAD图图15.Jackson15.Jackson方法是软件设计中用到的一种常用的设计方法是软件设计中用到的一种常用的设计 方法,使用方法,使用JacksonJackson方法可以实现()。方法可以实现()。 A. A.从模块结构中导出数据结构从模块结构中导出数据结构 B. B. 从模块结构中导出程序结构从模块结构中导出程序结构 C. C.从数据流图中导出初始的结构图从数据流图中导出初始的结构图 D. D.从结构图导出程序结构从结构图导出程序结构C CD DEvaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.应用题应用题begin s1; if x5 then s2 else s3; while yO do begin if z3 then s4 else s5 ; if w0 s6; s7; end s8 ; if u0 then s9; s10; end1.将下面的伪码表示转换为将下面的伪码表示转换为PAD图图 Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.1.答案Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.3.将下图所示的将下图所示的PAD图转换为伪码表示。图转换为伪码表示。 Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.while A do if x0 then x1 else x2; if y0 then begin y1; if z0 then z1 else z2; end else y2; y3; end; 3.答案答案Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.4.以下是两个程序流程图,试分别用以下是两个程序流程图,试分别用NS图图和和PAD表示,并计算它们的表示,并计算它们的McCabe复杂性复杂性度量。度量。Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.4.答案答案对应的对应的NS图如下:图如下:Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.对应的对应的PAD图如下:图如下:McCabe复杂性度量都为复杂性度量都为3。V(G) = m n + 2Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.作业作业1.1.简要叙述简要叙述N NS S图具有的特点图具有的特点2.2.简要叙述简要叙述PADPAD图具有的特点图具有的特点3.Jackson3.Jackson方法的核心思想是什么?方法的核心思想是什么?4.4.将下列的伪代码用将下列的伪代码用PADPAD表示出来表示出来 N=0; N=0; DO while N20 DO while N20 If S(N)=S(N+1) then Min=S(N) If S(N)=S(N+1) then Min=S(N) else Min=S(N+1) else Min=S(N+1) endif endif N=N+1; N=N+1; END DO END DO Evaluationonly.CreatedwithAspose.Slidesfor.NET3.5ClientProfile5.2.0.0.Copyright2004-2011AsposePtyLtd.
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号