1、流程图、N-S 图、PAD 图、判定表、PDL、HIPO 图程序流程图程序流程图独立于任何一种程序设计语言,比较直观、清晰,易于学习掌握。但流程图也存在一些严重的缺点。例如流程图所使用的符号不够规范,常常使用一些习惯性用法。特别是表示程序控制流程的箭头可以不受任何约束,随意转移控制。这些现象显然是与软件工程化的要求相背离的。为了消除这些缺点,应对流程图所使用的符号做出严格的定义,不允许人们随心所欲地画出各种不规范的流程图。例如,为使用流程图描述结构化程序,必须限制流程图只能使用图 3.25 所给出的五种基本控制结构。图 4.3 流程图的基本控制结构任何复杂的程序流程图都应由这五种基本控制结构组
2、合或嵌套而成。作为上述五种控制结构相互组合和嵌套的实例,图示给出一个程序的流程图。图中增加了一些虚线构成的框,目的是便于理解控制结构的嵌套关系。显然,这个流程图所描述的程序是结构化的。图 4.4 流程图的基本控制结构N-S 图Nassi 和 Shneiderman 提出了一种符合结构化程序设计原则的图形描述工具,叫做盒图,也叫做 N-S 图。为表示五种基本控制结构,在 N-S 图中规定了五种图形构件。参看图 4.5。为说明 N-S 图的使用,仍用图 4.4 给出的实例,将它用如图 4.6 所示的 N-S 图表示。如前所述,任何一个 N-S 图,都是前面介绍的五种基本控制结构相互组合与嵌套的结果
3、。当问题很复杂时,N-S 图可能很大。图 4.5 N-S 图的五种基本控制结构图 4.6 N-S 图的实例PAD PAD 是 Problem Analysis Diagram 的缩写,它是日本日立公司提出,由程序流程图演化来的,用结构化程序设计思想表现程序逻辑结构的图形工具。现在已为 ISO 认可。PAD 也设置了五种基本控制结构的图式,并允许递归使用。图 4.7 PAD 的基本控制结构做为 PAD 应用的实例,图 4.8 给出了图 4.4 程序的 PAD 表示。PAD 所描述程序的层次关系表现在纵线上。每条纵线表示了一个层次。把 PAD 图从左到右展开。随着程序层次的增加,PAD 逐渐向右展
4、开。PAD 的执行顺序从最左主干线的上端的结点开始,自上而下依次执行。 每遇到判断或循环,就自左而右进入下一层,从表示下一层的纵线上端开始执行,直到该纵线下端,再返回上一层的纵线的转入处。如此继续,直到执行到主干线的下端为止。图 4.8 PAD 实例 判定表当算法中包含多重嵌套的条件选择时,用程序流程图、N-S 图或 PAD 都不易清楚地描述。然而,判定表却能清晰地表达复杂的条件组合与应做动作之间的对应关系。仍然使用图 4.4 的例子。为了能适应判定表条件取值只能是“T“和“F“的情形,对原图稍微做了些改动,把多分支判断改为两分支判断,但整个图逻辑没有改变。见图 4.9。与图 3.31 表示的
5、流程图对应的判定表如图 3.32 所示。在表的右上半部分中列出所有条件,“表示该条件取值为真,“表示该条件取值为假,空白表示这个条件无论取何值对动作的选择不产生影响。在判定表右下半部分中列出所有的处理,画“表示要做这个动作,空白表示不做这个动作。判定表右半部的每一列实质上是一条规则,规定了与特定条件取值组合相对应的动作。图 4.9 不包含多分支结构的流程图实例PDL(Program Design Language) PDL 是一种用于描述功能模块的算法设计和加工细节的语言。称为设计程序用语言。它是一种伪码。一般地,伪码的语法规则分为“外语法“和“内语法“。外语法应当符合一般程序设计语言常用语句
6、的语法规则;而内语法可以用英语中一些简单的句子、短语和通用的数学符号,来描述程序应执行的功能。使用 PDL 语言,可以做到逐步求精:从比较概括和抽象的 PDL 程序起,逐步写出更详细的更精确的描述。PDL 就是这样一种伪码。它具有严格的关键字外语法,用于定义控制结构和数据结构,同时它的表示实际操作和条件的内语法又是灵活自由的,可使用自然语言的词汇。下面举一个例子,来看 PDL 的使用。 从上例可以看到,PDL 语言具有正文格式,很像一个高级语言。人们可以很方便地使用计算机完成 PDL 的书写和编辑工作。 PROCEDURE spellcheck IS 查找错拼的单词 BEGINsplit do
7、cument into single words 把整个文档分离成单词lood up words in dictionary 在字典中查这些单词display words which are not in dictionary 显示字典中查不到的单词create a new dictionary 造一新字典END spellcheck PDL 作为一种用于描述程序逻辑设计的语言,具有以下特点:有固定的关键字外语法,提供全部结构化控制结构、数据说明和模块特征。属于外语法的关键字是有限的词汇集,它们能对 PDL 正文进行结构分割,使之变得易于理解。为了区别关键字,规定关键字一律大写,其它单词一律小
8、写。内语法使用自然语言来描述处理特性。内语法比较灵活,只要写清楚就可以,不必考虑语法错,以利于人们可把主要精力放在描述算法的逻辑上。有数据说明机制,包括简单的(如标量和数组)与复杂的(如链表和层次结构)的数据结构。有子程序定义与调用机制,用以表达各种方式的接口说明。HIPO 图(Hierarchy plus Input Process Output)HIPO 最初只用做文档编写的格式要求,随后发展成比较有名的软件设计手段。HIPO 图采用功能框图和PDL 来描述程序逻辑,它由两部分组成:可视目录表和 IPO 图。可视目录表给出程序的层次关系,IPO 图则为程序各部分提供具体的工作细节。1、可视
9、目录表可视目录表由体系框图、图例、描述说明三部分组成。(1)体系框图又称层次图(H 图),是可视目录表的主体,用它表明各个功能的隶属关系。它是自顶向下逐层分解得到的,是一个树形结构。它的顶层是整个系统的名称和系统的概括功能说明;第二层把系统的功能展开,分成了几个框;第二层功能进一步分解,就得到了第三层、第四层,直到最后一层。每个框内都应有一个名字,用以标识它的功能。还应有一个编号,以记录它所在的层次及在该层次的位置。(2)图例每一套 HIPO 图都应当有一个图例,即图形符号说明。附上图例,不管人们在什么时侯阅读它都能对其符号的意义一目了然。 (3)描述说明它是对层次图中每一框的补充说明,在必须
10、说明时才用,所以它是可选的。描述说明可以使用自然语言。例如,应用 HIPO 法对盘存/销售系统进行分析。得到如图 4.10 所示的工作流程图。分析此工作流程图,可得如图 3.34 所示的可视目录表。图 4.11(a)是系统的层次图,图 4.11(b)是后面IPO 图的图例,图 4.11(c)是描述说明。 图 4.10 盘存/销售系统工作流程图 图 4.11 盘存/销售系统的可视目录表2、IPO 图IPO 图为层次图中每一功能框详细地指明输入、处理及输出。通常,IPO 图有固定的格式,图中处理操作部分总是列在中间,输入和输出部分分别在其左边和右边。由于某些细节很难在一张 IPO 图中表达清楚,常
11、常把 IPO 图又分为两部分,简单概括的称为概要 IPO 图,细致具体一些的称为详细 IPO 图。概要 IPO 图用于表达对一个系统,或对其中某一个子系统功能的概略表达,指明在完成某一功能框规定的功能时需要哪些输入,哪些操作和哪些输出。图 4.12 是表示销售/盘存系统第二层的对应于 H 图上的 1.1.0框的概要 IPO 图。图 4.12 对应 H 图上 1.1.0 框的概要 IPO 图 在概要 IPO 图中,没有指明输入处理输出三者之间的关系, 用它来进行下一步的设计是不可能的。故需要使用详细 IPO 图以指明输入处理输出三者之间的关系,其图形与概要 IPO 图一样,但输入、输出最好用具体
12、的介质和设备类型的图形表示。图 4.13 是销售/盘存系统中对应于 1.1.2 框的一张详细 IPO 图。图 4.13 对应于 H 图 1.1.2 框的详细 IPO 图3、利用 HIPO 进行迭代式细化设计在软件设计时,解决设计问题通常需要经历一个认识逐步发展的过程,并且对一些问题还要经过反复的考虑才可能达到比较满意的设计效果。我们称此为迭代式细化设计。HIPO 能很好地适应这一要求。图 4.14是利用 HIPO 进行迭代式细化设计的示意图。从图中可看到,把可视目录表和 IPO 图结合起来,反复交替地使用它们,可使得设计工作逐步深化,最终取得完满的设计结果。其实这正是自顶向下,逐步求精的结构化程序设计思想。HIPO 有自己的特点。首先,这一图形表达方法容易看懂。其次,HIPO 的适用范围很广,绝不限于详细设计。事实上,画可视目录表就是与概要设计密切相关的工作。如果利用它仅仅表达软件要达到的功能,则是需求分析中描述需求的很好的工具。因为 HIPO 是在开发过程中的表达工具,所以它又是开发文档的编制工具。开发完成后,HIPO 图就是很好的文档,而不必在设计完成以后,专门补写文档。图 4.14 利用 HIPO 进行迭代式细化设计
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。