N-S圖

N-S圖

N-S圖,也被稱為盒圖或NS圖(Nassi Shneiderman圖)。是結構化編程中的一種可視化建模

基本介紹

  • 中文名:N-S圖
  • 外文名:Nassi–Shneiderman diagram
  • 特點:功能域明確等
  • 別稱:盒圖或CHAPIN圖
  • 提出學者:I.Nassi 和 B.Shneiderman
簡介,特點,結構,1.程式方塊,2.分支方塊,3.測試循環方塊,

簡介

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圖表示。

特點

1)NS圖形象直觀,功能域明確,具有良好的可見度;
2)很容易確定局部和全局數據的作用域;
3)不可能任意轉移控制;
4)很容易表示嵌套關係及模組的層次關係;
5)複雜度接近代碼本身,修改需要重畫整個圖;
6)它強制設計人員按SP方法進行思考並描述他的設計方案,因為除了表示幾種標準結構的符號之處,它不再提供其他描述手段,這就有效地保證了設計的質量,從而也保證了程式的質量。

結構

1.程式方塊

程式方塊表示不需再分解的基本步驟,當流程進行到一程式方塊時,會進行程式方塊中的動作,然後移至下一個方塊。
圖1.程式方塊圖1.程式方塊

2.分支方塊

分支方塊可分為二種:
1)第一種是簡單的真/假分支方塊,對應if指令,會有二個對應的路徑,根據條件是否成立,決定後續運行的程式;
圖2.真/假的分支方塊圖2.真/假的分支方塊
2)第二種是多重分支方塊,當使用類似C語言的switch指令,依表達式結果要從三個或三個以上的路徑中選擇一個時使用,此方塊一般會有許多對應的選項和其對應的子程式。
圖3.多重分支方塊圖3.多重分支方塊

3.測試循環方塊

測試循環方塊允許程式運行一個或一組特定程式,一直到一特定條件滿足為止。測試循環方塊可分為二部分:左側長條狀部分和方塊上方(或下方的)的測試條件部分相連辺,測試循環方塊內部的方塊則是循環中可能要運行多次的程式。
測試循環方塊可分為二種:先測試的循環方塊及後測試的循環方塊。二者的差異是條件判斷次序的先後。
1)在先測試的循環方塊中,在運行循環前會先判斷特定條件是否成立,若成立,不運行循環內的程式,若不成立,則運行循環內的程式……,只要特定條件成立,就結束循環內的程式,繼續運行後續的程式。由於在循環開始時就判斷條件是否成立,有可能在循環內程式完全未運行過的情形下就結束循環,繼續運行後續程式。
圖4.先測試的循環方塊圖4.先測試的循環方塊
2)後測試的循環方塊會先運行一次循環內的程式,之後判斷特定條件是否成立,若不成立,才運行循環內的程式……。後測試的循環方塊中,循環內的程式至少會被運行一次。
圖5.後測試的循環方塊圖5.後測試的循環方塊

相關詞條

熱門詞條

聯絡我們