程式流程圖、PAD 圖與NS 圖
程式流程圖
程式流程圖透過符號和線條以視覺化方式描述程式邏輯流程及其執行的交互作用。其獨立於任何程式語言,更直覺、更清晰、更容易學習。但也有部分嚴重限制。例如,符號通常並非標準化,且通常由使用者根據其慣用方式來選擇。具體而言,表示程式控制流程的箭頭形狀不受任何方式約束,這代表它們可以自由轉移控制。這些顯然背離軟體工程的要求。為消除這些缺點,程式流程圖所使用的符號應嚴格指定,不允許人們繪製不符規範的程式流程圖。例如,應該標準化為只能應用 5 種基本控制結構,以便程式流程圖能夠描述結構化程式。
圖 1 流程圖基本控制結構
任何複雜程式流程圖都應該由這 5 個基本控制結構組成或嵌套,以便商業和技術使用者能夠針對程式如何運作和組合獲得共同的了解。圖表可加入部分虛線方框,以便使控制結構的嵌套關係更容易了解。此流程圖所描述的內容顯然是結構化程式。
圖 2 複雜程式流程圖範例
N-S 圖
Nassi 和 Shneiderman 提出符合結構化程式設計原理的圖表描述工具,簡稱 N-S 圖、方框圖或結構圖,因為它顯示了程式的結構。N-S 圖指定了 5 個圖形組件來表示五種基本控制結構。請參考圖 3。
圖 3 N-S 圖的五種基本控制結構
為說明 N-S 圖的使用方式,以圖 2 的範例為例,透過圖 4 的 N-S 圖來繪製程式。
圖 4 N-S 圖範例
如上所述,任何 N-S 圖都是前文所述五種基本控制結構的組合和嵌套。按照由上而下的流程,圖表將整個流程劃分為越來越小的子流程。在極其複雜的程式,N-S 圖可能會相當龐大。
PAD 圖
PAD 是問題分析圖的縮寫,由日本日立公司提出。其由程式流程圖演變而來,這種圖表工具運用結構化設計概念來呈現程式邏輯結構。目前已獲 ISO 認可。PAD 也設定了五種基本控制結構模式,允許遞歸使用。
圖 5 PAD 的基本控制結構
作為 PAD 應用範例,圖 1 展示 PAD 結構的表示形式。PAD 顯示的程式層次關係由垂直線佈置,每一條垂直線標示一層。PAD 從左到右,將程式一層又一層展開,進而將問題轉化為清晰、有組織的視覺化內容。
PAD 從左主幹上端的連接處開始,從上到下依序執行。每當遇到循環或決策流程時,就會進入下一層,由左至右從代表下一層的左側第一條主線開始執行,直到線的最底層,然後返回上一層線的轉移點。就這樣不斷展開,直到主線最底端。
圖 6 PAD 範例