流程圖ns圖pad圖_第1頁(yè)
流程圖ns圖pad圖_第2頁(yè)
流程圖ns圖pad圖_第3頁(yè)
流程圖ns圖pad圖_第4頁(yè)
流程圖ns圖pad圖_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

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

3、圖的五種基本控制結(jié)構(gòu)圖4.6 N-S圖的實(shí)例PAD PAD是Problem Analysis Diagram的縮寫(xiě),它是日本日立公司提出,由程序流程圖演化來(lái)的,用結(jié)構(gòu)化程序設(shè)計(jì)思想表現(xiàn)程序邏輯結(jié)構(gòu)的圖形工具。現(xiàn)在已為ISO認(rèn)可。PAD也設(shè)置了五種基本控制結(jié)構(gòu)的圖式,并允許遞歸使用。圖4.7 PAD的基本控制結(jié)構(gòu)做為PAD應(yīng)用的實(shí)例,圖4.8給出了圖4.4程序的PAD表示。PAD所描述程序的層次關(guān)系表現(xiàn)在縱線上。每條縱線表示了一個(gè)層次。把PAD圖從左到右展開(kāi)。隨著程序?qū)哟蔚脑黾樱琍AD逐漸向右展開(kāi)。PAD的執(zhí)行順序從最左主干線的上端的結(jié)點(diǎn)開(kāi)始,自上而下依次執(zhí)行。 每遇到判斷或循環(huán),就自左而右進(jìn)入

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

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

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

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

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

9、體的工作細(xì)節(jié)。1、可視目錄表可視目錄表由體系框圖、圖例、描述說(shuō)明三部分組成。(1)體系框圖又稱層次圖(H圖),是可視目錄表的主體,用它表明各個(gè)功能的隸屬關(guān)系。它是自頂向下逐層分解得到的,是一個(gè)樹(shù)形結(jié)構(gòu)。它的頂層是整個(gè)系統(tǒng)的名稱和系統(tǒng)的概括功能說(shuō)明;第二層把系統(tǒng)的功能展開(kāi),分成了幾個(gè)框;第二層功能進(jìn)一步分解,就得到了第三層、第四層,直到最后一層。每個(gè)框內(nèi)都應(yīng)有一個(gè)名字,用以標(biāo)識(shí)它的功能。還應(yīng)有一個(gè)編號(hào),以記錄它所在的層次及在該層次的位置。(2)圖例每一套HIPO圖都應(yīng)當(dāng)有一個(gè)圖例,即圖形符號(hào)說(shuō)明。附上圖例,不管人們?cè)谑裁磿r(shí)侯閱讀它都能對(duì)其符號(hào)的意義一目了然。 (3)描述說(shuō)明它是對(duì)層次圖中每一框的

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論