软件工程中过程设计的工具

描述程序处理过程的工具称为过程设计工具,它们可以分为图形、表格、和语言3类。

不论是哪类工具,对它们的基本要求都是能提供对设计的无歧义的描述。

即:应该能指明控制流程、处理功能、数据组织,以及其他方面的实现细节,从而在编码阶段能把对设计的描述直接翻译成程序代码。

主要有以下六种:

程序流程图

从20世纪40年代末到70年代中期,程序流程图一直是软件过程设计的主要工具。
优点:便于掌握
缺点:

  • 它不是逐步求精的好工具。
  • 程序员可以随意转移。
  • 程序流程图不易表示数据结构

也称为程序框图,它使用以下五种基本控制结构。

程序流程图中常用的符号:

程序流程图举例:使用程序流程图,描述并打印N的阶乘。

N-S图

出于要有一种不允许违背结构化程序设计精神的图形工具的考虑,Nassi和Shneiderman提出了盒图,又称为N-S图。它有下述特点:

  • 功能域(即,一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。
  • 不可能任意转移控制。
  • 很容易确定局部和全程数据的作用域。
  • 很容易表现嵌套关系,也可以表示模块的层次结构。

对五种基本控制结构,由五种图形构件表示。

 

盒图举例:将下列伪代码转换成盒图。 

PAD图 —— Problem  Analysis  Diagram

PAD由日本日立公司(二村良彦氏)1973年发明以后,已得到一定程度的推广。

它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。

它即克服了传统的流程图不能清晰表现程序结构的缺点,又不像N-S图那样受到把全部程序约束在一个方框内的限制,这就是其优势所在。

PAD的特点:

  • 结构清晰,层次分明,易读。
  • 支持逐步求精的设计思想。
  • 容易将PAD自动转换为高级语言源程序。

PAD的基本符号:

将下列伪代码转换成PAD:

判定表

当算法中包含多重嵌套的条件选择时,用程序流程图、盒图、PAD图或过程设计语言(PDL)都不易清楚地描述。

然而判定表却能够清晰地表示复杂的条件组合与应做的动作之间的对应关系。

判定表用于以紧凑的形式描述复杂的逻辑。判定表与if-else、switch-case语句类似,将条件判断与执行的动作联系起来。

 判定表举例:

 

判定树

判定树是判定表的变种,它也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。

判定树的优点在于,它的形式简单到不需任何说明,一眼就可以看出其含义,因此易于掌握和使用。

多年来判定树一直受到人们的重视,是一种比较常用的系统分析和设计的工具。

判定树举例:用判定树表示计算行李费的算法。

PDL伪代码

PDL(Program Description Language)也称为伪码,这是一个笼统的名称,它是用正文形式表示数据和处理过程的设计工具。

一般说来PDL是一种“混杂”语言,它使用一种语言(通常是某种自然语言)的词汇,同时却使用另一种语言(某种结构化的程序设计语言)的语法。

PDL伪代码举例:

procedure 判定质数
    declare x,n,j as 整型简单变量
    从键盘读入x
    将变量n赋值为x/2
    将变量i赋值为2
    loop while i<=n
        if x被i整除
           中途结束循环
        end if
        变量i加1
    end loop
    if i>=n+1
        输出:x是质数
    else
        输出:x不是质数
    end if
End 判定质数

过程设计工具的比较

  • 12
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值