软件工程学概述ppt课件第5章详细设计.ppt

上传人:小飞机 文档编号:1786853 上传时间:2022-12-18 格式:PPT 页数:50 大小:427KB
返回 下载 相关 举报
软件工程学概述ppt课件第5章详细设计.ppt_第1页
第1页 / 共50页
软件工程学概述ppt课件第5章详细设计.ppt_第2页
第2页 / 共50页
软件工程学概述ppt课件第5章详细设计.ppt_第3页
第3页 / 共50页
软件工程学概述ppt课件第5章详细设计.ppt_第4页
第4页 / 共50页
软件工程学概述ppt课件第5章详细设计.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《软件工程学概述ppt课件第5章详细设计.ppt》由会员分享,可在线阅读,更多相关《软件工程学概述ppt课件第5章详细设计.ppt(50页珍藏版)》请在三一办公上搜索。

1、详细设计,5.1 详细设计阶段概述5.2 详细设计阶段的描述工具,第5章,5.1 详细设计阶段概述,详细设计的目的: 为软件结构图 (SC) 中的每一个模块确定采用的算法和模块内 数据结构,用某种选定的表达工具给出清 晰的描述。,详细设计阶段的主要任务: 编写软件的 “详细设计说明书”,详细设计阶段的主要任务,描述工具,5.2 详细设计阶段的描述工具,A,1、顺序型,一、程序流程图,B,几个连续的加工依次序排列,exp,A,B,2、选择型,由某个判断式的取值决定选择两个加工中的一个。,3、当型循环型,当循环控制条件成立时,重复执行特定的加工。,4、直到型循环型,重复执行特定的加工,直到循环控制

2、条件成立时。,5、多情况选择型,列出多种加工情况,根据控制变量的取值,选择执行其一。,标准化程序流程图规定符号,X1,起止端点,输入/输出,一般处理,准备或预处理,预定义处理,条件判断,循环上界,循环下界,文件或文档,外接,内接,流程线,虚线,省略线,并行方式,注解或注释,流程符号的使用规则,1、循环符号的使用,循环体,- 循环流程符号的使用,2、判断有一个入口,但也允许有多个可选出口,- 多出口判断流程符号的使用,请利用程序流程图描述下列问题的程序结构,练习,某汽车修配厂,有一个存有汽车零件的仓库,其中存有若干种零件,请编写一个查询程序,用于查询该库中某零件的库存量为多少。,顺序型,二、N-

3、S 图,选择型,- Nassi and Shneideman,当型循环型,直到型循环型,多分支选择型,三、PAD 图,直到型循环型,当型循环型,顺序型,选择型,多分支选择型循环型,- Problem Analysis Diagram,举例,练习,请为学生成绩管理系统中的学生成绩统计模块设计程序结构。,四、PDL,- Program Ddesign Language,PDL 是一种用于描述功能模块的算法设计和加工细节的语言。称为设计程序用语言。它是一种伪代码(Pseudo code),PDL,-关键词+自然语言,(1)、数据说明:,格式: TYPE AS ,其功能是定义数据的类型和作用域,说明:

4、 1. 变量名:是一个模块内部使用的变量或模块间共用 的全局变量名。,2. 限定词1 :标明数据类型,3. 限定词2 :标明该变量的作用域,TYPE number AS STRING LENGTH (12),(2)、程序块:,PDL的过程成分是由块结构构成的,而块将作为一个单个的实体来执行。,BEGIN END,(3)、子程序结构:,把 PDL 中的过程称为子程序。,PROCEDURE INTERFACE END,(4)、基本控制结构:,IF THEN ; ELSE ; ENDIF,- 选择型结构,DO WHILE ; ENDDO,REPEAT UNTIL ; ENDREP,- 重复型结构,D

5、O LOOP ; EXIT WHEN ENDLOOP,DO FOR ; ENDFOR,- 重复型结构,- 多路选择结构,CASE OF ; WHEN SELECT ; WHEN SELECT ; DEFAULT: ; ENDCASE,READ/WRITE TO ,- 输入/输出结构,Enter a vector Set Maximum to the value of the first element in the vector DO for each second one to the last IF value of THEN element is greater than the Max

6、imum value Set Maximum to value of the element ENDDO Print the Maximum value,三、程序复杂性的度量,程序复杂性主要是指模块内部程序的复杂性。它 直接关系到软件开发费用的多少,开发周期的长短和 软件和软件内部潜伏错误的多少。同时它也是软件可 理解性的另一种度量。,为了度量程序复杂性,要求复杂性度量应满足以下假设:,如果设每行代码的出错率为每100行源程序中可能的错误数目。例如,每行代码的出错率为 1%,也就是说,每 100 行源程序中就可能有一个错误。,1、代码行度量法,:统计程序中的源代码的行数,较小的程序 -,1.3

7、%1.8%/行,较大的程序 -,2.7%3.2%/行,该方法是利用程序模块的程序图中环路的个数,来计算程序的复杂性的。为此,该方法也称为环路复杂度计算法。,2、McCabe 度量法,:利用程序的控制流来度量程序的复杂性,它是一种退化了的程序流程图。即:把程序流程图中每个处理符号都退化成一个结点,而原来流程图中的流程线,则变成连接不同结点的有向弧。,(1)程序图符号,(2)从流程图导出程序图,(3)环路复杂性的计算方法,V(G)=m-n+p,说明: V(G) 是有向图G中环路数;,m: 为图G中弧数;,n: 为图G中节点数;,: 为图G中强连通分量个数;,V(G)=13-11+1=3,McCab

8、e 的环路复杂性度量值为 3,习题1,请将右侧给出的程序流程图转换为程序图并计算其环路值。,程序的环路复杂度则取决于程序控制流的复杂度,也就 是取决于程序结构的复杂程度。当程序内分支或循环个数增 加时,则相应地环域复杂度也随之增加。因此,它是对测试 难度的一种定量度量,也能对软件最终的可靠性给出某种预 测。,(4)、环路复杂度的用途,习题2,请用程序流程图描述下列问题的算法,再将其转换为程序图并计算其环路值。,请定义一个数组a,要求找出数组中最大数和最小 数,并把最大数和 a0 中的数对调、最小数和a1 中的数对调。,习题3,请画出下列伪代码程序的流程图、程序图并计算它的环路复杂度。,LOOP

9、 : Do While Z0 A=A+1 IF A10 THEN X=A ELSE Y=Z END IF IF Y0 THEN PRINT G E LSE PRINT K END IF STOP,设某模块的功能是:读入任意长的 一段英文课文,将其分解为单字。然后 输出一个单词表,并指出每个单词在课 文中所出现的次数。,习题4,请按下列给出的文字要求,用 PDL 描述其该模块的算法, execute process a REPEAT UNTIL condition X8 execute process b IF condition X1 THEN BEGIN execute process f

10、IF condition X6 THEN REPEAT UNTIL condition X7 execute process i ENDREP ELSE BEGIN execute process g execute process h END ENDIF END,习题5,请将下列的 PDL 表示的某模块的过程性描述,改为用:1、N-S 图 2、PAD 图表示,ELSE CASE OF Xi WHEN condition X2 SELECT DO WHILE condition X5 execute process C ENDDO WHEN condition X3 SELECT proces

11、s d WHEN condition X4 SELECT process e ENDCASE ENDIF ENDREP execute process jEND,5-1 假设只有SEQUENCE和DO-WHILE两种控制结构,怎样利用它们完成IF-THEN-ELSE操作?5-2 假设只允许使用SEQUENCE和IF-THEN-ELSE两种控制结构,怎样利用它们完成DO-WHILE操作?5-3 画出下列伪码程序的程序流程图和盒图:STARTIF p THENWHILE q DOf,习题,END DO ELSEBLOCK g nEND BLOCKEND IFSTOP5-4 图6.18给出的程序流程

12、图代表一个非结构化的程序,请问:(1) 为什么说它是非结构化的?(2) 设计一个等价的结构化程序。,图6.18 一个非结构化程序,(3) 在(2)题的设计中你使用附加的标志变量flag了吗?若没用,请再设计一个使用flag的程序;若用了,再设计一个不用flag的程序。5-5 研究下面的伪码程序(见书131页):要求:(1) 画出程序流程图。(2) 程序是结构化的吗?说明理由。(3) 若程序是非结构化的,请设计一个等价的结构化程序并且画出程序流程图。(4) 此程序的功能是什么?它完成预定功能有什么隐含的前提条件吗?,5-6 用Ashcroft_Manna技术可以将非结构化的程序转换为结构化程序,

13、图6.19(见书132页)是一个转换的例子。(1) 你能否从这个例子总结出Ashcroft-Manna技术的一些基本方法?(2) 进一步简化图6.19(b)给出的结构化设计。5-7 某交易所规定给经纪人的手续费计算方法如下:总手续费等于基本手续费加上与交易中的每股价格和股数有关的附加手续费。如果交易总金额少于1000元,则基本手续费为交易金额的8.4%;如果交易总金额在1000元到10000元之间,则基本手续费为交易金额的5%,再加34元;,如果交易总金额超过10000元,则基本手续费为交易金额的4%加上134元。当每股售价低于14元时,附加手续费为基本手续费的5%,除非买进、卖出的股数不是1

14、00的倍数,在这种情况下附加手续费为基本手续费的9%。当每股售价在14元到25元之间时,附加手续费为基本手续费的2%,除非交易的股数不是100的倍数,在这种情况下附加手续费为基本手续费的6%。当每股售价超过25元时,如果交易的股数零散(即,不是100的倍数),则附加手续费为基本手续费的4%,否则附加手续费为基本手续费的1%。要求:,(1) 用判定表表示手续费的计算方法;(2) 用判定树表示手续费的计算方法。5-8 画出下列伪码程序(见书132页)的流图,计算它的环形复杂度。你觉得这个程序的逻辑有什么问题吗?5-9 把统计空格程序的Jackson图(图6.13)改画为等价的程序流程图和盒图。5-10 人机对话由操作员信息和系统信息交替组成。假设一段对话总是由操作员信息开始以系统信息结束,请用Jackson图描绘这样的人机对话过程。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号