基本介紹
- 中文名:Nassi Shneiderman圖
- 外文名:Nassi–Shneiderman diagram
- 簡稱:NS圖或盒圖
- 學科:計算機科學1
簡介,特點,圖示,程式方塊,分支方塊,測試循環方塊,
簡介
NS圖是在1972年由Isaac Nassi及其學生Ben Shneiderman提出。
依從上到下的設計,待處理的問題會分解成一些較小的副程式,最後只有簡單的敘述及控制流程結構,NS圖對應了上述的思維,利用嵌套的方塊來表示副程式。NS圖中沒有對應Goto指令的表示,和結構化編程中不使用GOTO的理念一致。NS圖的抽象層次接近結構化的代碼,若程式重寫,NS圖就需重新繪製,不過NS圖在簡述程式及高階設計時相當方便。
特點
1)NS圖形象直觀,功能域明確,具有良好的可見度;
2)很容易確定局部和全局數據的作用域;
3)不可能任意轉移控制;
4)很容易表示嵌套關係及模組的層次關係;
5)複雜度接近代碼本身,修改需要重畫整個圖;
6)它強制設計人員按SP方法進行思考並描述他的設計方案,因為除了表示幾種標準結構的符號之處,它不再提供其他描述手段,這就有效地保證了設計的質量,從而也保證了程式的質量。
圖示
程式方塊
程式方塊表示不需再分解的基本步驟,當流程進行到一程式方塊時,會進行程式方塊中的動作,然後移至下一個方塊。
分支方塊
分支方塊可分為二種,第一種是簡單的真/假分支方塊,對應if指令,會有二個對應的路徑,根據條件是否成立,決定後續運行的程式。
第二種是多重分支方塊,當使用類似C語言的switch指令,依表達式結果要從三個或三個以上的路徑中選擇一個時使用,此方塊一般會有許多對應的選項和其對應的子程式。
測試循環方塊
測試循環方塊允許程式運行一個或一組特定程式,一直到一特定條件滿足為止。測試循環方塊可分為二部分:左側長條狀部分和方塊上方(或下方的)的測試條件部分相連辺,測試循環方塊內部的方塊則是循環中可能要運行多次的程式。
測試循環方塊可分為二種:先測試的循環方塊及後測試的循環方塊。二者的差異是條件判斷次序的先後。
在先測試的循環方塊中,在運行循環前會先判斷特定條件是否成立,若不成立,才運行循環內的程式,之後再重新判斷條件是否成立,若不成立,再運行循環內的程式……,只要特定條件成立,就結束循環內的程式,繼續運行後續的程式。由於在循環開始時就判斷條件是否成立,有可能在循環內程式完全未運行過的情形下就結束循環,繼續運行後續程式。
後測試的循環方塊會先運行一次循環內的程式,之後判斷特定條件是否成立,若不成立,才運行循環內的程式……。後測試的循環方塊中,循環內的程式至少會被運行一次。