这周的学习内容:这周学习了NS图和PAD图,流程图由一些特定意义的图形、流程线及简要的文字说明构成,它能清晰明确地表示程序的运行过程。在使用过程中,人们发现流程线不一定是必需的,为此,人们设计了一种新的流程图,它把整个程序写在一个大框图内,这个大框图由若干个小的基本框图构成,这种流程图简称N-S图。NS图形象直观,具有良好的可见度。例如循环的范围、条件语句的范围都是一目了然的,所以容易理解设计意图,为编程、复查、选择测试用例、维护都带来了方便;NS图简单、易学易用,可用于软件教育和其他方面;功能域(即某一个特定控制结构的作用域)有明确的规定,并且可以很直观地从N-S图上看出来;它的控制转移不能任意规定,必须遵守结构化程序设计的要求;很容易确定局部数据和全局数据的作用域;很容易表现嵌套关系,也可以表示模块的层次结构。PAD是问题分析图(Problem Analysis Diagram)的英文缩写,自1974年由日本的二村良彦等人提出的又一种主要用于描述软件详细设计的图形表示工具。与方框图一样,PAD图也只能描述结构化程序允许使用的几种基本结果。发明以来,已经得到一定程度的推广。它用二维树形结构的图表示程序的控制流,以PAD图为基础,遵循机械的走树(Tree Walk)规则就能方便地编写出程序,用这种图转换为程序代码比较容易。
老师给了我们一道题,让画出下列伪程序的程序流程图和盒图 START IF p THEN WHILE q DO F END DO ELSE BLOCK G N END BLOCK END IF STOP。下面是我自己画的图,和老师给的答案有些不同。
这周的阅读内容:
PAD图的优点
1. 使用表示结构优化控制结构的PAD符号所设计出来的程序必然是程序化程序
2. PAD图所描述的程序结构十分清晰。图中最左边的竖线是程序的主线,即第一层控制结构。随着程序层次的增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线。PAD图中竖线的总条数就是程序的层次数;
3. 用PAD图表现程序逻辑,易读、易懂、易记。PAD图是二维树型结构的图形,程序从图中最左边上端的结点开始执行,自上而下,从左到右顺序执行;
4. 很容易将PAD图转换成高级程序语言源程序,这种转换可由软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性和软件生产率。
5. 既可用于表示程序逻辑,也可用于描述数据结构
6. PAD图的符号支持自顶向下、逐步求精方法的使用。开始时设计者可以定义一个抽象程序,随着设计工作的深入而使用“def”符号逐步增加细节,直至完成详细设计。
PAD图是面向高级程序设计语言的,为FORTRAN,COBOL和PASCAL等每种常用的高级程序设计语言都提供了一整套相应的图形符号。由于每种控制语句都有一个图形符号与之对应,显然将PAD图转换成与之对应的高级语言程序比较容易。
PAD是一种程序结构可见性好、结构唯一、易于编制、易于检查和易于修改的详细设计表现方法。用PAD可以消除软件开发过程中设计与制作的分离,也可消除制作过程中的“属人性”。虽然目前仍需要由人来编制程序,一旦开发的PAD编程自动化系统实现的话,计算机就能从PAD自动编程,到那时程序逻辑就是软件开发过程中人工制作的最终产品。显然在开发时间上大大节省,开发质量上将会大大提高。
缺点:不如流程图易于执行。
NS图的优点:
首先,它强制设计人员按SP方法进行思考并描述他的设计方案,因为除了表示几种标准结构的符号之处,它不再提供其他描述手段,这就有效地保证了设计的质量,从而也保证了程序的质量;第二,NS图形象直观,具有良好的可见度。例如循环的范围、条件语句的范围都是一目了然的,所以容易理解设计意图,为编程、复查、选择测试用例、维护都带来了方便;第三,NS图简单、易学易用,可用于软件教育和其他方面。
NS图的缺点:
手工修改比较麻烦,这是有些人不用它的主要原因。