第4章-詳細設(shè)計課件_第1頁
第4章-詳細設(shè)計課件_第2頁
第4章-詳細設(shè)計課件_第3頁
第4章-詳細設(shè)計課件_第4頁
第4章-詳細設(shè)計課件_第5頁
已閱讀5頁,還剩99頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第4章詳細設(shè)計第4章詳細設(shè)計1第4章詳細設(shè)計4.1詳細設(shè)計概述4.2面向數(shù)據(jù)流的詳細設(shè)計方法4.3面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法4.4小結(jié)第4章詳細設(shè)計4.1詳細設(shè)計概述24.1詳細設(shè)計概述4.1.1詳細設(shè)計的任務(wù)

確定每個模塊的具體算法。確定每個模塊的內(nèi)部數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫的物理結(jié)構(gòu)。確定模塊接口的具體細節(jié)。為每個模塊設(shè)計一組測試用例。編寫文檔,參加復(fù)審。4.1詳細設(shè)計概述4.1.1詳細設(shè)計的任務(wù)3主要任務(wù):編寫詳細設(shè)計說明書為此,設(shè)計人員應(yīng):(1)確定每個模塊的算法,用工具表達算法的過程,寫出模塊的詳細過程性描述。(2)確定每一模塊的數(shù)據(jù)及數(shù)據(jù)庫結(jié)構(gòu)。(3)確定模塊接口細節(jié)。(4)準備測試用例。詳細設(shè)計是編碼的先導(dǎo)。主要任務(wù):編寫詳細設(shè)計說明書44.1.2詳細設(shè)計工具:(1)圖形工具流程圖N-S圖(盒圖)問題分析圖(PAD)(2)語言工具(3)表格工具4.1.2詳細設(shè)計工具:5

1.程序流程圖程序流程圖是最早出現(xiàn)且使用較為廣泛的算法表達工具之一,能夠有效地描述問題求解過程中的程序邏輯結(jié)構(gòu)。程序流程圖中經(jīng)常使用的基本符號:(a)一般處理框;(b)輸入/輸出框;(c)判斷框;(d)流程線;(e)起止框1.程序流程圖6第4章-詳細設(shè)計課件7

程序流程圖的優(yōu)點:對程序的控制流程描述直觀、清晰,使用靈活,便于閱讀和掌握。

程序流程圖的缺點:可以隨心所欲地使用流程線,容易造成程序控制結(jié)構(gòu)的混亂,與結(jié)構(gòu)化程序設(shè)計的思想相違背。難以描述逐步求精的過程,容易導(dǎo)致程序員過早考慮程序的控制流程,而忽略程序全局結(jié)構(gòu)的設(shè)計。難以表示系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)。程序流程圖的優(yōu)點:對程序的控制流程描述直觀、清晰,使8

2.N-S圖

N-S圖又稱為盒圖,是為了保證結(jié)構(gòu)化程序設(shè)計而由Nassi和Shneiderman共同提出的一種圖形工具。使用矩形框表示清晰地表達結(jié)構(gòu)中的嵌套及模塊的層次關(guān)系。特點:沒有流程線,不可能隨意轉(zhuǎn)移控制2.N-S圖9圖5.1N-S圖中基本控制結(jié)構(gòu)的表示符號順序結(jié)構(gòu);(b)分支結(jié)構(gòu);(c)多分支CASE結(jié)構(gòu);(d)while-do結(jié)構(gòu);(e)do-until結(jié)構(gòu);(f)調(diào)用模塊A圖5.1N-S圖中基本控制結(jié)構(gòu)的表示符號10用方框圖代替?zhèn)鹘y(tǒng)的流程圖描述五種基本控制結(jié)構(gòu)的圖形構(gòu)件(1)順序型BAC用方框圖代替?zhèn)鹘y(tǒng)的流程圖BAC11(2)選擇型(If–then–else)If–then–elseIf–thenABF條件TAFT條件then–部分then–部分else–部分(2)選擇型(If–then–else)ABF條件12(3)多分支選擇型(CASE型)A1值1A2An........CASE條件值2值nA1值1A2An........CASE條件值2值n13(4)WHILE重復(fù)型(5)DO-UNTIL重復(fù)型S(循環(huán)體)WHILEPS(循環(huán)體)REPEATUNTILP(先測試循環(huán))(后測試循環(huán))循環(huán)條件SWHILEPSREPEATUNTILP(先測試循環(huán)14(6)并行結(jié)構(gòu)A1A2An....(6)并行結(jié)構(gòu)A1A2An....15N-S圖的問題當(dāng)所描述的程序嵌套層次較多時,N-S圖的內(nèi)層方框會越畫越小影響可讀性不易修改N-S圖的問題當(dāng)所描述的程序嵌套層次較多時,16

3.PAD圖

PAD(ProblemAnalysisDiagram,問題分析圖)是繼程序流程圖和N-S圖后,由日立公司在20世紀70年代提出。只能用于結(jié)構(gòu)化程序的描述采用易于使用的樹型結(jié)構(gòu)圖形符號利于清晰地表達程序結(jié)構(gòu)利于修改3.PAD圖17基本控制結(jié)構(gòu):(1)順序結(jié)構(gòu)(2)選擇結(jié)構(gòu)

ABCABTF條件基本控制結(jié)構(gòu):ABCABTF條件18(3)重復(fù)結(jié)構(gòu)

WHILE

CSUNTIL

CS(先測試循環(huán))(后測試循環(huán))等價的PASCAL語言:REPEATCUNTILS等價的PASCAL語言:WHILECDOS(3)重復(fù)結(jié)構(gòu)19(4)多分支選擇型(CASE型)

A1CASE值1值2值nA2An......條件(4)多分支選擇型(CASE型)20

PAD描述的示例

PAD描述的示例21

對應(yīng)于增量型循環(huán)結(jié)構(gòu)

fori:=n1ton2stepn3do

在PAD中有相應(yīng)的循環(huán)控制結(jié)構(gòu)PAD的擴充控制結(jié)構(gòu) 對應(yīng)于增量型循環(huán)結(jié)構(gòu)PAD的擴充控制結(jié)構(gòu)22PAD圖主要優(yōu)點:(1)程序結(jié)構(gòu)層次清晰,邏輯結(jié)構(gòu)關(guān)系直觀、易讀、易記、易修改。(2)為多種常用高級語言提供了相應(yīng)的圖形符號,每種控制語句都與一個專門的圖形符號相對應(yīng),易于PAD圖向高級語言源程序轉(zhuǎn)換。(3)支持自頂向下、逐步求精的設(shè)計過程。(4)既能夠描述程序的邏輯結(jié)構(gòu),又能夠描述系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)。PAD圖主要優(yōu)點:23圖5.2三種詳細設(shè)計中使用的圖形工具示例采用程序流程圖描述計算應(yīng)發(fā)工資模塊;(b)采用N-S圖描述計算應(yīng)發(fā)工資模塊;(c)采用PAD圖描述計算應(yīng)發(fā)工資模塊圖5.2三種詳細設(shè)計中使用的圖形工具示例24

4.PDL語言PDL(ProcessDesignLanguage)語言即過程設(shè)計語言,是一種用于描述程序算法和定義數(shù)據(jù)結(jié)構(gòu)的偽代碼。是一種兼有自然語言和結(jié)構(gòu)化程序設(shè)計語言語法的“混合型”語言。PDL語言與結(jié)構(gòu)化語言的主要區(qū)別在于:PDL語法結(jié)構(gòu)更加嚴格并且處理過程描述更加具體詳細4.PDL語言25PDL語言主要特點:(1)各種定義語句及控制結(jié)構(gòu)的表達都具有嚴格的語法形式,使程序結(jié)構(gòu)、數(shù)據(jù)說明等更加清晰。(2)提供了數(shù)據(jù)說明機制,可用于定義簡單及復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。(3)提供了模塊的定義和調(diào)用機制,方便了程序模塊化的表達。PDL語言主要特點:26

PDL語言的主要定義語句及基本控制結(jié)構(gòu):定義語句

(1)數(shù)據(jù)定義:DECLARE屬性變量名,…屬性包括:整型、實型、雙精度型、字符型、指針、數(shù)組及結(jié)構(gòu)等類型。PDL語言的主要定義語句及基本控制結(jié)構(gòu):27(2)模塊定義:PROCEDURE模塊名(參數(shù))

RETURNEND…(2)模塊定義:…28基本控制結(jié)構(gòu)(1)順序結(jié)構(gòu):順序結(jié)構(gòu)的語句序列采用自然語言進行描述。 語句序列S1 語句序列S2

語句序列Sn…基本控制結(jié)構(gòu)…29(2)選擇結(jié)構(gòu):①IF-ELSE結(jié)構(gòu)IF條件 IF條件 語句序列S1 或 語句序列SELSE ENDIF 語句序列S2ENDIF(2)選擇結(jié)構(gòu):30②多分支IF結(jié)構(gòu)IF條件1語句序列S1ELSEIF條件2語句序列S2ELSE語句序列SnENDIF…②多分支IF結(jié)構(gòu)…31③CASE結(jié)構(gòu)CASE表達式OFCASE取值1語句序列S1CASE取值2語句序列S2

ELSE語句序列SnENDCASE…③CASE結(jié)構(gòu)…32(3)循環(huán)結(jié)構(gòu):①FOR結(jié)構(gòu)FOR循環(huán)變量=初值TO終值 循環(huán)體SENDFOR②WHILE結(jié)構(gòu)WHILE條件 循環(huán)體SENDWHILE(3)循環(huán)結(jié)構(gòu):33③UNTIL結(jié)構(gòu)REPEAT 循環(huán)體SUNTIL條件輸入/輸出語句①輸入語句:GET(輸入變量表)②輸出語句:PUT(輸出變量表)模塊調(diào)用語句CALL模塊名(參數(shù))③UNTIL結(jié)構(gòu)34示例:拼詞檢查程序PROCEDUREspellcheckIS

BEGIN

splitdocumentintosinglewords

lookupwordsindictionary

displaywordswhicharenotindictionary

createanewdictionary

ENDspellcheck示例:拼詞檢查程序PROCEDUREspellchec35使用PDL語言,逐步求精:PROCEDUREspellcheckBEGIN

--*splitdocumentintosinglewords

LOOPgetnextword

addwordtowordlistinsortorder

EXITWHENallwordsprocessed

ENDLOOP

--*lookupwordsindictionary

LOOPgetwordfromwordlist

使用PDL語言,逐步求精:PROCEDUREspellch36 IFwordnotindictionaryTHEN

--*displaywordsnotindictionary

displayword promptonuserterminal

IFuserresponsesayswordOKTHEN

addwordtogoodwordlist

ELSE

addwordtobadwordlist

ENDIF

ENDIF

EXITWHENallwordsprocessed

ENDLOOP IFwordnotindictionary37--*createanewwordsdictionary

dictionary:=

mergedictionaryandgoodwordlistENDspellcheck--*createanewwordsdic385.1.3詳細設(shè)計的原則詳細設(shè)計階段應(yīng)遵循下列原則:(1)將保證程序的清晰度放在首位。結(jié)構(gòu)清晰的程序易于理解和修改,會大大減少錯誤發(fā)生的機率,除了對執(zhí)行效率有嚴格要求的實時系統(tǒng)外,通常在詳細設(shè)計過程中應(yīng)優(yōu)先考慮程序的清晰度,而將程序的效率放在第二位。5.1.3詳細設(shè)計的原則39(2)設(shè)計過程中應(yīng)采用逐步細化的實現(xiàn)方法。從體系結(jié)構(gòu)設(shè)計到詳細設(shè)計,是一個細化模塊描述的過程,由粗到細、分步進行的細化有助于保證所生成程序的可靠性在詳細設(shè)計中特別適合采用逐步細化的方法。在對程序進行細化的過程中,還應(yīng)同時對數(shù)據(jù)描述進行細化。(2)設(shè)計過程中應(yīng)采用逐步細化的實現(xiàn)方法。40(3)選擇適當(dāng)?shù)谋磉_工具。圖形工具便于設(shè)計人員與用戶的交流,而PDL語言便于將詳細設(shè)計的結(jié)果轉(zhuǎn)換為源程序。設(shè)計人員應(yīng)根據(jù)具體情況選擇適當(dāng)?shù)谋磉_工具。(3)選擇適當(dāng)?shù)谋磉_工具。415.1.4詳細設(shè)計說明書

詳細設(shè)計說明書是詳細設(shè)計階段最重要的技術(shù)文檔。體系結(jié)構(gòu)設(shè)計說明書側(cè)重于軟件結(jié)構(gòu)的規(guī)定詳細設(shè)計說明書側(cè)重于對模塊實現(xiàn)具體細節(jié)的描述。詳細設(shè)計說明書可以看作是在體系結(jié)構(gòu)設(shè)計說明書所確定的系統(tǒng)總體結(jié)構(gòu)的基礎(chǔ)上,對其中各個模塊實現(xiàn)過程的進一步描述和細化。5.1.4詳細設(shè)計說明書42(1)引言:用于說明編寫本說明書的目的、背景,定義所用到的術(shù)語和縮略語,以及列出文檔中所引用的參考資料等。(2)總體設(shè)計:用于給出軟件系統(tǒng)的體系結(jié)構(gòu)圖。(3)模塊描述:依次對各個模塊進行詳細的描述,主要包括模塊的功能和性能,實現(xiàn)模塊功能的算法,模塊的輸入及輸出,模塊接口的詳細信息等。詳細設(shè)計說明書包括的內(nèi)容(1)引言:用于說明編寫本說明書的目的、背景,定義435.2面向數(shù)據(jù)流的詳細設(shè)計方法

面向數(shù)據(jù)流的詳細設(shè)計方法關(guān)鍵技術(shù):(1)設(shè)計過程中采用了自頂向下,逐步細分的方法。(2)采用DO-UNTIL循環(huán)結(jié)構(gòu)和多分支選擇結(jié)構(gòu)(DO-CASE)兩種補充結(jié)構(gòu)。5.2面向數(shù)據(jù)流的詳細設(shè)計方法面向數(shù)據(jù)流的詳細設(shè)計44(1)設(shè)計過程中采用了自頂向下,逐步細分的方法:

面向數(shù)據(jù)流的設(shè)計:自頂向下逐步細分的方法(1)設(shè)計過程中采用了自頂向下,逐步細分的方法:45在體系結(jié)構(gòu)設(shè)計中,將需要處理的問題分解細化為一個由多個模塊組成的層次結(jié)構(gòu)的軟件系統(tǒng)在詳細設(shè)計中,將系統(tǒng)中的每個模塊逐步分解細化為一系列的具體處理步驟在體系結(jié)構(gòu)設(shè)計中,將需要處理的問題分解細化為一個由多個模塊組46所有模塊的實現(xiàn)都只采用單入口、單出口的三種基本控制結(jié)構(gòu)在面向數(shù)據(jù)流的詳細設(shè)計中,為了保證程序結(jié)構(gòu)的清晰度,通常限制只能采用三種基本控制結(jié)構(gòu)來構(gòu)造程序:順序結(jié)構(gòu)選擇結(jié)構(gòu)(IF-THEN-ELSE型)DO-WHILE循環(huán)結(jié)構(gòu)所有模塊的實現(xiàn)都只采用單入口、單出口的三種基本控制結(jié)47圖5.3三種基本控制結(jié)構(gòu)的流程圖(a)順序結(jié)構(gòu);(b)選擇結(jié)構(gòu);(c)DO-WHILE循環(huán)結(jié)構(gòu)圖5.3三種基本控制結(jié)構(gòu)的流程圖48(2)采用DO-UNTIL循環(huán)結(jié)構(gòu)和多分支選擇結(jié)構(gòu)(DO-CASE)兩種補充結(jié)構(gòu)。只允許使用三種基本控制結(jié)構(gòu)的詳細設(shè)計通常被稱為經(jīng)典的結(jié)構(gòu)程序設(shè)計,而加入了兩種補充結(jié)構(gòu)的詳細設(shè)計則被稱為擴展的結(jié)構(gòu)程序設(shè)計。面向數(shù)據(jù)流的詳細設(shè)計中并非完全禁止GOTO語句的使用,例如限制在同一控制結(jié)構(gòu)內(nèi)部的GOTO語句并不會破壞程序的結(jié)構(gòu)化特點。(2)采用DO-UNTIL循環(huán)結(jié)構(gòu)和多分支選擇結(jié)49圖5.4兩種補充結(jié)構(gòu)的流程圖(a)DO-UNTIL循環(huán)結(jié)構(gòu);(b)多分支選擇結(jié)構(gòu)圖5.4兩種補充結(jié)構(gòu)的流程圖50優(yōu)點:自頂向下、逐步細分保證了程序的可靠性而基本控制結(jié)構(gòu)的使用則保證了程序的清晰易懂缺點:程序結(jié)構(gòu)的清晰往往要以存儲容量的增加和運行效率的降低為代價優(yōu)點:51作業(yè)畫出與下列偽代碼書寫的程序所對應(yīng)的N-S圖和PAD圖。K=n;FLAG=1WHILEFLAG>0DO K=K-1 FLAG=0 FORJ=1TOKDO IFL(J)>L(J+1)THENDO L(J)=L(J+1) FLAG=1 ENDDO ENDFORENDWHILE作業(yè)畫出與下列偽代碼書寫的程序所對應(yīng)的N-S圖和PAD圖。52第4章詳細設(shè)計第4章詳細設(shè)計53第4章詳細設(shè)計4.1詳細設(shè)計概述4.2面向數(shù)據(jù)流的詳細設(shè)計方法4.3面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法4.4小結(jié)第4章詳細設(shè)計4.1詳細設(shè)計概述544.1詳細設(shè)計概述4.1.1詳細設(shè)計的任務(wù)

確定每個模塊的具體算法。確定每個模塊的內(nèi)部數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫的物理結(jié)構(gòu)。確定模塊接口的具體細節(jié)。為每個模塊設(shè)計一組測試用例。編寫文檔,參加復(fù)審。4.1詳細設(shè)計概述4.1.1詳細設(shè)計的任務(wù)55主要任務(wù):編寫詳細設(shè)計說明書為此,設(shè)計人員應(yīng):(1)確定每個模塊的算法,用工具表達算法的過程,寫出模塊的詳細過程性描述。(2)確定每一模塊的數(shù)據(jù)及數(shù)據(jù)庫結(jié)構(gòu)。(3)確定模塊接口細節(jié)。(4)準備測試用例。詳細設(shè)計是編碼的先導(dǎo)。主要任務(wù):編寫詳細設(shè)計說明書564.1.2詳細設(shè)計工具:(1)圖形工具流程圖N-S圖(盒圖)問題分析圖(PAD)(2)語言工具(3)表格工具4.1.2詳細設(shè)計工具:57

1.程序流程圖程序流程圖是最早出現(xiàn)且使用較為廣泛的算法表達工具之一,能夠有效地描述問題求解過程中的程序邏輯結(jié)構(gòu)。程序流程圖中經(jīng)常使用的基本符號:(a)一般處理框;(b)輸入/輸出框;(c)判斷框;(d)流程線;(e)起止框1.程序流程圖58第4章-詳細設(shè)計課件59

程序流程圖的優(yōu)點:對程序的控制流程描述直觀、清晰,使用靈活,便于閱讀和掌握。

程序流程圖的缺點:可以隨心所欲地使用流程線,容易造成程序控制結(jié)構(gòu)的混亂,與結(jié)構(gòu)化程序設(shè)計的思想相違背。難以描述逐步求精的過程,容易導(dǎo)致程序員過早考慮程序的控制流程,而忽略程序全局結(jié)構(gòu)的設(shè)計。難以表示系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)。程序流程圖的優(yōu)點:對程序的控制流程描述直觀、清晰,使60

2.N-S圖

N-S圖又稱為盒圖,是為了保證結(jié)構(gòu)化程序設(shè)計而由Nassi和Shneiderman共同提出的一種圖形工具。使用矩形框表示清晰地表達結(jié)構(gòu)中的嵌套及模塊的層次關(guān)系。特點:沒有流程線,不可能隨意轉(zhuǎn)移控制2.N-S圖61圖5.1N-S圖中基本控制結(jié)構(gòu)的表示符號順序結(jié)構(gòu);(b)分支結(jié)構(gòu);(c)多分支CASE結(jié)構(gòu);(d)while-do結(jié)構(gòu);(e)do-until結(jié)構(gòu);(f)調(diào)用模塊A圖5.1N-S圖中基本控制結(jié)構(gòu)的表示符號62用方框圖代替?zhèn)鹘y(tǒng)的流程圖描述五種基本控制結(jié)構(gòu)的圖形構(gòu)件(1)順序型BAC用方框圖代替?zhèn)鹘y(tǒng)的流程圖BAC63(2)選擇型(If–then–else)If–then–elseIf–thenABF條件TAFT條件then–部分then–部分else–部分(2)選擇型(If–then–else)ABF條件64(3)多分支選擇型(CASE型)A1值1A2An........CASE條件值2值nA1值1A2An........CASE條件值2值n65(4)WHILE重復(fù)型(5)DO-UNTIL重復(fù)型S(循環(huán)體)WHILEPS(循環(huán)體)REPEATUNTILP(先測試循環(huán))(后測試循環(huán))循環(huán)條件SWHILEPSREPEATUNTILP(先測試循環(huán)66(6)并行結(jié)構(gòu)A1A2An....(6)并行結(jié)構(gòu)A1A2An....67N-S圖的問題當(dāng)所描述的程序嵌套層次較多時,N-S圖的內(nèi)層方框會越畫越小影響可讀性不易修改N-S圖的問題當(dāng)所描述的程序嵌套層次較多時,68

3.PAD圖

PAD(ProblemAnalysisDiagram,問題分析圖)是繼程序流程圖和N-S圖后,由日立公司在20世紀70年代提出。只能用于結(jié)構(gòu)化程序的描述采用易于使用的樹型結(jié)構(gòu)圖形符號利于清晰地表達程序結(jié)構(gòu)利于修改3.PAD圖69基本控制結(jié)構(gòu):(1)順序結(jié)構(gòu)(2)選擇結(jié)構(gòu)

ABCABTF條件基本控制結(jié)構(gòu):ABCABTF條件70(3)重復(fù)結(jié)構(gòu)

WHILE

CSUNTIL

CS(先測試循環(huán))(后測試循環(huán))等價的PASCAL語言:REPEATCUNTILS等價的PASCAL語言:WHILECDOS(3)重復(fù)結(jié)構(gòu)71(4)多分支選擇型(CASE型)

A1CASE值1值2值nA2An......條件(4)多分支選擇型(CASE型)72

PAD描述的示例

PAD描述的示例73

對應(yīng)于增量型循環(huán)結(jié)構(gòu)

fori:=n1ton2stepn3do

在PAD中有相應(yīng)的循環(huán)控制結(jié)構(gòu)PAD的擴充控制結(jié)構(gòu) 對應(yīng)于增量型循環(huán)結(jié)構(gòu)PAD的擴充控制結(jié)構(gòu)74PAD圖主要優(yōu)點:(1)程序結(jié)構(gòu)層次清晰,邏輯結(jié)構(gòu)關(guān)系直觀、易讀、易記、易修改。(2)為多種常用高級語言提供了相應(yīng)的圖形符號,每種控制語句都與一個專門的圖形符號相對應(yīng),易于PAD圖向高級語言源程序轉(zhuǎn)換。(3)支持自頂向下、逐步求精的設(shè)計過程。(4)既能夠描述程序的邏輯結(jié)構(gòu),又能夠描述系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)。PAD圖主要優(yōu)點:75圖5.2三種詳細設(shè)計中使用的圖形工具示例采用程序流程圖描述計算應(yīng)發(fā)工資模塊;(b)采用N-S圖描述計算應(yīng)發(fā)工資模塊;(c)采用PAD圖描述計算應(yīng)發(fā)工資模塊圖5.2三種詳細設(shè)計中使用的圖形工具示例76

4.PDL語言PDL(ProcessDesignLanguage)語言即過程設(shè)計語言,是一種用于描述程序算法和定義數(shù)據(jù)結(jié)構(gòu)的偽代碼。是一種兼有自然語言和結(jié)構(gòu)化程序設(shè)計語言語法的“混合型”語言。PDL語言與結(jié)構(gòu)化語言的主要區(qū)別在于:PDL語法結(jié)構(gòu)更加嚴格并且處理過程描述更加具體詳細4.PDL語言77PDL語言主要特點:(1)各種定義語句及控制結(jié)構(gòu)的表達都具有嚴格的語法形式,使程序結(jié)構(gòu)、數(shù)據(jù)說明等更加清晰。(2)提供了數(shù)據(jù)說明機制,可用于定義簡單及復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。(3)提供了模塊的定義和調(diào)用機制,方便了程序模塊化的表達。PDL語言主要特點:78

PDL語言的主要定義語句及基本控制結(jié)構(gòu):定義語句

(1)數(shù)據(jù)定義:DECLARE屬性變量名,…屬性包括:整型、實型、雙精度型、字符型、指針、數(shù)組及結(jié)構(gòu)等類型。PDL語言的主要定義語句及基本控制結(jié)構(gòu):79(2)模塊定義:PROCEDURE模塊名(參數(shù))

RETURNEND…(2)模塊定義:…80基本控制結(jié)構(gòu)(1)順序結(jié)構(gòu):順序結(jié)構(gòu)的語句序列采用自然語言進行描述。 語句序列S1 語句序列S2

語句序列Sn…基本控制結(jié)構(gòu)…81(2)選擇結(jié)構(gòu):①IF-ELSE結(jié)構(gòu)IF條件 IF條件 語句序列S1 或 語句序列SELSE ENDIF 語句序列S2ENDIF(2)選擇結(jié)構(gòu):82②多分支IF結(jié)構(gòu)IF條件1語句序列S1ELSEIF條件2語句序列S2ELSE語句序列SnENDIF…②多分支IF結(jié)構(gòu)…83③CASE結(jié)構(gòu)CASE表達式OFCASE取值1語句序列S1CASE取值2語句序列S2

ELSE語句序列SnENDCASE…③CASE結(jié)構(gòu)…84(3)循環(huán)結(jié)構(gòu):①FOR結(jié)構(gòu)FOR循環(huán)變量=初值TO終值 循環(huán)體SENDFOR②WHILE結(jié)構(gòu)WHILE條件 循環(huán)體SENDWHILE(3)循環(huán)結(jié)構(gòu):85③UNTIL結(jié)構(gòu)REPEAT 循環(huán)體SUNTIL條件輸入/輸出語句①輸入語句:GET(輸入變量表)②輸出語句:PUT(輸出變量表)模塊調(diào)用語句CALL模塊名(參數(shù))③UNTIL結(jié)構(gòu)86示例:拼詞檢查程序PROCEDUREspellcheckIS

BEGIN

splitdocumentintosinglewords

lookupwordsindictionary

displaywordswhicharenotindictionary

createanewdictionary

ENDspellcheck示例:拼詞檢查程序PROCEDUREspellchec87使用PDL語言,逐步求精:PROCEDUREspellcheckBEGIN

--*splitdocumentintosinglewords

LOOPgetnextword

addwordtowordlistinsortorder

EXITWHENallwordsprocessed

ENDLOOP

--*lookupwordsindictionary

LOOPgetwordfromwordlist

使用PDL語言,逐步求精:PROCEDUREspellch88 IFwordnotindictionaryTHEN

--*displaywordsnotindictionary

displayword promptonuserterminal

IFuserresponsesayswordOKTHEN

addwordtogoodwordlist

ELSE

addwordtobadwordlist

ENDIF

ENDIF

EXITWHENallwordsprocessed

ENDLOOP IFwordnotindictionary89--*createanewwordsdictionary

dictionary:=

mergedictionaryandgoodwordlistENDspellcheck--*createanewwordsdic905.1.3詳細設(shè)計的原則詳細設(shè)計階段應(yīng)遵循下列原則:(1)將保證程序的清晰度放在首位。結(jié)構(gòu)清晰的程序易于理解和修改,會大大減少錯誤發(fā)生的機率,除了對執(zhí)行效率有嚴格要求的實時系統(tǒng)外,通常在詳細設(shè)計過程中應(yīng)優(yōu)先考慮程序的清晰度,而將程序的效率放在第二位。5.1.3詳細設(shè)計的原則91(2)設(shè)計過程中應(yīng)采用逐步細化的實現(xiàn)方法。從體系結(jié)構(gòu)設(shè)計到詳細設(shè)計,是一個細化模塊描述的過程,由粗到細、分步進行的細化有助于保證所生成程序的可靠性在詳細設(shè)計中特別適合采用逐步細化的方法。在對程序進行細化的過程中,還應(yīng)同時對數(shù)據(jù)描述進行細化。(2)設(shè)計過程中應(yīng)采用逐步細化的實現(xiàn)方法。92(3)選擇適當(dāng)?shù)谋磉_工具。圖形工具便于設(shè)計人員與用戶的交流,而PDL語言便于將詳細設(shè)計的結(jié)果轉(zhuǎn)換為源程序。設(shè)計人員應(yīng)根據(jù)具體情況選擇適當(dāng)?shù)谋磉_工具。(3)選擇適當(dāng)?shù)谋磉_工具。935.1.4詳細設(shè)計說明書

詳細設(shè)計說明書是詳細設(shè)計階段最重要的技術(shù)文檔。體系結(jié)構(gòu)設(shè)計說明書側(cè)重于軟件結(jié)構(gòu)的規(guī)定詳細設(shè)計說明書側(cè)重于對模塊實現(xiàn)具體細節(jié)的描述。詳細設(shè)計說明書可以看作是在體系結(jié)構(gòu)設(shè)計說明書所確定的系統(tǒng)總體結(jié)構(gòu)的基礎(chǔ)上,對其中各個模塊實現(xiàn)過程的進一步描述和細化。5.1.4詳細設(shè)計說明書94(1)引言:用于說明編寫本說明書的目

溫馨提示

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

評論

0/150

提交評論