流程圖ns圖pad圖pdlhipo_第1頁
流程圖ns圖pad圖pdlhipo_第2頁
流程圖ns圖pad圖pdlhipo_第3頁
流程圖ns圖pad圖pdlhipo_第4頁
流程圖ns圖pad圖pdlhipo_第5頁
已閱讀5頁,還剩4頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、流程圖、N-S圖、PAD圖、判定表、PDL、HIPO圖程序流程圖程序流程圖獨立于任何一種程序設計語言,比較直觀、清晰,易于學習掌握。但流程圖也存在一些嚴重的缺點。例如流程圖所使用的符號不夠規范,常常使用一些習慣性用法。特別是表示程序控制流程的箭頭可以不受任何約束,隨意轉移控制。這些現象顯然是與軟件工程化的要求相背離的。為了消除這些缺點,應對流程圖所使用的符號做出嚴格的定義,不允許人們隨心所欲地畫出各種不規范的流程圖。例如,為使用流程圖描述結構化程序,必須限制流程圖只能使用圖3.25所給出的五種基本控制結構。圖4.3 流程圖的基本控制結構任何復雜的程序流程圖都應由這五種基本控制結構組合或嵌套而成

2、。作為上述五種控制結構相互組合和嵌套的實例,圖示給出一個程序的流程圖。圖中增加了一些虛線構成的框,目的是便于理解控制結構的嵌套關系。顯然,這個流程圖所描述的程序是結構化的。圖4.4流程圖的基本控制結構N-S圖Nassi和Shneiderman 提出了一種符合結構化程序設計原則的圖形描述工具,叫做盒圖,也叫做N-S圖。為表示五種基本控制結構,在N-S圖中規定了五種圖形構件。參看圖4.5。為說明N-S圖的使用,仍用圖4.4給出的實例,將它用如圖4.6所示的N-S圖表示。如前所述,任何一個N-S圖,都是前面介紹的五種基本控制結構相互組合與嵌套的結果。當問題很復雜時,N-S圖可能很大。圖4.5 N-S

3、圖的五種基本控制結構圖4.6 N-S圖的實例PAD PAD是Problem Analysis Diagram的縮寫,它是日本日立公司提出,由程序流程圖演化來的,用結構化程序設計思想表現程序邏輯結構的圖形工具。現在已為ISO認可。PAD也設置了五種基本控制結構的圖式,并允許遞歸使用。圖4.7 PAD的基本控制結構做為PAD應用的實例,圖4.8給出了圖4.4程序的PAD表示。PAD所描述程序的層次關系表現在縱線上。每條縱線表示了一個層次。把PAD圖從左到右展開。隨著程序層次的增加,PAD逐漸向右展開。PAD的執行順序從最左主干線的上端的結點開始,自上而下依次執行。 每遇到判斷或循環,就自左而右進入

4、下一層,從表示下一層的縱線上端開始執行,直到該縱線下端,再返回上一層的縱線的轉入處。如此繼續,直到執行到主干線的下端為止。圖4.8 PAD實例 判定表當算法中包含多重嵌套的條件選擇時,用程序流程圖、N-S圖或PAD都不易清楚地描述。然而,判定表卻能清晰地表達復雜的條件組合與應做動作之間的對應關系。仍然使用圖4.4的例子。為了能適應判定表條件取值只能是"T"和"F"的情形,對原圖稍微做了些改動,把多分支判斷改為兩分支判斷,但整個圖邏輯沒有改變。見圖4.9。與圖3.31表示的流程圖對應的判定表如圖3.32所示。在表的右上半部分中列出所有條件,"&q

5、uot;表示該條件取值為真,""表示該條件取值為假,空白表示這個條件無論取何值對動作的選擇不產生影響。在判定表右下半部分中列出所有的處理,畫""表示要做這個動作,空白表示不做這個動作。判定表右半部的每一列實質上是一條規則,規定了與特定條件取值組合相對應的動作。圖4.9 不包含多分支結構的流程圖實例PDL(Program Design Language) PDL是一種用于描述功能模塊的算法設計和加工細節的語言。稱為設計程序用語言。它是一種偽碼。一般地,偽碼的語法規則分為"外語法"和"內語法"。外語法應當符合一般程序設

6、計語言常用語句的語法規則;而內語法可以用英語中一些簡單的句子、短語和通用的數學符號,來描述程序應執行的功能。使用PDL語言,可以做到逐步求精:從比較概括和抽象的PDL程序起,逐步寫出更詳細的更精確的描述。PDL就是這樣一種偽碼。它具有嚴格的關鍵字外語法,用于定義控制結構和數據結構,同時它的表示實際操作和條件的內語法又是靈活自由的,可使用自然語言的詞匯。下面舉一個例子,來看PDL的使用。 從上例可以看到,PDL 語言具有正文格式,很像一個高級語言。人們可以很方便地使用計算機完成PDL的書寫和編輯工作。PROCEDURE spellcheck IS 查找錯拼的單詞 BEGINsplit docum

7、ent into single words 把整個文檔分離成單詞lood up words in dictionary 在字典中查這些單詞display words which are not in dictionary 顯示字典中查不到的單詞create a new dictionary 造一新字典END spellcheck PDL作為一種用于描述程序邏輯設計的語言,具有以下特點:·有固定的關鍵字外語法,提供全部結構化控制結構、數據說明和模塊特征。屬于外語法的關鍵字是有限的詞匯集,它們能對PDL正文進行結構分割,使之變得易于理解。為了區別關鍵字,規定關鍵字一律大寫,其它單詞一律小

8、寫。·內語法使用自然語言來描述處理特性。內語法比較靈活,只要寫清楚就可以,不必考慮語法錯,以利于人們可把主要精力放在描述算法的邏輯上。·有數據說明機制,包括簡單的(如標量和數組)與復雜的(如鏈表和層次結構)的數據結構。·有子程序定義與調用機制,用以表達各種方式的接口說明。HIPO圖(Hierarchy plus Input Process Output)HIPO最初只用做文檔編寫的格式要求,隨后發展成比較有名的軟件設計手段。HIPO圖采用功能框圖和PDL來描述程序邏輯,它由兩部分組成:可視目錄表和IPO圖。可視目錄表給出程序的層次關系,IPO圖則為程序各部分提供具

9、體的工作細節。1、可視目錄表可視目錄表由體系框圖、圖例、描述說明三部分組成。(1)體系框圖又稱層次圖(H圖),是可視目錄表的主體,用它表明各個功能的隸屬關系。它是自頂向下逐層分解得到的,是一個樹形結構。它的頂層是整個系統的名稱和系統的概括功能說明;第二層把系統的功能展開,分成了幾個框;第二層功能進一步分解,就得到了第三層、第四層,直到最后一層。每個框內都應有一個名字,用以標識它的功能。還應有一個編號,以記錄它所在的層次及在該層次的位置。(2)圖例每一套HIPO圖都應當有一個圖例,即圖形符號說明。附上圖例,不管人們在什么時侯閱讀它都能對其符號的意義一目了然。 (3)描述說明它是對層次圖中每一框的

10、補充說明,在必須說明時才用,所以它是可選的。描述說明可以使用自然語言。例如,應用HIPO法對盤存/銷售系統進行分析。得到如圖4.10所示的工作流程圖。分析此工作流程圖,可得如圖3.34所示的可視目錄表。圖4.11(a)是系統的層次圖,圖4.11(b)是后面IPO圖的圖例,圖4.11(c)是描述說明。 圖4.10 盤存/銷售系統工作流程圖圖4.11 盤存/銷售系統的可視目錄表2、IPO圖IPO圖為層次圖中每一功能框詳細地指明輸入、處理及輸出。通常,IPO圖有固定的格式,圖中處理操作部分總是列在中間,輸入和輸出部分分別在其左邊和右邊。由于某些細節很難在一張IPO圖中表達清楚,常常把IPO圖又分為兩

11、部分,簡單概括的稱為概要IPO圖,細致具體一些的稱為詳細IPO圖。概要IPO圖用于表達對一個系統,或對其中某一個子系統功能的概略表達,指明在完成某一功能框規定的功能時需要哪些輸入,哪些操作和哪些輸出。圖4.12是表示銷售/盤存系統第二層的對應于H圖上的1.1.0框的概要IPO圖。圖4.12 對應H圖上1.1.0框的概要IPO圖在概要IPO圖中,沒有指明輸入處理輸出三者之間的關系, 用它來進行下一步的設計是不可能的。故需要使用詳細IPO 圖以指明輸入處理輸出三者之間的關系,其圖形與概要IPO圖一樣,但輸入、輸出最好用具體的介質和設備類型的圖形表示。圖4.13是銷售/盤存系統中對應于1.1.2框的一張詳細IPO圖。圖4.13 對應于H圖1.1.2框的詳細IPO圖3、利用HIPO進行迭代式細化設計在軟件設計時,解決設計問題通常需要經歷一個認識逐步發展的過程,并且對一些問題還要經過反復的考慮才可能達到比較滿意的設計效果。我們稱此為迭代式細化設計。HIPO能很好地適應這一要求。圖4.14是利用HIPO進行迭代式細化設計的示意圖。從圖中可看到,把可視目錄表和IPO圖結合起來,反復交替地使用它們,可使得設計工作逐步深化,最終取得完滿的設計結果。其實這正是自頂向下,逐步求精的結構化程序設計思想。HIPO有自己的特點。首先,這一圖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論