版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章詳細(xì)設(shè)計(jì)第4章詳細(xì)設(shè)計(jì)1第4章詳細(xì)設(shè)計(jì)4.1詳細(xì)設(shè)計(jì)概述4.2面向數(shù)據(jù)流的詳細(xì)設(shè)計(jì)方法4.3面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法4.4小結(jié)第4章詳細(xì)設(shè)計(jì)4.1詳細(xì)設(shè)計(jì)概述24.1詳細(xì)設(shè)計(jì)概述4.1.1詳細(xì)設(shè)計(jì)的任務(wù)
確定每個(gè)模塊的具體算法。確定每個(gè)模塊的內(nèi)部數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。確定模塊接口的具體細(xì)節(jié)。為每個(gè)模塊設(shè)計(jì)一組測(cè)試用例。編寫文檔,參加復(fù)審。4.1詳細(xì)設(shè)計(jì)概述4.1.1詳細(xì)設(shè)計(jì)的任務(wù)3主要任務(wù):編寫詳細(xì)設(shè)計(jì)說明書為此,設(shè)計(jì)人員應(yīng):(1)確定每個(gè)模塊的算法,用工具表達(dá)算法的過程,寫出模塊的詳細(xì)過程性描述。(2)確定每一模塊的數(shù)據(jù)及數(shù)據(jù)庫(kù)結(jié)構(gòu)。(3)確定模塊接口細(xì)節(jié)。(4)準(zhǔn)備測(cè)試用例。詳細(xì)設(shè)計(jì)是編碼的先導(dǎo)。主要任務(wù):編寫詳細(xì)設(shè)計(jì)說明書44.1.2詳細(xì)設(shè)計(jì)工具:(1)圖形工具流程圖N-S圖(盒圖)問題分析圖(PAD)(2)語(yǔ)言工具(3)表格工具4.1.2詳細(xì)設(shè)計(jì)工具:5
1.程序流程圖程序流程圖是最早出現(xiàn)且使用較為廣泛的算法表達(dá)工具之一,能夠有效地描述問題求解過程中的程序邏輯結(jié)構(gòu)。程序流程圖中經(jīng)常使用的基本符號(hào):(a)一般處理框;(b)輸入/輸出框;(c)判斷框;(d)流程線;(e)起止框1.程序流程圖6第4章-詳細(xì)設(shè)計(jì)課件7
程序流程圖的優(yōu)點(diǎn):對(duì)程序的控制流程描述直觀、清晰,使用靈活,便于閱讀和掌握。
程序流程圖的缺點(diǎn):可以隨心所欲地使用流程線,容易造成程序控制結(jié)構(gòu)的混亂,與結(jié)構(gòu)化程序設(shè)計(jì)的思想相違背。難以描述逐步求精的過程,容易導(dǎo)致程序員過早考慮程序的控制流程,而忽略程序全局結(jié)構(gòu)的設(shè)計(jì)。難以表示系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)。程序流程圖的優(yōu)點(diǎn):對(duì)程序的控制流程描述直觀、清晰,使8
2.N-S圖
N-S圖又稱為盒圖,是為了保證結(jié)構(gòu)化程序設(shè)計(jì)而由Nassi和Shneiderman共同提出的一種圖形工具。使用矩形框表示清晰地表達(dá)結(jié)構(gòu)中的嵌套及模塊的層次關(guān)系。特點(diǎn):沒有流程線,不可能隨意轉(zhuǎn)移控制2.N-S圖9圖5.1N-S圖中基本控制結(jié)構(gòu)的表示符號(hào)順序結(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)的表示符號(hào)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(先測(cè)試循環(huán))(后測(cè)試循環(huán))循環(huán)條件SWHILEPSREPEATUNTILP(先測(cè)試循環(huán)14(6)并行結(jié)構(gòu)A1A2An....(6)并行結(jié)構(gòu)A1A2An....15N-S圖的問題當(dāng)所描述的程序嵌套層次較多時(shí),N-S圖的內(nèi)層方框會(huì)越畫越小影響可讀性不易修改N-S圖的問題當(dāng)所描述的程序嵌套層次較多時(shí),16
3.PAD圖
PAD(ProblemAnalysisDiagram,問題分析圖)是繼程序流程圖和N-S圖后,由日立公司在20世紀(jì)70年代提出。只能用于結(jié)構(gòu)化程序的描述采用易于使用的樹型結(jié)構(gòu)圖形符號(hào)利于清晰地表達(dá)程序結(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(先測(cè)試循環(huán))(后測(cè)試循環(huán))等價(jià)的PASCAL語(yǔ)言:REPEATCUNTILS等價(jià)的PASCAL語(yǔ)言:WHILECDOS(3)重復(fù)結(jié)構(gòu)19(4)多分支選擇型(CASE型)
A1CASE值1值2值nA2An......條件(4)多分支選擇型(CASE型)20
PAD描述的示例
PAD描述的示例21
對(duì)應(yīng)于增量型循環(huán)結(jié)構(gòu)
fori:=n1ton2stepn3do
在PAD中有相應(yīng)的循環(huán)控制結(jié)構(gòu)PAD的擴(kuò)充控制結(jié)構(gòu) 對(duì)應(yīng)于增量型循環(huán)結(jié)構(gòu)PAD的擴(kuò)充控制結(jié)構(gòu)22PAD圖主要優(yōu)點(diǎn):(1)程序結(jié)構(gòu)層次清晰,邏輯結(jié)構(gòu)關(guān)系直觀、易讀、易記、易修改。(2)為多種常用高級(jí)語(yǔ)言提供了相應(yīng)的圖形符號(hào),每種控制語(yǔ)句都與一個(gè)專門的圖形符號(hào)相對(duì)應(yīng),易于PAD圖向高級(jí)語(yǔ)言源程序轉(zhuǎn)換。(3)支持自頂向下、逐步求精的設(shè)計(jì)過程。(4)既能夠描述程序的邏輯結(jié)構(gòu),又能夠描述系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)。PAD圖主要優(yōu)點(diǎn):23圖5.2三種詳細(xì)設(shè)計(jì)中使用的圖形工具示例采用程序流程圖描述計(jì)算應(yīng)發(fā)工資模塊;(b)采用N-S圖描述計(jì)算應(yīng)發(fā)工資模塊;(c)采用PAD圖描述計(jì)算應(yīng)發(fā)工資模塊圖5.2三種詳細(xì)設(shè)計(jì)中使用的圖形工具示例24
4.PDL語(yǔ)言PDL(ProcessDesignLanguage)語(yǔ)言即過程設(shè)計(jì)語(yǔ)言,是一種用于描述程序算法和定義數(shù)據(jù)結(jié)構(gòu)的偽代碼。是一種兼有自然語(yǔ)言和結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言語(yǔ)法的“混合型”語(yǔ)言。PDL語(yǔ)言與結(jié)構(gòu)化語(yǔ)言的主要區(qū)別在于:PDL語(yǔ)法結(jié)構(gòu)更加嚴(yán)格并且處理過程描述更加具體詳細(xì)4.PDL語(yǔ)言25PDL語(yǔ)言主要特點(diǎn):(1)各種定義語(yǔ)句及控制結(jié)構(gòu)的表達(dá)都具有嚴(yán)格的語(yǔ)法形式,使程序結(jié)構(gòu)、數(shù)據(jù)說明等更加清晰。(2)提供了數(shù)據(jù)說明機(jī)制,可用于定義簡(jiǎn)單及復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。(3)提供了模塊的定義和調(diào)用機(jī)制,方便了程序模塊化的表達(dá)。PDL語(yǔ)言主要特點(diǎn):26
PDL語(yǔ)言的主要定義語(yǔ)句及基本控制結(jié)構(gòu):定義語(yǔ)句
(1)數(shù)據(jù)定義:DECLARE屬性變量名,…屬性包括:整型、實(shí)型、雙精度型、字符型、指針、數(shù)組及結(jié)構(gòu)等類型。PDL語(yǔ)言的主要定義語(yǔ)句及基本控制結(jié)構(gòu):27(2)模塊定義:PROCEDURE模塊名(參數(shù))
RETURNEND…(2)模塊定義:…28基本控制結(jié)構(gòu)(1)順序結(jié)構(gòu):順序結(jié)構(gòu)的語(yǔ)句序列采用自然語(yǔ)言進(jìn)行描述。 語(yǔ)句序列S1 語(yǔ)句序列S2
語(yǔ)句序列Sn…基本控制結(jié)構(gòu)…29(2)選擇結(jié)構(gòu):①IF-ELSE結(jié)構(gòu)IF條件 IF條件 語(yǔ)句序列S1 或 語(yǔ)句序列SELSE ENDIF 語(yǔ)句序列S2ENDIF(2)選擇結(jié)構(gòu):30②多分支IF結(jié)構(gòu)IF條件1語(yǔ)句序列S1ELSEIF條件2語(yǔ)句序列S2ELSE語(yǔ)句序列SnENDIF…②多分支IF結(jié)構(gòu)…31③CASE結(jié)構(gòu)CASE表達(dá)式OFCASE取值1語(yǔ)句序列S1CASE取值2語(yǔ)句序列S2
ELSE語(yǔ)句序列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條件輸入/輸出語(yǔ)句①輸入語(yǔ)句:GET(輸入變量表)②輸出語(yǔ)句:PUT(輸出變量表)模塊調(diào)用語(yǔ)句CALL模塊名(參數(shù))③UNTIL結(jié)構(gòu)34示例:拼詞檢查程序PROCEDUREspellcheckIS
BEGIN
splitdocumentintosinglewords
lookupwordsindictionary
displaywordswhicharenotindictionary
createanewdictionary
ENDspellcheck示例:拼詞檢查程序PROCEDUREspellchec35使用PDL語(yǔ)言,逐步求精:PROCEDUREspellcheckBEGIN
--*splitdocumentintosinglewords
LOOPgetnextword
addwordtowordlistinsortorder
EXITWHENallwordsprocessed
ENDLOOP
--*lookupwordsindictionary
LOOPgetwordfromwordlist
使用PDL語(yǔ)言,逐步求精:PROCEDUREspellch36 IFwordnotindictionaryTHEN
--*displaywordsnotindictionary
displayword promptonuserterminal
IFuserresponsesayswordOKTHEN
addwordtogoodwordlist
ELSE
addwordtobadwordlist
ENDIF
ENDIF
EXITWHENallwordsprocessed
ENDLOOP IFwordnotindictionary37--*createanewwordsdictionary
dictionary:=
mergedictionaryandgoodwordlistENDspellcheck--*createanewwordsdic385.1.3詳細(xì)設(shè)計(jì)的原則詳細(xì)設(shè)計(jì)階段應(yīng)遵循下列原則:(1)將保證程序的清晰度放在首位。結(jié)構(gòu)清晰的程序易于理解和修改,會(huì)大大減少錯(cuò)誤發(fā)生的機(jī)率,除了對(duì)執(zhí)行效率有嚴(yán)格要求的實(shí)時(shí)系統(tǒng)外,通常在詳細(xì)設(shè)計(jì)過程中應(yīng)優(yōu)先考慮程序的清晰度,而將程序的效率放在第二位。5.1.3詳細(xì)設(shè)計(jì)的原則39(2)設(shè)計(jì)過程中應(yīng)采用逐步細(xì)化的實(shí)現(xiàn)方法。從體系結(jié)構(gòu)設(shè)計(jì)到詳細(xì)設(shè)計(jì),是一個(gè)細(xì)化模塊描述的過程,由粗到細(xì)、分步進(jìn)行的細(xì)化有助于保證所生成程序的可靠性在詳細(xì)設(shè)計(jì)中特別適合采用逐步細(xì)化的方法。在對(duì)程序進(jìn)行細(xì)化的過程中,還應(yīng)同時(shí)對(duì)數(shù)據(jù)描述進(jìn)行細(xì)化。(2)設(shè)計(jì)過程中應(yīng)采用逐步細(xì)化的實(shí)現(xiàn)方法。40(3)選擇適當(dāng)?shù)谋磉_(dá)工具。圖形工具便于設(shè)計(jì)人員與用戶的交流,而PDL語(yǔ)言便于將詳細(xì)設(shè)計(jì)的結(jié)果轉(zhuǎn)換為源程序。設(shè)計(jì)人員應(yīng)根據(jù)具體情況選擇適當(dāng)?shù)谋磉_(dá)工具。(3)選擇適當(dāng)?shù)谋磉_(dá)工具。415.1.4詳細(xì)設(shè)計(jì)說明書
詳細(xì)設(shè)計(jì)說明書是詳細(xì)設(shè)計(jì)階段最重要的技術(shù)文檔。體系結(jié)構(gòu)設(shè)計(jì)說明書側(cè)重于軟件結(jié)構(gòu)的規(guī)定詳細(xì)設(shè)計(jì)說明書側(cè)重于對(duì)模塊實(shí)現(xiàn)具體細(xì)節(jié)的描述。詳細(xì)設(shè)計(jì)說明書可以看作是在體系結(jié)構(gòu)設(shè)計(jì)說明書所確定的系統(tǒng)總體結(jié)構(gòu)的基礎(chǔ)上,對(duì)其中各個(gè)模塊實(shí)現(xiàn)過程的進(jìn)一步描述和細(xì)化。5.1.4詳細(xì)設(shè)計(jì)說明書42(1)引言:用于說明編寫本說明書的目的、背景,定義所用到的術(shù)語(yǔ)和縮略語(yǔ),以及列出文檔中所引用的參考資料等。(2)總體設(shè)計(jì):用于給出軟件系統(tǒng)的體系結(jié)構(gòu)圖。(3)模塊描述:依次對(duì)各個(gè)模塊進(jìn)行詳細(xì)的描述,主要包括模塊的功能和性能,實(shí)現(xiàn)模塊功能的算法,模塊的輸入及輸出,模塊接口的詳細(xì)信息等。詳細(xì)設(shè)計(jì)說明書包括的內(nèi)容(1)引言:用于說明編寫本說明書的目的、背景,定義435.2面向數(shù)據(jù)流的詳細(xì)設(shè)計(jì)方法
面向數(shù)據(jù)流的詳細(xì)設(shè)計(jì)方法關(guān)鍵技術(shù):(1)設(shè)計(jì)過程中采用了自頂向下,逐步細(xì)分的方法。(2)采用DO-UNTIL循環(huán)結(jié)構(gòu)和多分支選擇結(jié)構(gòu)(DO-CASE)兩種補(bǔ)充結(jié)構(gòu)。5.2面向數(shù)據(jù)流的詳細(xì)設(shè)計(jì)方法面向數(shù)據(jù)流的詳細(xì)設(shè)計(jì)44(1)設(shè)計(jì)過程中采用了自頂向下,逐步細(xì)分的方法:
面向數(shù)據(jù)流的設(shè)計(jì):自頂向下逐步細(xì)分的方法(1)設(shè)計(jì)過程中采用了自頂向下,逐步細(xì)分的方法:45在體系結(jié)構(gòu)設(shè)計(jì)中,將需要處理的問題分解細(xì)化為一個(gè)由多個(gè)模塊組成的層次結(jié)構(gòu)的軟件系統(tǒng)在詳細(xì)設(shè)計(jì)中,將系統(tǒng)中的每個(gè)模塊逐步分解細(xì)化為一系列的具體處理步驟在體系結(jié)構(gòu)設(shè)計(jì)中,將需要處理的問題分解細(xì)化為一個(gè)由多個(gè)模塊組46所有模塊的實(shí)現(xiàn)都只采用單入口、單出口的三種基本控制結(jié)構(gòu)在面向數(shù)據(jù)流的詳細(xì)設(shè)計(jì)中,為了保證程序結(jié)構(gòu)的清晰度,通常限制只能采用三種基本控制結(jié)構(gòu)來構(gòu)造程序:順序結(jié)構(gòu)選擇結(jié)構(gòu)(IF-THEN-ELSE型)DO-WHILE循環(huán)結(jié)構(gòu)所有模塊的實(shí)現(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)兩種補(bǔ)充結(jié)構(gòu)。只允許使用三種基本控制結(jié)構(gòu)的詳細(xì)設(shè)計(jì)通常被稱為經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì),而加入了兩種補(bǔ)充結(jié)構(gòu)的詳細(xì)設(shè)計(jì)則被稱為擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì)。面向數(shù)據(jù)流的詳細(xì)設(shè)計(jì)中并非完全禁止GOTO語(yǔ)句的使用,例如限制在同一控制結(jié)構(gòu)內(nèi)部的GOTO語(yǔ)句并不會(huì)破壞程序的結(jié)構(gòu)化特點(diǎn)。(2)采用DO-UNTIL循環(huán)結(jié)構(gòu)和多分支選擇結(jié)49圖5.4兩種補(bǔ)充結(jié)構(gòu)的流程圖(a)DO-UNTIL循環(huán)結(jié)構(gòu);(b)多分支選擇結(jié)構(gòu)圖5.4兩種補(bǔ)充結(jié)構(gòu)的流程圖50優(yōu)點(diǎn):自頂向下、逐步細(xì)分保證了程序的可靠性而基本控制結(jié)構(gòu)的使用則保證了程序的清晰易懂缺點(diǎn):程序結(jié)構(gòu)的清晰往往要以存儲(chǔ)容量的增加和運(yùn)行效率的降低為代價(jià)優(yōu)點(diǎn):51作業(yè)畫出與下列偽代碼書寫的程序所對(duì)應(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è)畫出與下列偽代碼書寫的程序所對(duì)應(yīng)的N-S圖和PAD圖。52第4章詳細(xì)設(shè)計(jì)第4章詳細(xì)設(shè)計(jì)53第4章詳細(xì)設(shè)計(jì)4.1詳細(xì)設(shè)計(jì)概述4.2面向數(shù)據(jù)流的詳細(xì)設(shè)計(jì)方法4.3面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法4.4小結(jié)第4章詳細(xì)設(shè)計(jì)4.1詳細(xì)設(shè)計(jì)概述544.1詳細(xì)設(shè)計(jì)概述4.1.1詳細(xì)設(shè)計(jì)的任務(wù)
確定每個(gè)模塊的具體算法。確定每個(gè)模塊的內(nèi)部數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。確定模塊接口的具體細(xì)節(jié)。為每個(gè)模塊設(shè)計(jì)一組測(cè)試用例。編寫文檔,參加復(fù)審。4.1詳細(xì)設(shè)計(jì)概述4.1.1詳細(xì)設(shè)計(jì)的任務(wù)55主要任務(wù):編寫詳細(xì)設(shè)計(jì)說明書為此,設(shè)計(jì)人員應(yīng):(1)確定每個(gè)模塊的算法,用工具表達(dá)算法的過程,寫出模塊的詳細(xì)過程性描述。(2)確定每一模塊的數(shù)據(jù)及數(shù)據(jù)庫(kù)結(jié)構(gòu)。(3)確定模塊接口細(xì)節(jié)。(4)準(zhǔn)備測(cè)試用例。詳細(xì)設(shè)計(jì)是編碼的先導(dǎo)。主要任務(wù):編寫詳細(xì)設(shè)計(jì)說明書564.1.2詳細(xì)設(shè)計(jì)工具:(1)圖形工具流程圖N-S圖(盒圖)問題分析圖(PAD)(2)語(yǔ)言工具(3)表格工具4.1.2詳細(xì)設(shè)計(jì)工具:57
1.程序流程圖程序流程圖是最早出現(xiàn)且使用較為廣泛的算法表達(dá)工具之一,能夠有效地描述問題求解過程中的程序邏輯結(jié)構(gòu)。程序流程圖中經(jīng)常使用的基本符號(hào):(a)一般處理框;(b)輸入/輸出框;(c)判斷框;(d)流程線;(e)起止框1.程序流程圖58第4章-詳細(xì)設(shè)計(jì)課件59
程序流程圖的優(yōu)點(diǎn):對(duì)程序的控制流程描述直觀、清晰,使用靈活,便于閱讀和掌握。
程序流程圖的缺點(diǎn):可以隨心所欲地使用流程線,容易造成程序控制結(jié)構(gòu)的混亂,與結(jié)構(gòu)化程序設(shè)計(jì)的思想相違背。難以描述逐步求精的過程,容易導(dǎo)致程序員過早考慮程序的控制流程,而忽略程序全局結(jié)構(gòu)的設(shè)計(jì)。難以表示系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)。程序流程圖的優(yōu)點(diǎn):對(duì)程序的控制流程描述直觀、清晰,使60
2.N-S圖
N-S圖又稱為盒圖,是為了保證結(jié)構(gòu)化程序設(shè)計(jì)而由Nassi和Shneiderman共同提出的一種圖形工具。使用矩形框表示清晰地表達(dá)結(jié)構(gòu)中的嵌套及模塊的層次關(guān)系。特點(diǎn):沒有流程線,不可能隨意轉(zhuǎn)移控制2.N-S圖61圖5.1N-S圖中基本控制結(jié)構(gòu)的表示符號(hào)順序結(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)的表示符號(hào)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(先測(cè)試循環(huán))(后測(cè)試循環(huán))循環(huán)條件SWHILEPSREPEATUNTILP(先測(cè)試循環(huán)66(6)并行結(jié)構(gòu)A1A2An....(6)并行結(jié)構(gòu)A1A2An....67N-S圖的問題當(dāng)所描述的程序嵌套層次較多時(shí),N-S圖的內(nèi)層方框會(huì)越畫越小影響可讀性不易修改N-S圖的問題當(dāng)所描述的程序嵌套層次較多時(shí),68
3.PAD圖
PAD(ProblemAnalysisDiagram,問題分析圖)是繼程序流程圖和N-S圖后,由日立公司在20世紀(jì)70年代提出。只能用于結(jié)構(gòu)化程序的描述采用易于使用的樹型結(jié)構(gòu)圖形符號(hào)利于清晰地表達(dá)程序結(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(先測(cè)試循環(huán))(后測(cè)試循環(huán))等價(jià)的PASCAL語(yǔ)言:REPEATCUNTILS等價(jià)的PASCAL語(yǔ)言:WHILECDOS(3)重復(fù)結(jié)構(gòu)71(4)多分支選擇型(CASE型)
A1CASE值1值2值nA2An......條件(4)多分支選擇型(CASE型)72
PAD描述的示例
PAD描述的示例73
對(duì)應(yīng)于增量型循環(huán)結(jié)構(gòu)
fori:=n1ton2stepn3do
在PAD中有相應(yīng)的循環(huán)控制結(jié)構(gòu)PAD的擴(kuò)充控制結(jié)構(gòu) 對(duì)應(yīng)于增量型循環(huán)結(jié)構(gòu)PAD的擴(kuò)充控制結(jié)構(gòu)74PAD圖主要優(yōu)點(diǎn):(1)程序結(jié)構(gòu)層次清晰,邏輯結(jié)構(gòu)關(guān)系直觀、易讀、易記、易修改。(2)為多種常用高級(jí)語(yǔ)言提供了相應(yīng)的圖形符號(hào),每種控制語(yǔ)句都與一個(gè)專門的圖形符號(hào)相對(duì)應(yīng),易于PAD圖向高級(jí)語(yǔ)言源程序轉(zhuǎn)換。(3)支持自頂向下、逐步求精的設(shè)計(jì)過程。(4)既能夠描述程序的邏輯結(jié)構(gòu),又能夠描述系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)。PAD圖主要優(yōu)點(diǎn):75圖5.2三種詳細(xì)設(shè)計(jì)中使用的圖形工具示例采用程序流程圖描述計(jì)算應(yīng)發(fā)工資模塊;(b)采用N-S圖描述計(jì)算應(yīng)發(fā)工資模塊;(c)采用PAD圖描述計(jì)算應(yīng)發(fā)工資模塊圖5.2三種詳細(xì)設(shè)計(jì)中使用的圖形工具示例76
4.PDL語(yǔ)言PDL(ProcessDesignLanguage)語(yǔ)言即過程設(shè)計(jì)語(yǔ)言,是一種用于描述程序算法和定義數(shù)據(jù)結(jié)構(gòu)的偽代碼。是一種兼有自然語(yǔ)言和結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言語(yǔ)法的“混合型”語(yǔ)言。PDL語(yǔ)言與結(jié)構(gòu)化語(yǔ)言的主要區(qū)別在于:PDL語(yǔ)法結(jié)構(gòu)更加嚴(yán)格并且處理過程描述更加具體詳細(xì)4.PDL語(yǔ)言77PDL語(yǔ)言主要特點(diǎn):(1)各種定義語(yǔ)句及控制結(jié)構(gòu)的表達(dá)都具有嚴(yán)格的語(yǔ)法形式,使程序結(jié)構(gòu)、數(shù)據(jù)說明等更加清晰。(2)提供了數(shù)據(jù)說明機(jī)制,可用于定義簡(jiǎn)單及復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。(3)提供了模塊的定義和調(diào)用機(jī)制,方便了程序模塊化的表達(dá)。PDL語(yǔ)言主要特點(diǎn):78
PDL語(yǔ)言的主要定義語(yǔ)句及基本控制結(jié)構(gòu):定義語(yǔ)句
(1)數(shù)據(jù)定義:DECLARE屬性變量名,…屬性包括:整型、實(shí)型、雙精度型、字符型、指針、數(shù)組及結(jié)構(gòu)等類型。PDL語(yǔ)言的主要定義語(yǔ)句及基本控制結(jié)構(gòu):79(2)模塊定義:PROCEDURE模塊名(參數(shù))
RETURNEND…(2)模塊定義:…80基本控制結(jié)構(gòu)(1)順序結(jié)構(gòu):順序結(jié)構(gòu)的語(yǔ)句序列采用自然語(yǔ)言進(jìn)行描述。 語(yǔ)句序列S1 語(yǔ)句序列S2
語(yǔ)句序列Sn…基本控制結(jié)構(gòu)…81(2)選擇結(jié)構(gòu):①IF-ELSE結(jié)構(gòu)IF條件 IF條件 語(yǔ)句序列S1 或 語(yǔ)句序列SELSE ENDIF 語(yǔ)句序列S2ENDIF(2)選擇結(jié)構(gòu):82②多分支IF結(jié)構(gòu)IF條件1語(yǔ)句序列S1ELSEIF條件2語(yǔ)句序列S2ELSE語(yǔ)句序列SnENDIF…②多分支IF結(jié)構(gòu)…83③CASE結(jié)構(gòu)CASE表達(dá)式OFCASE取值1語(yǔ)句序列S1CASE取值2語(yǔ)句序列S2
ELSE語(yǔ)句序列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條件輸入/輸出語(yǔ)句①輸入語(yǔ)句:GET(輸入變量表)②輸出語(yǔ)句:PUT(輸出變量表)模塊調(diào)用語(yǔ)句CALL模塊名(參數(shù))③UNTIL結(jié)構(gòu)86示例:拼詞檢查程序PROCEDUREspellcheckIS
BEGIN
splitdocumentintosinglewords
lookupwordsindictionary
displaywordswhicharenotindictionary
createanewdictionary
ENDspellcheck示例:拼詞檢查程序PROCEDUREspellchec87使用PDL語(yǔ)言,逐步求精:PROCEDUREspellcheckBEGIN
--*splitdocumentintosinglewords
LOOPgetnextword
addwordtowordlistinsortorder
EXITWHENallwordsprocessed
ENDLOOP
--*lookupwordsindictionary
LOOPgetwordfromwordlist
使用PDL語(yǔ)言,逐步求精:PROCEDUREspellch88 IFwordnotindictionaryTHEN
--*displaywordsnotindictionary
displayword promptonuserterminal
IFuserresponsesayswordOKTHEN
addwordtogoodwordlist
ELSE
addwordtobadwordlist
ENDIF
ENDIF
EXITWHENallwordsprocessed
ENDLOOP IFwordnotindictionary89--*createanewwordsdictionary
dictionary:=
mergedictionaryandgoodwordlistENDspellcheck--*createanewwordsdic905.1.3詳細(xì)設(shè)計(jì)的原則詳細(xì)設(shè)計(jì)階段應(yīng)遵循下列原則:(1)將保證程序的清晰度放在首位。結(jié)構(gòu)清晰的程序易于理解和修改,會(huì)大大減少錯(cuò)誤發(fā)生的機(jī)率,除了對(duì)執(zhí)行效率有嚴(yán)格要求的實(shí)時(shí)系統(tǒng)外,通常在詳細(xì)設(shè)計(jì)過程中應(yīng)優(yōu)先考慮程序的清晰度,而將程序的效率放在第二位。5.1.3詳細(xì)設(shè)計(jì)的原則91(2)設(shè)計(jì)過程中應(yīng)采用逐步細(xì)化的實(shí)現(xiàn)方法。從體系結(jié)構(gòu)設(shè)計(jì)到詳細(xì)設(shè)計(jì),是一個(gè)細(xì)化模塊描述的過程,由粗到細(xì)、分步進(jìn)行的細(xì)化有助于保證所生成程序的可靠性在詳細(xì)設(shè)計(jì)中特別適合采用逐步細(xì)化的方法。在對(duì)程序進(jìn)行細(xì)化的過程中,還應(yīng)同時(shí)對(duì)數(shù)據(jù)描述進(jìn)行細(xì)化。(2)設(shè)計(jì)過程中應(yīng)采用逐步細(xì)化的實(shí)現(xiàn)方法。92(3)選擇適當(dāng)?shù)谋磉_(dá)工具。圖形工具便于設(shè)計(jì)人員與用戶的交流,而PDL語(yǔ)言便于將詳細(xì)設(shè)計(jì)的結(jié)果轉(zhuǎn)換為源程序。設(shè)計(jì)人員應(yīng)根據(jù)具體情況選擇適當(dāng)?shù)谋磉_(dá)工具。(3)選擇適當(dāng)?shù)谋磉_(dá)工具。935.1.4詳細(xì)設(shè)計(jì)說明書
詳細(xì)設(shè)計(jì)說明書是詳細(xì)設(shè)計(jì)階段最重要的技術(shù)文檔。體系結(jié)構(gòu)設(shè)計(jì)說明書側(cè)重于軟件結(jié)構(gòu)的規(guī)定詳細(xì)設(shè)計(jì)說明書側(cè)重于對(duì)模塊實(shí)現(xiàn)具體細(xì)節(jié)的描述。詳細(xì)設(shè)計(jì)說明書可以看作是在體系結(jié)構(gòu)設(shè)計(jì)說明書所確定的系統(tǒng)總體結(jié)構(gòu)的基礎(chǔ)上,對(duì)其中各個(gè)模塊實(shí)現(xiàn)過程的進(jìn)一步描述和細(xì)化。5.1.4詳細(xì)設(shè)計(jì)說明書94(1)引言:用于說明編寫本說明書的目
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 市政道路工程監(jiān)理評(píng)估報(bào)告
- 2024年幼兒園大班健康教案
- 2025年冶金機(jī)械配件項(xiàng)目可行性研究報(bào)告
- 縫紉初步知識(shí)培訓(xùn)課件
- 廣東省深圳市龍崗區(qū)2023-2024學(xué)年五年級(jí)上學(xué)期英語(yǔ)期末試卷
- 輪船玻璃鋼接閃桿 CMCE電場(chǎng)補(bǔ)償避雷器 無源驅(qū)雷避雷針
- 輕紡城糧油冷鏈物流中心新建項(xiàng)目可行性研究報(bào)告寫作模板-備案審批
- 年產(chǎn)100萬(wàn)只高適配性大電流管式接頭智能化技改項(xiàng)目可行性研究報(bào)告模板-立項(xiàng)備案
- QFD質(zhì)量功能展開專題的培訓(xùn)
- 二零二五年度房地產(chǎn)開發(fā)項(xiàng)目合作國(guó)際旅游度假區(qū)合作協(xié)議范本3篇
- 北京2025年首都醫(yī)科大學(xué)附屬北京友誼醫(yī)院招聘140人歷年參考題庫(kù)(頻考版)含答案解析
- 《工商管理專業(yè)畢業(yè)實(shí)習(xí)》課程教學(xué)大綱
- 國(guó)開電大本科《西方經(jīng)濟(jì)學(xué)(本)》網(wǎng)上形考(作業(yè)一至六)試題及答案
- 提高有風(fēng)險(xiǎn)患者預(yù)防跌倒墜床護(hù)理措施落實(shí)率品管圈PDCA案例匯報(bào)
- 應(yīng)急滅火疏散預(yù)案(范本)
- SCA自動(dòng)涂膠系統(tǒng)培訓(xùn)講義課件
- 施工現(xiàn)場(chǎng)臨時(shí)建筑驗(yàn)收表
- 皓月集團(tuán)市場(chǎng)營(yíng)銷策略研究
- 二次砌筑配管(JDG)技術(shù)交底
- 施工升降機(jī)定期檢驗(yàn)原始記錄
- AI技術(shù)打造智能客服機(jī)器人
評(píng)論
0/150
提交評(píng)論