首页 理论教育 软件工程:程序流程图与PAD图实例

软件工程:程序流程图与PAD图实例

时间:2023-11-06 理论教育 版权反馈
【摘要】:图4-28程序流程图实例基于这些原因,目前程序流程图所占据的应用空间正逐步地被盒图所取代。图4-31PAD图基本符号使用PAD图表示的实例,如图4-32所示。图4-32PAD图实例2.表格工具判定表。假设某航空公司规定,乘客可以免费托运重量不超过30 kg的行李。图4-33用判定树表示的行李托运费算法3.伪代码过程设计语言也称为伪代码,它是一种笼统的名称,是用正文形式表示数据和处理过程的设计工具。

软件工程:程序流程图与PAD图实例

结构程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。在这里,对于逐步求精的含义分为两个层次。

详细设计阶段逐步求精的含义是把一个模块的功能逐步分解细化为一系列具体的处理步骤或某种高级语言的语句;而总体设计阶段逐步求精的含义是指把一个复杂问题的解法分解和细化成一个由许多模块组成的层次结构的软件系统。

程序过程是对程序结构的细化,是在概要设计的基础之上,细致地通过详细设计工具描述函数实现的算法,如图4-26所示。

图4-26 详细设计与概要设计之间的关系

从上述描述中我们将体会到结构程序设计技术有如下一些优越性:

(1)自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律,因此可以显著提高软件开发工程的成功率和生产率

(2)用先全局后局部、先整体后细节、先抽象后具体的逐步求精过程开发出的程序有清晰的层次结构,因此容易阅读和理解;

(3)不使用goto语句仅使用单入口单出口的控制结构,使得程序的静态结构和它的动态执行情况比较一致,易于阅读和理解;

(4)控制结构有确定的逻辑模式,编写程序代码只限于很少几种直截了当的方式,因此源程序清晰流畅;

(5)程序清晰和模块化使得在修改和重新设计一个软件时,可以重用的代码量最大;

(6)程序的逻辑结构清晰,有利于程序正确性证明。

下面我们将为大家介绍几种具有代表性的过程设计工具:

(1)程序流程图、盒图、PAD三种图形工具;

(2)表格工具:判定表、判定树;

(3)PDL基于文本的工具。

1.图形工具

(1)程序流程图。程序流程图简称流程图,是一种采用方框表示处理步骤,菱形表示逻辑判断,箭头表示控制流的一种图形符号来描述问题解决方式的表示方法。

在使用流程图表示过程细节时,要注意不要乱用箭头(它的效果类似于乱用goto语句),否则会使结构混乱,容易出错,给编码带来不必要的麻烦。图4-27所示是程序流程图的基本符号。

图4-27 程序流程图基本符号

下面是一个程序流程图的实例(参见图4-28)。

程序流程图的使用曾经非常广泛,特别是流程图中的箭头符号使用起来非常灵活,满足了人们在思考过程中的思维方式的表达。流程图的应用很好地描述了解决问题的方法,在结构化设计中占有重要的位置。但是由于它的灵活性,也带来了一些弊端,其表现以下几方面。

①流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。

②流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。

③流程图不易表示数据结构

图4-28 程序流程图实例

基于这些原因,目前程序流程图所占据的应用空间正逐步地被盒图所取代。

(2)盒图(N~S图)。盒图也叫作方块图,它在绘制过程中将程序的五种控制结构(参见图4-29)分别用长方形框定在一个范围内,通过这种方式强调了结构化原则的应用,避免了程序流程图的缺点。

盒图具有以下特点:

①功能域(即某一具体构造的功能范围)有明确的规定,并且能很直观地从图形表示中看出来;

②想随意分支或转移是不可能的;

③局部数据和全程数据的作用域可以很容易确定;

④容易表示出递归结构。(www.xing528.com)

下面给出程序流程图4-28对应的盒图的实例,如图4-30所示。

图4-29 盒图基本符号

图4-30 盒图实例

(3)PAD图。PAD图又称问题分析图(Problem Analysis Diagram,PAD),它是20世纪70年代日本日立公司发明的,是一种具有很强结构化特狂的分析工具。

PAD图具有以下特点:

①使用表示结构化控制结构的PAD符号所设计出的程序必然是结构化程序。

②PAD图所描述的程序结构十分清晰,图中最左面的竖线是程序的主线,即第一层结构,随着程序层次的增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线,PAD图中的竖线的总条数就是程序的层次数。

③用PAD图表现程序逻辑,易读、易懂、易记。PAD图是二维树形结构的图形,程序从图中最左竖线上端的节点开始执行,自上而下、从左向右顺序执行,遍历所有节点。

④容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成。

⑤既可以用于表示程序逻辑,也可用于描述数据结构。

⑥PAD图的符号具有支持自顶向下、逐步求精方法的作用。开始时设计者可以定义一个抽象的程序,随着设计工作的深入而用def符号逐步增加细节,直至完成详细设计。

图4-31显示了PAD所使用的基本图符。

图4-31 PAD图基本符号

使用PAD图表示的实例,如图4-32所示。

图4-32 PAD图实例

2.表格工具

(1)判定表。判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系,而其他的工具则不易实现。

一张判定表由四部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。

判定表的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。

以行李托运费的算法为例说明判定表的组织方法,如表4-1所示。

假设某航空公司规定,乘客可以免费托运重量不超过30 kg的行李。当行李重量超过30 kg时,对头等舱的国内乘客超重部分每千克收费4元,对其他舱的国内乘客超重部分每千克收费6元,对外国乘客超重部分每千克收费比国内乘客多一倍,对残疾乘客超重部分每千克收费比正常乘客少一半。用判定表可以清楚地表示与上述每种条件组合相对应的动作(算法)。

表4-1 用判定表表示的行李托运费算法

(2)判定树。判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。判定树的形式简单,不需任何说明,容易看出含义,易于掌握和使用,但也有缺点,例如,简洁性不如判定表,相同的数据元素往往要重复写多遍,而且越接近树的叶端重复次数越多等。判定树的使用方法如图4-33所示。

图4-33 用判定树表示的行李托运费算法

3.伪代码

过程设计语言(Process Design Language,PDL)也称为伪代码,它是一种笼统的名称,是用正文形式表示数据和处理过程的设计工具。

PDL具有严格的关键字外部语法,用于定义控制结构和数据结构;另一方面,PDL表示实际操作和条件的内部语法通常又是灵活自由的,以便可以适应各种工程项目的需要。例如,它可以作为注释直接写在源程序中间,可以使用普通的文本编辑系统方便地完成PDL的书写。缺点是不如图形工具形象直观,清晰简单。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈