軟件工程軟件設(shè)計(jì)詳細(xì)設(shè)計(jì)課件_第1頁(yè)
軟件工程軟件設(shè)計(jì)詳細(xì)設(shè)計(jì)課件_第2頁(yè)
軟件工程軟件設(shè)計(jì)詳細(xì)設(shè)計(jì)課件_第3頁(yè)
軟件工程軟件設(shè)計(jì)詳細(xì)設(shè)計(jì)課件_第4頁(yè)
軟件工程軟件設(shè)計(jì)詳細(xì)設(shè)計(jì)課件_第5頁(yè)
已閱讀5頁(yè),還剩89頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件設(shè)計(jì)

3.1軟件概要設(shè)計(jì)概述3.2軟件設(shè)計(jì)的基本原理3.3軟件結(jié)構(gòu)準(zhǔn)則3.5軟件詳細(xì)設(shè)計(jì)3.6軟件詳細(xì)設(shè)計(jì)表示法3.7小結(jié)習(xí)題軟件設(shè)計(jì) 3.1軟件概要設(shè)計(jì)概述3.5軟件詳細(xì)設(shè)計(jì) 3.5.1詳細(xì)設(shè)計(jì)的基本任務(wù) 1.算法設(shè)計(jì) 用某種圖形、表格、語(yǔ)言等工具將每個(gè)模塊處理過(guò)程的詳細(xì)算法描述出來(lái)。 2.?dāng)?shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 對(duì)于需求分析、概要設(shè)計(jì)確定的概念性的數(shù)據(jù)類(lèi)型進(jìn)行確切的定義。3.5軟件詳細(xì)設(shè)計(jì) 3.5.1詳細(xì)設(shè)計(jì)的基本任務(wù) 3.物理設(shè)計(jì) 對(duì)數(shù)據(jù)庫(kù)進(jìn)行物理設(shè)計(jì),即確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。物理結(jié)構(gòu)主要指數(shù)據(jù)庫(kù)的存儲(chǔ)記錄格式、存儲(chǔ)記錄安排和存儲(chǔ)方法,這些都依賴(lài)于具體所使用的數(shù)據(jù)庫(kù)系統(tǒng)。 4.其他設(shè)計(jì) 根據(jù)軟件系統(tǒng)的類(lèi)型,還可能要進(jìn)行以下設(shè)計(jì): (1)代碼設(shè)計(jì):為了提高數(shù)據(jù)的輸入、分類(lèi)、存儲(chǔ)及檢索等操作的效率,以及節(jié)約內(nèi)存空間,對(duì)數(shù)據(jù)庫(kù)中的某些數(shù)據(jù)項(xiàng)的值要進(jìn)行代碼設(shè)計(jì)。 3.物理設(shè)計(jì) (2)輸入/輸出格式設(shè)計(jì)。 (3)人機(jī)對(duì)話(huà)設(shè)計(jì):對(duì)于一個(gè)實(shí)時(shí)系統(tǒng),用戶(hù)與計(jì)算機(jī)需頻繁對(duì)話(huà),因此要進(jìn)行對(duì)話(huà)方式、內(nèi)容及格式的具體設(shè)計(jì)。 5.編寫(xiě)詳細(xì)設(shè)計(jì)說(shuō)明書(shū) 詳細(xì)設(shè)計(jì)說(shuō)明書(shū)有下列的主要內(nèi)容: (1)引言:包括編寫(xiě)目的、背景、定義、參考資料。 (2)程序系統(tǒng)的組織結(jié)構(gòu)。

(2)輸入/輸出格式設(shè)計(jì)。 (3)程序1(標(biāo)識(shí)符)設(shè)計(jì)說(shuō)明:包括功能、性能、輸入、輸出、算法、流程邏輯、接口。 (4)程序2(標(biāo)識(shí)符)設(shè)計(jì)說(shuō)明。 (5)程序N(標(biāo)識(shí)符)設(shè)計(jì)說(shuō)明。 6.評(píng)審 對(duì)處理過(guò)程的算法和數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)都要評(píng)審。

(3)程序1(標(biāo)識(shí)符)設(shè)計(jì)說(shuō)明:包括功能、性能、輸入、 3.5.2詳細(xì)設(shè)計(jì)方法 處理過(guò)程設(shè)計(jì)中采用的典型方法是結(jié)構(gòu)化程序設(shè)計(jì)(SP)方法,最早是由E.W.Dijkstra在20世紀(jì)60年代中期提出的。詳細(xì)設(shè)計(jì)并不是具體地編程序,而是已經(jīng)細(xì)化成很容易從中產(chǎn)生程序的圖紙。因此詳細(xì)設(shè)計(jì)的結(jié)果基本決定了最終程序的質(zhì)量。為了提高軟件的質(zhì)量,延長(zhǎng)軟件的生存期,軟件的可測(cè)試性、可維護(hù)性是重要保障。軟件的可測(cè)試性、可維護(hù)性與程序的易讀性有很大關(guān)系。詳細(xì)設(shè)計(jì)的目標(biāo)不僅是邏輯上能正確地實(shí)現(xiàn)每個(gè)模塊的功能,還應(yīng)使設(shè)計(jì)出的處理過(guò)程清晰易讀。結(jié)構(gòu)化程序設(shè)計(jì)是實(shí)現(xiàn)該目標(biāo)的關(guān)鍵技術(shù)之一,它指導(dǎo)人們用良好的思想方法開(kāi)發(fā)易于理解、易于驗(yàn)證的程序。結(jié)構(gòu)化程序設(shè)計(jì)方法有以下幾個(gè)基本要點(diǎn)。 3.5.2詳細(xì)設(shè)計(jì)方法 1.采用自頂向下、逐步求精的程序設(shè)計(jì)方法 在需求分析、概要設(shè)計(jì)中,都采用了自頂向下、逐層細(xì)化的方法。使用“抽象”這個(gè)手段,上層對(duì)問(wèn)題抽象、對(duì)模塊抽象和對(duì)數(shù)據(jù)抽象,下層則進(jìn)一步分解,進(jìn)入另一個(gè)抽象層次。在詳細(xì)設(shè)計(jì)中,雖然處于“具體”設(shè)計(jì)階段,但在設(shè)計(jì)某個(gè)模塊內(nèi)部處理過(guò)程中,仍可以逐步求精,降低處理細(xì)節(jié)的復(fù)雜度。 1.采用自頂向下、逐步求精的程序設(shè)計(jì)方法 2.使用三種基本控制結(jié)構(gòu)構(gòu)造程序

任何程序都可由順序、選擇及重復(fù)三種基本控制結(jié)構(gòu)構(gòu)造。這三種基本結(jié)構(gòu)的共同點(diǎn)是單入口、單出口。 2.使用三種基本控制結(jié)構(gòu)構(gòu)造程序三種方式對(duì)模糊過(guò)程進(jìn)行分解:

(1)用順序方式對(duì)過(guò)程分解,確定各部分的執(zhí)行順序。 (2)用選擇方式對(duì)過(guò)程分解,確定某個(gè)部分的執(zhí)行條件。3)用循環(huán)方式對(duì)過(guò)程分解,確定某個(gè)部分進(jìn)行重復(fù)的開(kāi)始和結(jié)束的條件。 對(duì)處理過(guò)程仍然模糊的部分反復(fù)使用以上分解方法,最終可將所有細(xì)節(jié)確定下來(lái)。三種方式對(duì)模糊過(guò)程進(jìn)行分解:

(1)用順序方式對(duì)過(guò)例:在一組數(shù)中找出其中最大的數(shù)

1輸入一組數(shù);1輸入一個(gè)數(shù)組;1輸入一個(gè)數(shù)組;2找出其中的最大數(shù);3輸出最大數(shù)。3輸出最大數(shù)。2.1任取一數(shù),假定它就是最大數(shù);2.2將該數(shù)與其余各數(shù)逐一比較;2.3若發(fā)現(xiàn)任何數(shù)大于假設(shè)的最大數(shù),即取而代之;2.1令”最大數(shù)”=數(shù)組的第一個(gè)元素;2.2從第二個(gè)元素至最后一個(gè)元素做循環(huán);2.3如果新元素>“最大數(shù)”則“最大數(shù)”=新元素;3輸出“最大數(shù)”。求解步驟細(xì)化第二步結(jié)構(gòu)化語(yǔ)言描述問(wèn)題求解逐步細(xì)化的過(guò)程例:在一組數(shù)中找出其中最大的數(shù)

1輸入一組數(shù);1輸

3.主程序員的組織形式 主程序員的組織形式指開(kāi)發(fā)程序的人員應(yīng)采用以一個(gè)主程序員(負(fù)責(zé)全部技術(shù)活動(dòng))、一個(gè)后備程序員(協(xié)調(diào)、支持主程序員)和一個(gè)程序管理員(負(fù)責(zé)事務(wù)性工作,如收集、記錄數(shù)據(jù),文檔資料管理等)三人為核心,再加上一些專(zhuān)家(如通信專(zhuān)家、數(shù)據(jù)庫(kù)專(zhuān)家)、其他技術(shù)人員組成小組。這種組織形式突出了主程序員的領(lǐng)導(dǎo),設(shè)計(jì)責(zé)任集中在少數(shù)人身上,有利于提高軟件質(zhì)量,并且能有效地提高軟件生產(chǎn)率。這種組織形式最先由IBM公司實(shí)施,隨后其他軟件公司也紛紛采用主程序員制的工作方式。 因此,結(jié)構(gòu)化程序設(shè)計(jì)方法是綜合應(yīng)用這些手段來(lái)構(gòu)造高質(zhì)量程序的思想方法。

3.6軟件詳細(xì)設(shè)計(jì)表示法

關(guān)于描述工具的有關(guān)說(shuō)明:1.為了給出軟件結(jié)構(gòu)圖中每一個(gè)模塊的算法和塊內(nèi)數(shù)據(jù)結(jié)構(gòu)的清晰描述,需要采用適當(dāng)?shù)谋磉_(dá)工具。2.詳細(xì)設(shè)計(jì)的表達(dá)工具有三類(lèi):圖形、表格和語(yǔ)言。3.無(wú)論哪類(lèi)描述工具不僅要具有描述設(shè)計(jì)過(guò)程,如控制流程、處理功能、數(shù)據(jù)組織及其它方面的細(xì)節(jié)的能力,而且在編碼階段能夠直接將它翻譯為用程序設(shè)計(jì)語(yǔ)言書(shū)寫(xiě)的源程序。4.詳細(xì)設(shè)計(jì)的描述工具除了以前介紹過(guò)判定樹(shù)和判定表外,還有程序流程圖、N-S圖、PAD圖及PDL等幾種常用的工具.3.6軟件詳細(xì)設(shè)計(jì)表示法 關(guān)于描述工具的有關(guān)說(shuō)明:圖3.8三種基本控制結(jié)構(gòu)的流程圖3.6.1程序流程圖 程序流程圖又稱(chēng)為程序框圖,它是歷史最悠久、使用最廣泛的一種描述程序邏輯結(jié)構(gòu)的工具,圖3.8為流程圖的三種基本控制結(jié)構(gòu)。圖3.8三種基本控制結(jié)構(gòu)的流程圖3.6.1程序流程圖 流程圖的優(yōu)點(diǎn)是直觀(guān)清晰、易于使用,是開(kāi)發(fā)者普遍采用的工具,但是它有如下嚴(yán)重缺點(diǎn): (1)可以隨心所欲地畫(huà)控制流程線(xiàn)的流向,容易造成非結(jié)構(gòu)化的程序結(jié)構(gòu),編碼時(shí)勢(shì)必不加限制地使用GOTO語(yǔ)句,導(dǎo)致基本控制塊多入口多出口,這樣會(huì)使軟件質(zhì)量受到影響,與軟件設(shè)計(jì)的原則相違背。 (2)流程圖不能反映逐步求精的過(guò)程,往往反映的是最后的結(jié)果。(3)不易表示數(shù)據(jù)結(jié)構(gòu)。 為了克服流程圖的缺陷,要求流程圖都應(yīng)由三種基本控制結(jié)構(gòu)順序組合和完整嵌套而成,不能有相互交叉的情況,這樣的流程圖是結(jié)構(gòu)化的流程圖。 流程圖的優(yōu)點(diǎn)是直觀(guān)清晰、易于使用,是開(kāi)發(fā)者普遍采用的工具

示例示例例1.“在一組數(shù)中找出其中最大的數(shù)”的程序流程圖

MAX=A(1)i=2i=i+1MAX=A(i)i≤n?MAX<A(ii)TTFF對(duì)應(yīng)程序段:max:=A[1]i:=2WHILEi≤nDOIFA[i]>maxTHENmax:=A[i]i:=i+1注.1.A是一個(gè)n元數(shù)組;2.省略變量說(shuō)明;3.省略輸入、輸出語(yǔ)句。例1.“在一組數(shù)中找出其中最大的數(shù)”的程序流程圖

MAX=A

3.6.2PAD圖 PAD圖指問(wèn)題分析圖(ProblemAnalysisDiagram),是日本日立公司于1979年提出的一種算法描述工具,它是一種由左往右展開(kāi)的二維樹(shù)型結(jié)構(gòu)。PAD圖的基本控制結(jié)構(gòu)如圖3.9所示。

圖3.9PAD圖的基本控制結(jié)構(gòu)圖3.9PAD圖的基本控制結(jié)構(gòu) PAD圖的控制流程為自上而下、從左到右地執(zhí)行。圖3.10給出了將數(shù)組A(1)到A(10)進(jìn)行選擇法排序的算法描述的PAD圖。 PAD圖的控制流程為自上而下、從左到右地執(zhí)行。圖3.10圖3.10PAD圖的示例圖3.10PAD圖的示例 從圖3.10給出的例子可以看出PAD圖的優(yōu)點(diǎn)如下: (1)清晰地反映了程序的層次結(jié)構(gòu)。圖中的豎線(xiàn)為程序的層次線(xiàn),最左邊豎線(xiàn)是程序的主線(xiàn),其后一層一層展開(kāi),層次關(guān)系一目了然。 (2)支持逐步求精的設(shè)計(jì)方法,左邊層次中的內(nèi)容可以抽象,然后由左到右逐步細(xì)化。 (3)易讀易寫(xiě),使用方便。

從圖3.10給出的例子可以看出PAD圖的優(yōu)點(diǎn)如下: (4)支持結(jié)構(gòu)化的程序設(shè)計(jì)原理。 (5)可自動(dòng)生成程序。PAD圖有對(duì)照FORTRAN,Pascal,C等高級(jí)語(yǔ)言的標(biāo)準(zhǔn)圖式。因此在有PAD系統(tǒng)的計(jì)算機(jī)上(如日立公司的M系列機(jī)),可以直接輸入PAD圖,由機(jī)器自動(dòng)通過(guò)遍歷樹(shù)的辦法生成相應(yīng)的源代碼,大大提高了軟件的生產(chǎn)率。PAD圖為軟件的自動(dòng)化生成提供了有力的工具。 (4)支持結(jié)構(gòu)化的程序設(shè)計(jì)原理。例.“在一組數(shù)中找出其中最大的數(shù)”的PAD圖MAX=A(1)WHILEii≤nMAX=A(i)對(duì)應(yīng)程序段:max:=a[1]i=2WHILEi≤nDOIFa[i]>maxTHENmax:=a[i];i=i+1注.1.A是一個(gè)n元數(shù)組;2.省略變量說(shuō)明;3.省略輸入、輸出語(yǔ)句。MAX<A(ii)i=i+1例.“在一組數(shù)中找出其中最大的數(shù)”的PAD圖MAX=A(1)

PAD描述的示例

PAD描述的示例練習(xí):計(jì)算n!(要求掌握流程圖、PAD圖)開(kāi)始結(jié)束輸入nS=1T=1S=S×TT=T+1輸出ST>nTF1.程序流程圖練習(xí):計(jì)算n!(要求掌握流程圖、PAD圖)開(kāi)始結(jié)束輸入nS輸入nT=1S=1T=T+1S=S×T輸出S2.PAD圖UNTILT>nGetn;T=1;S=1;Repeat

S=S×T;T=T+1Until

T>n

PrintS;

3.PDL語(yǔ)言輸入nT=1S=1T=T+1S=S×T輸出S2.PAD圖UN 3.6.3過(guò)程設(shè)計(jì)語(yǔ)言 過(guò)程設(shè)計(jì)語(yǔ)言(ProcessDesignLanguage,簡(jiǎn)稱(chēng)PDL)是在偽碼的基礎(chǔ)上,擴(kuò)充了模塊的定義與調(diào)用、數(shù)據(jù)定義和輸入/輸出而形成的。它的控制結(jié)構(gòu)與偽碼相同。PDL是一種用于描述模塊算法設(shè)計(jì)和處理細(xì)節(jié)的語(yǔ)言。PDL與在8.5節(jié)中介紹的結(jié)構(gòu)化語(yǔ)言的結(jié)構(gòu)相似,一般分為內(nèi)外兩層語(yǔ)法,外層語(yǔ)法應(yīng)符合一般程序設(shè)計(jì)語(yǔ)言常用的語(yǔ)法規(guī)則,而內(nèi)層語(yǔ)法則用一些簡(jiǎn)單的句子、短語(yǔ)和通用的數(shù)學(xué)符號(hào),來(lái)描述程序應(yīng)執(zhí)行的功能。PDL具有嚴(yán)格的關(guān)鍵字外層語(yǔ)法,用于定義控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)和模塊接口,而它表示實(shí)際操作和條件的內(nèi)層語(yǔ)法又是靈活自由的,使用自然語(yǔ)言的詞匯。 3.6.3過(guò)程設(shè)計(jì)語(yǔ)言 PDL與結(jié)構(gòu)化分析中描述加工邏輯的“結(jié)構(gòu)化語(yǔ)言”所不同的僅是,它們的作用不同,抽象層次不同,模糊程度不同。“結(jié)構(gòu)化語(yǔ)言”是描述加工“做什么”的,并且使開(kāi)發(fā)人員和用戶(hù)都能看懂,因此無(wú)嚴(yán)格的外語(yǔ)法,內(nèi)層自然語(yǔ)言描述較抽象、較概括。而PDL是描述處理過(guò)程“怎么做”的細(xì)節(jié)。開(kāi)發(fā)人員將按其處理細(xì)節(jié)編程序,故外層語(yǔ)法更嚴(yán)格一些,更趨于形式化,內(nèi)層自然語(yǔ)言描述實(shí)際操作更具體更詳細(xì)一些。 1.PDL特點(diǎn) PDL的特點(diǎn)如下: (1)所有關(guān)鍵字都有固定語(yǔ)法,以便提供結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說(shuō)明和模塊的特征。 PDL與結(jié)構(gòu)化分析中描述加工邏輯的“結(jié)構(gòu)化語(yǔ)言”所不同的 (2)描述處理過(guò)程的說(shuō)明性語(yǔ)言沒(méi)有嚴(yán)格的語(yǔ)法。 (3)具有數(shù)據(jù)說(shuō)明機(jī)制,包括簡(jiǎn)單的與復(fù)雜的數(shù)據(jù)說(shuō)明。 (4)具有模塊定義和調(diào)用機(jī)制,開(kāi)發(fā)人員應(yīng)根據(jù)系統(tǒng)編程所用的語(yǔ)種,說(shuō)明PDL表示有關(guān)程序結(jié)構(gòu)。 (2)描述處理過(guò)程的說(shuō)明性語(yǔ)言沒(méi)有嚴(yán)格的語(yǔ)法。 2.程序結(jié)構(gòu) 用PDL表示的程序結(jié)構(gòu)一般有下列幾種結(jié)構(gòu)。 1)順序結(jié)構(gòu) 采用自然語(yǔ)言描述順序結(jié)構(gòu): 處理S1 處理S2

處理Sn 2.程序結(jié)構(gòu) 2)選擇結(jié)構(gòu) (1)IF-EISE結(jié)構(gòu):IF條件IF條件處理S1或處理SELSEENDIF處理S2ENDIF 2)選擇結(jié)構(gòu) (2)IF-ORIF-ELSE結(jié)構(gòu):IF條件1處理S1ORIF條件2

ELSE處理SnENDIF (2)IF-ORIF-ELSE結(jié)構(gòu): (3)CASE結(jié)構(gòu): CASEOF CASE(1) 處理S1 CASE(2) 處理S2

ELSE處理Sn ENDCASE (3)CASE結(jié)構(gòu): 3)重復(fù)結(jié)構(gòu) (1)FOR結(jié)構(gòu):FORi=1TOn循環(huán)體ENDFOR (2)WHILE結(jié)構(gòu):WHILE條件循環(huán)體ENDWHILE 3)重復(fù)結(jié)構(gòu) (3)UNTIL結(jié)構(gòu):REPEAT循環(huán)體UNTIL條件 4)出口結(jié)構(gòu) (1)ESCAPE結(jié)構(gòu)(退出本層結(jié)構(gòu)): WHILE條件處理S1 ESCAPELIF條件處理S2 ENDWHILE L:… (3)UNTIL結(jié)構(gòu): (2)CYCLE結(jié)構(gòu)(循環(huán)內(nèi)部進(jìn)入循環(huán)的下一次): L:WHILE條件處理S1CYCLELIF條件處理S2ENDWHILE (2)CYCLE結(jié)構(gòu)(循環(huán)內(nèi)部進(jìn)入循環(huán)的下一次): 5)擴(kuò)充結(jié)構(gòu) (1)模塊定義: PROCEDURE模塊名(參數(shù))RETURN END (2)模塊調(diào)用: CALL模塊名(參數(shù)) 5)擴(kuò)充結(jié)構(gòu) (3)數(shù)據(jù)定義: DECLARE屬性變量名,… 屬性有:字符、整型、實(shí)型、雙精度、指針、數(shù)組及結(jié)構(gòu)等類(lèi)型。 (4)輸入/輸出: GET(輸入變量表) PUT(輸出變量表) (3)數(shù)據(jù)定義:

3.PDL應(yīng)用示例 現(xiàn)以××系統(tǒng)主控模塊詳細(xì)設(shè)計(jì)為例,說(shuō)明如何用PDL來(lái)描述。 PROCEDURE模塊名()清屏;顯示××系統(tǒng)用戶(hù)界面;PUT(“請(qǐng)輸入用戶(hù)口令:”);GET(password);IFpassword<>系統(tǒng)口令提示警告信息;退出運(yùn)行ENDIF 3.PDL應(yīng)用示例 顯示本系統(tǒng)主菜單;WHILE(true)接收用戶(hù)選擇ABC;IFABC=“退出”Break;ENDIF調(diào)用相應(yīng)下層模塊完成用戶(hù)選擇功能;ENDWHILE;清屏;RETURNEND 顯示本系統(tǒng)主菜單; 從示例可以看到PDL的總體結(jié)構(gòu)與一般程序完全相同。外語(yǔ)法同相應(yīng)程序語(yǔ)言一致,內(nèi)語(yǔ)法使用自然語(yǔ)言,易編寫(xiě),易理解,也很容易轉(zhuǎn)換成源程序。除此以外,還有以下優(yōu)點(diǎn): (1)提供的機(jī)制較圖形全面,為保證詳細(xì)設(shè)計(jì)與編碼的質(zhì)量創(chuàng)造了有利條件。 (2)可將注釋嵌入在源程序中一起作為程序的文檔,并可同高級(jí)程序設(shè)計(jì)語(yǔ)言一樣進(jìn)行編輯、修改,有利于軟件的維護(hù)。 (3)可自動(dòng)生成程序代碼,提高軟件生產(chǎn)率。目前已有PDL多種版本(如PDL/pascal,PDL/C,PDL/Ada等),為自動(dòng)生成相應(yīng)代碼提供了便利條件。 從示例可以看到PDL的總體結(jié)構(gòu)與一般程序完全相同。外語(yǔ)法3.7小結(jié) 從軟件設(shè)計(jì)開(kāi)始,瀑布模型的各階段都是面向計(jì)算機(jī)領(lǐng)域的。軟件設(shè)計(jì)分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段。 概要設(shè)計(jì)的任務(wù)是要建立軟件系統(tǒng)的體系結(jié)構(gòu),即軟件系統(tǒng)要?jiǎng)澐侄嗌賯€(gè)模塊,模塊之間的層次結(jié)構(gòu)和調(diào)用關(guān)系是怎樣的。同時(shí)還要設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫(kù)結(jié)構(gòu),設(shè)計(jì)人機(jī)接口等。3.7小結(jié) 從軟件設(shè)計(jì)開(kāi)始,瀑布模型的各階段都是面向計(jì)算 概要設(shè)計(jì)還要求遵守相應(yīng)的設(shè)計(jì)原理,如模塊化、抽象、信息隱蔽和模塊獨(dú)立性等原理。在建立軟件體系結(jié)構(gòu)時(shí)還要遵循軟件結(jié)構(gòu)設(shè)計(jì)的一些準(zhǔn)則,如軟件結(jié)構(gòu)的深度、寬度、扇入、扇出要適當(dāng),模塊的作用范圍要在其控制范圍之中等。 軟件體系結(jié)構(gòu)可用軟件結(jié)構(gòu)圖和IPO圖的H圖來(lái)描述。概要設(shè)計(jì)的方法可采用結(jié)構(gòu)化方法和面向?qū)ο蠓椒ǖ葋?lái)設(shè)計(jì)。概要設(shè)計(jì)產(chǎn)生的文檔是概要設(shè)計(jì)說(shuō)明書(shū)。 概要設(shè)計(jì)之后要進(jìn)行軟件詳細(xì)設(shè)計(jì)。軟件詳細(xì)設(shè)計(jì)的主要任務(wù)是描述每個(gè)模塊的算法,即實(shí)現(xiàn)該模塊功能的處理過(guò)程,它通常采用結(jié)構(gòu)化程序設(shè)計(jì)來(lái)進(jìn)行,采用程序流程圖、PAD圖、PDL語(yǔ)言等工具來(lái)描述。 概要設(shè)計(jì)還要求遵守相應(yīng)的設(shè)計(jì)原理,如模塊化、抽象、信 對(duì)于某些項(xiàng)目,由于采用了相應(yīng)的開(kāi)發(fā)工具,如PowerBuilder,Develop2000等,這時(shí)軟件詳細(xì)設(shè)計(jì)階段工作就不太明顯了。

對(duì)于某些項(xiàng)目,由于采用了相應(yīng)的開(kāi)發(fā)工具,如PowerBu習(xí)題 1.什么是軟件概要設(shè)計(jì)?該階段的基本任務(wù)是什么? 2.軟件設(shè)計(jì)的基本原理包括哪些內(nèi)容? 3.衡量模塊獨(dú)立性的兩個(gè)標(biāo)準(zhǔn)是什么?它們各表示什么含義? 4.模塊間的耦合性有哪幾種?它們各表示什么含義? 5.模塊的內(nèi)聚性有哪幾種?各表示什么含義?習(xí)題 1.什么是軟件概要設(shè)計(jì)?該階段的基本任務(wù)是什么? 6.什么是軟件結(jié)構(gòu)?簡(jiǎn)述軟件結(jié)構(gòu)設(shè)計(jì)優(yōu)化準(zhǔn)則。 7.什么是模塊的影響范圍?什么是模塊的控制范圍?它們之間應(yīng)該建立什么關(guān)系? 8.詳細(xì)設(shè)計(jì)的基本任務(wù)是什么?有哪幾種描述方法? 9.結(jié)構(gòu)化程序設(shè)計(jì)基本要點(diǎn)是什么? 10.請(qǐng)使用流程圖、PAD圖和PDL語(yǔ)言描述下列程序的算法。 (1)在數(shù)據(jù)A(1)~A(10)中求最大數(shù)和次大數(shù)。 (2)輸入三個(gè)正整數(shù)作為邊長(zhǎng),判斷該三條邊構(gòu)成的三角形是直角、等腰或一般三角形。 6.什么是軟件結(jié)構(gòu)?簡(jiǎn)述軟件結(jié)構(gòu)設(shè)計(jì)優(yōu)化準(zhǔn)則。

11.用PAD圖描述以下問(wèn)題的控制結(jié)構(gòu)。 有一個(gè)表A(1),A(2),…,A(N),按遞增順序排列。給定一個(gè)Key值,在表中用折半法查找。若找到,將表位置i送入x,否則將零送到x,同時(shí)將Key值插入表中。 算法: (1)置初值H=1(表頭),T=N(表尾)。 (2)置i=[(H+T)/2](取整)。 (3)若Key=A(i),則找到,i送到x;若Key>A(i),則Key在表的后半部分,i+1送入H;若Key<A(i),則Key在表的前半部分,i-1送入T,重復(fù)第2步查找,直到H>T為止。 (4)查不到時(shí),將A(i),…,A(N)移到A(i+1),…,A(N+1),Key值送入A(i)中。 11.用PAD圖描述以下問(wèn)題的控制結(jié)構(gòu)。軟件設(shè)計(jì)

3.1軟件概要設(shè)計(jì)概述3.2軟件設(shè)計(jì)的基本原理3.3軟件結(jié)構(gòu)準(zhǔn)則3.5軟件詳細(xì)設(shè)計(jì)3.6軟件詳細(xì)設(shè)計(jì)表示法3.7小結(jié)習(xí)題軟件設(shè)計(jì) 3.1軟件概要設(shè)計(jì)概述3.5軟件詳細(xì)設(shè)計(jì) 3.5.1詳細(xì)設(shè)計(jì)的基本任務(wù) 1.算法設(shè)計(jì) 用某種圖形、表格、語(yǔ)言等工具將每個(gè)模塊處理過(guò)程的詳細(xì)算法描述出來(lái)。 2.?dāng)?shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 對(duì)于需求分析、概要設(shè)計(jì)確定的概念性的數(shù)據(jù)類(lèi)型進(jìn)行確切的定義。3.5軟件詳細(xì)設(shè)計(jì) 3.5.1詳細(xì)設(shè)計(jì)的基本任務(wù) 3.物理設(shè)計(jì) 對(duì)數(shù)據(jù)庫(kù)進(jìn)行物理設(shè)計(jì),即確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。物理結(jié)構(gòu)主要指數(shù)據(jù)庫(kù)的存儲(chǔ)記錄格式、存儲(chǔ)記錄安排和存儲(chǔ)方法,這些都依賴(lài)于具體所使用的數(shù)據(jù)庫(kù)系統(tǒng)。 4.其他設(shè)計(jì) 根據(jù)軟件系統(tǒng)的類(lèi)型,還可能要進(jìn)行以下設(shè)計(jì): (1)代碼設(shè)計(jì):為了提高數(shù)據(jù)的輸入、分類(lèi)、存儲(chǔ)及檢索等操作的效率,以及節(jié)約內(nèi)存空間,對(duì)數(shù)據(jù)庫(kù)中的某些數(shù)據(jù)項(xiàng)的值要進(jìn)行代碼設(shè)計(jì)。 3.物理設(shè)計(jì) (2)輸入/輸出格式設(shè)計(jì)。 (3)人機(jī)對(duì)話(huà)設(shè)計(jì):對(duì)于一個(gè)實(shí)時(shí)系統(tǒng),用戶(hù)與計(jì)算機(jī)需頻繁對(duì)話(huà),因此要進(jìn)行對(duì)話(huà)方式、內(nèi)容及格式的具體設(shè)計(jì)。 5.編寫(xiě)詳細(xì)設(shè)計(jì)說(shuō)明書(shū) 詳細(xì)設(shè)計(jì)說(shuō)明書(shū)有下列的主要內(nèi)容: (1)引言:包括編寫(xiě)目的、背景、定義、參考資料。 (2)程序系統(tǒng)的組織結(jié)構(gòu)。

(2)輸入/輸出格式設(shè)計(jì)。 (3)程序1(標(biāo)識(shí)符)設(shè)計(jì)說(shuō)明:包括功能、性能、輸入、輸出、算法、流程邏輯、接口。 (4)程序2(標(biāo)識(shí)符)設(shè)計(jì)說(shuō)明。 (5)程序N(標(biāo)識(shí)符)設(shè)計(jì)說(shuō)明。 6.評(píng)審 對(duì)處理過(guò)程的算法和數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)都要評(píng)審。

(3)程序1(標(biāo)識(shí)符)設(shè)計(jì)說(shuō)明:包括功能、性能、輸入、 3.5.2詳細(xì)設(shè)計(jì)方法 處理過(guò)程設(shè)計(jì)中采用的典型方法是結(jié)構(gòu)化程序設(shè)計(jì)(SP)方法,最早是由E.W.Dijkstra在20世紀(jì)60年代中期提出的。詳細(xì)設(shè)計(jì)并不是具體地編程序,而是已經(jīng)細(xì)化成很容易從中產(chǎn)生程序的圖紙。因此詳細(xì)設(shè)計(jì)的結(jié)果基本決定了最終程序的質(zhì)量。為了提高軟件的質(zhì)量,延長(zhǎng)軟件的生存期,軟件的可測(cè)試性、可維護(hù)性是重要保障。軟件的可測(cè)試性、可維護(hù)性與程序的易讀性有很大關(guān)系。詳細(xì)設(shè)計(jì)的目標(biāo)不僅是邏輯上能正確地實(shí)現(xiàn)每個(gè)模塊的功能,還應(yīng)使設(shè)計(jì)出的處理過(guò)程清晰易讀。結(jié)構(gòu)化程序設(shè)計(jì)是實(shí)現(xiàn)該目標(biāo)的關(guān)鍵技術(shù)之一,它指導(dǎo)人們用良好的思想方法開(kāi)發(fā)易于理解、易于驗(yàn)證的程序。結(jié)構(gòu)化程序設(shè)計(jì)方法有以下幾個(gè)基本要點(diǎn)。 3.5.2詳細(xì)設(shè)計(jì)方法 1.采用自頂向下、逐步求精的程序設(shè)計(jì)方法 在需求分析、概要設(shè)計(jì)中,都采用了自頂向下、逐層細(xì)化的方法。使用“抽象”這個(gè)手段,上層對(duì)問(wèn)題抽象、對(duì)模塊抽象和對(duì)數(shù)據(jù)抽象,下層則進(jìn)一步分解,進(jìn)入另一個(gè)抽象層次。在詳細(xì)設(shè)計(jì)中,雖然處于“具體”設(shè)計(jì)階段,但在設(shè)計(jì)某個(gè)模塊內(nèi)部處理過(guò)程中,仍可以逐步求精,降低處理細(xì)節(jié)的復(fù)雜度。 1.采用自頂向下、逐步求精的程序設(shè)計(jì)方法 2.使用三種基本控制結(jié)構(gòu)構(gòu)造程序

任何程序都可由順序、選擇及重復(fù)三種基本控制結(jié)構(gòu)構(gòu)造。這三種基本結(jié)構(gòu)的共同點(diǎn)是單入口、單出口。 2.使用三種基本控制結(jié)構(gòu)構(gòu)造程序三種方式對(duì)模糊過(guò)程進(jìn)行分解:

(1)用順序方式對(duì)過(guò)程分解,確定各部分的執(zhí)行順序。 (2)用選擇方式對(duì)過(guò)程分解,確定某個(gè)部分的執(zhí)行條件。3)用循環(huán)方式對(duì)過(guò)程分解,確定某個(gè)部分進(jìn)行重復(fù)的開(kāi)始和結(jié)束的條件。 對(duì)處理過(guò)程仍然模糊的部分反復(fù)使用以上分解方法,最終可將所有細(xì)節(jié)確定下來(lái)。三種方式對(duì)模糊過(guò)程進(jìn)行分解:

(1)用順序方式對(duì)過(guò)例:在一組數(shù)中找出其中最大的數(shù)

1輸入一組數(shù);1輸入一個(gè)數(shù)組;1輸入一個(gè)數(shù)組;2找出其中的最大數(shù);3輸出最大數(shù)。3輸出最大數(shù)。2.1任取一數(shù),假定它就是最大數(shù);2.2將該數(shù)與其余各數(shù)逐一比較;2.3若發(fā)現(xiàn)任何數(shù)大于假設(shè)的最大數(shù),即取而代之;2.1令”最大數(shù)”=數(shù)組的第一個(gè)元素;2.2從第二個(gè)元素至最后一個(gè)元素做循環(huán);2.3如果新元素>“最大數(shù)”則“最大數(shù)”=新元素;3輸出“最大數(shù)”。求解步驟細(xì)化第二步結(jié)構(gòu)化語(yǔ)言描述問(wèn)題求解逐步細(xì)化的過(guò)程例:在一組數(shù)中找出其中最大的數(shù)

1輸入一組數(shù);1輸

3.主程序員的組織形式 主程序員的組織形式指開(kāi)發(fā)程序的人員應(yīng)采用以一個(gè)主程序員(負(fù)責(zé)全部技術(shù)活動(dòng))、一個(gè)后備程序員(協(xié)調(diào)、支持主程序員)和一個(gè)程序管理員(負(fù)責(zé)事務(wù)性工作,如收集、記錄數(shù)據(jù),文檔資料管理等)三人為核心,再加上一些專(zhuān)家(如通信專(zhuān)家、數(shù)據(jù)庫(kù)專(zhuān)家)、其他技術(shù)人員組成小組。這種組織形式突出了主程序員的領(lǐng)導(dǎo),設(shè)計(jì)責(zé)任集中在少數(shù)人身上,有利于提高軟件質(zhì)量,并且能有效地提高軟件生產(chǎn)率。這種組織形式最先由IBM公司實(shí)施,隨后其他軟件公司也紛紛采用主程序員制的工作方式。 因此,結(jié)構(gòu)化程序設(shè)計(jì)方法是綜合應(yīng)用這些手段來(lái)構(gòu)造高質(zhì)量程序的思想方法。

3.6軟件詳細(xì)設(shè)計(jì)表示法

關(guān)于描述工具的有關(guān)說(shuō)明:1.為了給出軟件結(jié)構(gòu)圖中每一個(gè)模塊的算法和塊內(nèi)數(shù)據(jù)結(jié)構(gòu)的清晰描述,需要采用適當(dāng)?shù)谋磉_(dá)工具。2.詳細(xì)設(shè)計(jì)的表達(dá)工具有三類(lèi):圖形、表格和語(yǔ)言。3.無(wú)論哪類(lèi)描述工具不僅要具有描述設(shè)計(jì)過(guò)程,如控制流程、處理功能、數(shù)據(jù)組織及其它方面的細(xì)節(jié)的能力,而且在編碼階段能夠直接將它翻譯為用程序設(shè)計(jì)語(yǔ)言書(shū)寫(xiě)的源程序。4.詳細(xì)設(shè)計(jì)的描述工具除了以前介紹過(guò)判定樹(shù)和判定表外,還有程序流程圖、N-S圖、PAD圖及PDL等幾種常用的工具.3.6軟件詳細(xì)設(shè)計(jì)表示法 關(guān)于描述工具的有關(guān)說(shuō)明:圖3.8三種基本控制結(jié)構(gòu)的流程圖3.6.1程序流程圖 程序流程圖又稱(chēng)為程序框圖,它是歷史最悠久、使用最廣泛的一種描述程序邏輯結(jié)構(gòu)的工具,圖3.8為流程圖的三種基本控制結(jié)構(gòu)。圖3.8三種基本控制結(jié)構(gòu)的流程圖3.6.1程序流程圖 流程圖的優(yōu)點(diǎn)是直觀(guān)清晰、易于使用,是開(kāi)發(fā)者普遍采用的工具,但是它有如下嚴(yán)重缺點(diǎn): (1)可以隨心所欲地畫(huà)控制流程線(xiàn)的流向,容易造成非結(jié)構(gòu)化的程序結(jié)構(gòu),編碼時(shí)勢(shì)必不加限制地使用GOTO語(yǔ)句,導(dǎo)致基本控制塊多入口多出口,這樣會(huì)使軟件質(zhì)量受到影響,與軟件設(shè)計(jì)的原則相違背。 (2)流程圖不能反映逐步求精的過(guò)程,往往反映的是最后的結(jié)果。(3)不易表示數(shù)據(jù)結(jié)構(gòu)。 為了克服流程圖的缺陷,要求流程圖都應(yīng)由三種基本控制結(jié)構(gòu)順序組合和完整嵌套而成,不能有相互交叉的情況,這樣的流程圖是結(jié)構(gòu)化的流程圖。 流程圖的優(yōu)點(diǎn)是直觀(guān)清晰、易于使用,是開(kāi)發(fā)者普遍采用的工具

示例示例例1.“在一組數(shù)中找出其中最大的數(shù)”的程序流程圖

MAX=A(1)i=2i=i+1MAX=A(i)i≤n?MAX<A(ii)TTFF對(duì)應(yīng)程序段:max:=A[1]i:=2WHILEi≤nDOIFA[i]>maxTHENmax:=A[i]i:=i+1注.1.A是一個(gè)n元數(shù)組;2.省略變量說(shuō)明;3.省略輸入、輸出語(yǔ)句。例1.“在一組數(shù)中找出其中最大的數(shù)”的程序流程圖

MAX=A

3.6.2PAD圖 PAD圖指問(wèn)題分析圖(ProblemAnalysisDiagram),是日本日立公司于1979年提出的一種算法描述工具,它是一種由左往右展開(kāi)的二維樹(shù)型結(jié)構(gòu)。PAD圖的基本控制結(jié)構(gòu)如圖3.9所示。

圖3.9PAD圖的基本控制結(jié)構(gòu)圖3.9PAD圖的基本控制結(jié)構(gòu) PAD圖的控制流程為自上而下、從左到右地執(zhí)行。圖3.10給出了將數(shù)組A(1)到A(10)進(jìn)行選擇法排序的算法描述的PAD圖。 PAD圖的控制流程為自上而下、從左到右地執(zhí)行。圖3.10圖3.10PAD圖的示例圖3.10PAD圖的示例 從圖3.10給出的例子可以看出PAD圖的優(yōu)點(diǎn)如下: (1)清晰地反映了程序的層次結(jié)構(gòu)。圖中的豎線(xiàn)為程序的層次線(xiàn),最左邊豎線(xiàn)是程序的主線(xiàn),其后一層一層展開(kāi),層次關(guān)系一目了然。 (2)支持逐步求精的設(shè)計(jì)方法,左邊層次中的內(nèi)容可以抽象,然后由左到右逐步細(xì)化。 (3)易讀易寫(xiě),使用方便。

從圖3.10給出的例子可以看出PAD圖的優(yōu)點(diǎn)如下: (4)支持結(jié)構(gòu)化的程序設(shè)計(jì)原理。 (5)可自動(dòng)生成程序。PAD圖有對(duì)照FORTRAN,Pascal,C等高級(jí)語(yǔ)言的標(biāo)準(zhǔn)圖式。因此在有PAD系統(tǒng)的計(jì)算機(jī)上(如日立公司的M系列機(jī)),可以直接輸入PAD圖,由機(jī)器自動(dòng)通過(guò)遍歷樹(shù)的辦法生成相應(yīng)的源代碼,大大提高了軟件的生產(chǎn)率。PAD圖為軟件的自動(dòng)化生成提供了有力的工具。 (4)支持結(jié)構(gòu)化的程序設(shè)計(jì)原理。例.“在一組數(shù)中找出其中最大的數(shù)”的PAD圖MAX=A(1)WHILEii≤nMAX=A(i)對(duì)應(yīng)程序段:max:=a[1]i=2WHILEi≤nDOIFa[i]>maxTHENmax:=a[i];i=i+1注.1.A是一個(gè)n元數(shù)組;2.省略變量說(shuō)明;3.省略輸入、輸出語(yǔ)句。MAX<A(ii)i=i+1例.“在一組數(shù)中找出其中最大的數(shù)”的PAD圖MAX=A(1)

PAD描述的示例

PAD描述的示例練習(xí):計(jì)算n!(要求掌握流程圖、PAD圖)開(kāi)始結(jié)束輸入nS=1T=1S=S×TT=T+1輸出ST>nTF1.程序流程圖練習(xí):計(jì)算n!(要求掌握流程圖、PAD圖)開(kāi)始結(jié)束輸入nS輸入nT=1S=1T=T+1S=S×T輸出S2.PAD圖UNTILT>nGetn;T=1;S=1;Repeat

S=S×T;T=T+1Until

T>n

PrintS;

3.PDL語(yǔ)言輸入nT=1S=1T=T+1S=S×T輸出S2.PAD圖UN 3.6.3過(guò)程設(shè)計(jì)語(yǔ)言 過(guò)程設(shè)計(jì)語(yǔ)言(ProcessDesignLanguage,簡(jiǎn)稱(chēng)PDL)是在偽碼的基礎(chǔ)上,擴(kuò)充了模塊的定義與調(diào)用、數(shù)據(jù)定義和輸入/輸出而形成的。它的控制結(jié)構(gòu)與偽碼相同。PDL是一種用于描述模塊算法設(shè)計(jì)和處理細(xì)節(jié)的語(yǔ)言。PDL與在8.5節(jié)中介紹的結(jié)構(gòu)化語(yǔ)言的結(jié)構(gòu)相似,一般分為內(nèi)外兩層語(yǔ)法,外層語(yǔ)法應(yīng)符合一般程序設(shè)計(jì)語(yǔ)言常用的語(yǔ)法規(guī)則,而內(nèi)層語(yǔ)法則用一些簡(jiǎn)單的句子、短語(yǔ)和通用的數(shù)學(xué)符號(hào),來(lái)描述程序應(yīng)執(zhí)行的功能。PDL具有嚴(yán)格的關(guān)鍵字外層語(yǔ)法,用于定義控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)和模塊接口,而它表示實(shí)際操作和條件的內(nèi)層語(yǔ)法又是靈活自由的,使用自然語(yǔ)言的詞匯。 3.6.3過(guò)程設(shè)計(jì)語(yǔ)言 PDL與結(jié)構(gòu)化分析中描述加工邏輯的“結(jié)構(gòu)化語(yǔ)言”所不同的僅是,它們的作用不同,抽象層次不同,模糊程度不同。“結(jié)構(gòu)化語(yǔ)言”是描述加工“做什么”的,并且使開(kāi)發(fā)人員和用戶(hù)都能看懂,因此無(wú)嚴(yán)格的外語(yǔ)法,內(nèi)層自然語(yǔ)言描述較抽象、較概括。而PDL是描述處理過(guò)程“怎么做”的細(xì)節(jié)。開(kāi)發(fā)人員將按其處理細(xì)節(jié)編程序,故外層語(yǔ)法更嚴(yán)格一些,更趨于形式化,內(nèi)層自然語(yǔ)言描述實(shí)際操作更具體更詳細(xì)一些。 1.PDL特點(diǎn) PDL的特點(diǎn)如下: (1)所有關(guān)鍵字都有固定語(yǔ)法,以便提供結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說(shuō)明和模塊的特征。 PDL與結(jié)構(gòu)化分析中描述加工邏輯的“結(jié)構(gòu)化語(yǔ)言”所不同的 (2)描述處理過(guò)程的說(shuō)明性語(yǔ)言沒(méi)有嚴(yán)格的語(yǔ)法。 (3)具有數(shù)據(jù)說(shuō)明機(jī)制,包括簡(jiǎn)單的與復(fù)雜的數(shù)據(jù)說(shuō)明。 (4)具有模塊定義和調(diào)用機(jī)制,開(kāi)發(fā)人員應(yīng)根據(jù)系統(tǒng)編程所用的語(yǔ)種,說(shuō)明PDL表示有關(guān)程序結(jié)構(gòu)。 (2)描述處理過(guò)程的說(shuō)明性語(yǔ)言沒(méi)有嚴(yán)格的語(yǔ)法。 2.程序結(jié)構(gòu) 用PDL表示的程序結(jié)構(gòu)一般有下列幾種結(jié)構(gòu)。 1)順序結(jié)構(gòu) 采用自然語(yǔ)言描述順序結(jié)構(gòu): 處理S1 處理S2

處理Sn 2.程序結(jié)構(gòu) 2)選擇結(jié)構(gòu) (1)IF-EISE結(jié)構(gòu):IF條件IF條件處理S1或處理SELSEENDIF處理S2ENDIF 2)選擇結(jié)構(gòu) (2)IF-ORIF-ELSE結(jié)構(gòu):IF條件1處理S1ORIF條件2

ELSE處理SnENDIF (2)IF-ORIF-ELSE結(jié)構(gòu): (3)CASE結(jié)構(gòu): CASEOF CASE(1) 處理S1 CASE(2) 處理S2

ELSE處理Sn ENDCASE (3)CASE結(jié)構(gòu): 3)重復(fù)結(jié)構(gòu) (1)FOR結(jié)構(gòu):FORi=1TOn循環(huán)體ENDFOR (2)WHILE結(jié)構(gòu):WHILE條件循環(huán)體ENDWHILE 3)重復(fù)結(jié)構(gòu) (3)UNTIL結(jié)構(gòu):REPEAT循環(huán)體UNTIL條件 4)出口結(jié)構(gòu) (1)ESCAPE結(jié)構(gòu)(退出本層結(jié)構(gòu)): WHILE條件處理S1 ESCAPELIF條件處理S2 ENDWHILE L:… (3)UNTIL結(jié)構(gòu): (2)CYCLE結(jié)構(gòu)(循環(huán)內(nèi)部進(jìn)入循環(huán)的下一次): L:WHILE條件處理S1CYCLELIF條件處理S2ENDWHILE (2)CYCLE結(jié)構(gòu)(循環(huán)內(nèi)部進(jìn)入循環(huán)的下一次): 5)擴(kuò)充結(jié)構(gòu) (1)模塊定義: PROCEDURE模塊名(參數(shù))RETURN END (2)模塊調(diào)用: CALL模塊名(參數(shù)) 5)擴(kuò)充結(jié)構(gòu) (3)數(shù)據(jù)定義: DECLARE屬性變量名,… 屬性有:字符、整型、實(shí)型、雙精度、指針、數(shù)組及結(jié)構(gòu)等類(lèi)型。 (4)輸入/輸出: GET(輸入變量表) PUT(輸出變量表) (3)數(shù)據(jù)定義:

3.PDL應(yīng)用示例 現(xiàn)以××系統(tǒng)主控模塊詳細(xì)設(shè)計(jì)為例,說(shuō)明如何用PDL來(lái)描述。 PROCEDURE模塊名()清屏;顯示××系統(tǒng)用戶(hù)界面;PUT(“請(qǐng)輸入用戶(hù)口令:”);GET(password);IFpassword<>系統(tǒng)口令提示警告信息;退出運(yùn)行ENDIF 3.PDL應(yīng)用示例 顯示本系統(tǒng)主菜單;WHILE(true)接收用戶(hù)選擇ABC;IFABC=“退出”Break;ENDIF調(diào)用相應(yīng)下層模塊完成用

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論