(转载)详细设计-盒图PAD图过程设计语⾔
详细设计的⼯作:确定应该怎样具体地实现所有要求的系统,也就是说经过这个阶段的设计⼯作,应该得出⽬标系统的精确描述。
设计得到的结果是确定每个模块内部的算法和数据结构,产⽣描述各模块处理过程的详细⽂档。
程序流程图:
⼜称为程序框图,对控制流程的描绘很直观,便于初学者掌握。
盒图(N-S图):
出于要有⼀种不允许违背结构程序设计精神的图形⼯具的考虑,Nassi和Shneiderman提出了盒图。
它有下述特点:
(1) 功能域(即,⼀个特定控制结构的作⽤域)明确,可以从盒图上⼀眼就看出来。
(2) 没有箭头,不可能任意转移控制。
(3) 很容易确定局部和全程数据的作⽤域。
(4) 很容易表现嵌套关系,也可以表⽰模块的层次结构。
PAD:问题分析图(problem analysis diagram)
问题分析图(problem analysis diagram), 1973年由⽇本⽇⽴公司发明。它⽤⼆维树形结构的图来表⽰程序的控制流,将这种图翻译成程序代码⽐较容易。下图给出PAD图的基本符号。
过程设计语⾔(PDL):
也称为伪码,这是⼀个笼统的名称,现在有许多种不同的过程设计语⾔在使⽤。它是⽤正⽂形式表⽰数据和处理过程的设计⼯具。
环形复杂度定量度量程序的逻辑复杂度
计算:
⽅法⼀:流图中的区域数等于环形复杂度;
⽅法⼆:流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数;
⽅法三:流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数⽬
题⽬1、耦合和内聚的具体分类及使⽤原则。
耦合是对⼀个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接⼝的复杂程度,进⼊或访问⼀个模块的点,以及通过接⼝的数据。包括数据耦合、控制耦合、特征耦合、公共环境耦合、内容耦合。
内聚标志着⼀个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的⾃然扩展。简单地说,理想内聚的模块只做⼀件事情。包括:功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚。
题⽬2、如何看待模块划分的合理性,模块划分的质量依据是什么?
流程图转换为ns图根据每个模块的成本和接⼝成本确定的软件总成本最低。
题⽬3、环形复杂度的计算,结果说明了什么?掌握三种⽅法中的⼀种就⾏。
⽅法⼀:流图中的区域数等于环形复杂度;
⽅法⼆:流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数;
⽅法三:流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数⽬。它是对软件测试难度的⼀种定量试题,也能对软件最终的可靠性给出某种预测。
题⽬4、程序流程图和盒图(N-S)如何实现互转?
程图由⼀些特定意义的图形、流程线及简要的⽂字说明构成,它能清晰明确地表⽰程序的运⾏过程。在使⽤过程中,⼈们发现流程线不⼀定是必需的,为此,⼈们设计了⼀种新的流程图,它把整个程序写在⼀个⼤框图内,这个⼤框图由若⼲个⼩的基本框图构成,这种流程图简称N-S图。
题⽬5、画出下列伪码程序的程序流程图和盒图:
START
IF p THEN
WHILE q DO
f
END DO
ELSE
BLOCK
g
n
END BLOCK
END IF
STOP
从伪码转换成的数据流程图如下:
从伪码转换成的盒图如下:
题⽬6、图中给出的程序流程图代表⼀个⾮结构化的程序,问:
(1)为什么说它是⾮结构化的?
(2)设计⼀个等价的结构化程序
(3)在(2)题的设计中使⽤附加的标志变量flag了吗?若没⽤,再设计⼀个使⽤flag的程序;若⽤了,再设计⼀个不⽤flag的程序。
(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。本题图6-18所⽰的程序的循环控制结构有两个出⼝,显然不符合狭义的结构程序的定义,因此是⾮结构化的程序。
(2)使⽤附加的标志变量flag,⾄少有两种⽅法可以把该程序改造为等价的结构化程序,下图所⽰盒图描绘了两个等价的结构化程序。
(3)不使⽤flag把该程序改造为等价的结构化程序的⽅法如下图所⽰。
题⽬7、某交易所规定给经纪⼈的⼿续费计算⽅法如下:总⼿续费等于基本⼿续费加上与交易中的每股价格和股数有关的附加⼿续费。如果交易总⾦额少于1000元,则基本⼿续费为交易⾦额的8.4%;如果交易总⾦额在1000元到10000元之间,则基本⼿续费为交易⾦额的5%,再加34元;如果交易总⾦额超过10000元,则基本⼿续费为交易⾦额的4%加上134元。当每股售价低于14元时,附加⼿续费为基本⼿续费的5%,除⾮买进、卖出的股数不是100的倍数,在这种情况下附加⼿续费为基本⼿续费的9%。当每股售价在14元到25元之间时,附加⼿续费为基本⼿续费的2%,除⾮交易的股数不是100的倍数,
在这种情况下附加⼿续费为基本⼿续费的6%。当每股售价超过25元时,如果交易的股数零散(即,不是100的倍数),则附加⼿续费为基本⼿续费的4%,否则附加⼿续费为基本⼿续费的1%。
要求:
(1)⽤判定表表⽰⼿续费的计算⽅法
(2)⽤判定树表⽰⼿续费的计算⽅法
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论