N-S图讲述——软件质量保证与测试

N-S图简介

1972年,美国学者I.Nassi 和 B.Shneiderman提出了一种在 流程图中完全去掉流程线,全部算法写在一个矩形阵内,在框内还可以包含其他框的流程图形式。即由一些基本的框组成一个大的框,这种流程图又称为N-S结构流程图(以两个人的名字的头一个字母组成)。N-S图包括顺序、选择和循环三种基本结构。
NS图类似 流程图,但所不同之处是NS图可以表示程序的结构。 DIN66261是NS图的相关标准。
依从上到下的设计,待处理的问题会分解成一些较小的副程序,最后只有简单的叙述及控制流程结构,NS图对应了上述的思维,利用嵌套的方块来表示副程序。NS图中没有对应Goto指令的表示,和 结构化编程中不使用GOTO的理念一致。NS图的抽象层次接近结构化的代码,若程序重写,NS图就需重新绘制,不过NS图在简述程序及高级设计时相当方便。
NS图几乎是流程图的 同构,任何的NS图都可以转换为流程图,而大部分的流程图也可以转换为NS图。其中只有像 Goto指令或是 C语言中针对循环的break及continue指令无法用NS图表示。

N-S图特点

1)NS图形象直观, 功能域明确,具有良好的可见度;
2)很容易确定局部和全局数据的作用域;
3)不可能任意转移控制;
4)很容易表示嵌套关系及模块的层次关系;
5)复杂度接近代码本身,修改需要重画整个图;
6)它强制设计人员按SP方法进行思考并描述他的设计方案,因为除了表示几种标准结构的符号之处,它不再提供其他描述手段,这就有效地保证了设计的质量,从而也保证了程序的质量。

N-S图结构

N-S图1.程序方块

程序方块表示不需再分解的基本步骤,当流程进行到一程序方块时,会进行程序方块中的动作,然后移至下一个方块。
图1.程序方块 图1.程序方块

N-S图2.分支方块

分支方块可分为二种:
1)第一种是简单的真/假分支方块,对应if指令,会有二个对应的路径,根据条件是否成立,决定后续运行的程序;
图2.真/假的分支方块 图2.真/假的分支方块
2)第二种是多重分支方块,当使用类似C语言的switch指令,依表达式结果要从三个或三个以上的路径中选择一个时使用,此方块一般会有许多对应的选项和其对应的子程序。
图3.多重分支方块 图3.多重分支方块

N-S图3.测试循环方块

测试循环方块允许程序运行一个或一组特定程序,一直到一特定条件满足为止。测试循环方块可分为二部分:左侧长条状部分和方块上方(或下方的)的测试条件部分相连辺,测试循环方块内部的方块则是循环中可能要运行多次的程序。
测试循环方块可分为二种:先测试的循环方块及后测试的循环方块。二者的差异是条件判断次序的先后。
1)在先测试的循环方块中,在运行循环前会先判断特定条件是否成立,若成立,不运行循环内的程序,若不成立,则运行循环内的程序……,只要特定条件成立,就结束循环内的程序,继续运行后续的程序。由于在循环开始时就判断条件是否成立,有可能在循环内程序完全未运行过的情形下就结束循环,继续运行后续程序。
图4.先测试的循环方块 图4.先测试的循环方块
2)后测试的循环方块会先运行一次循环内的程序,之后判断特定条件是否成立,若不成立,才运行循环内的程序……。后测试的循环方块中,循环内的程序至少会被运行一次 [1]  
图5.后测试的循环方块 图5.后测试的循环方块

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值