




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件相關(guān)設(shè)計(jì)第四章上一章小結(jié):需求分析是軟件工程過(guò)程中的第一個(gè)技術(shù)步驟,通過(guò)該步驟,軟件需求被描述為具體的規(guī)約,為軟件設(shè)計(jì)奠定了基礎(chǔ);需求分析旨在描述“做什么”,必須關(guān)注問(wèn)題的信息域、功能域和行為域。用創(chuàng)建模型、劃分問(wèn)題、描述需求要素的方法來(lái)表示需求細(xì)節(jié);結(jié)構(gòu)化分析依賴于數(shù)據(jù)建模和流建模來(lái)創(chuàng)建全面的需求分析模型。ERD描述系統(tǒng)中的數(shù)據(jù)對(duì)象,DFD描述控制轉(zhuǎn)換,它們共同創(chuàng)建系統(tǒng)的功能模型。STD創(chuàng)建行為模型,DD描述數(shù)據(jù)內(nèi)容。開(kāi)發(fā)階段的工作流程是:設(shè)計(jì)階段完成:數(shù)據(jù)與結(jié)構(gòu)設(shè)計(jì)和過(guò)程設(shè)計(jì);設(shè)計(jì)階段的任務(wù)是回答:怎么做?本章要解決的問(wèn)題:軟件需要“怎么做”?如何描述“怎么做”?如何衡量軟件設(shè)計(jì)的質(zhì)量?即:軟件設(shè)計(jì)的基本概念、任務(wù)、原則、方法和標(biāo)準(zhǔn)是什么?軟件設(shè)計(jì)的目標(biāo)與任務(wù)軟件設(shè)計(jì)的概念與原理模塊獨(dú)立啟發(fā)規(guī)則軟件結(jié)構(gòu)的圖形工具面向數(shù)據(jù)流的設(shè)計(jì)方法人機(jī)界面設(shè)計(jì)過(guò)程設(shè)計(jì)及工具面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法第四章軟件設(shè)計(jì)§4-1軟件設(shè)計(jì)的目標(biāo)和任務(wù)根據(jù)分析模型(數(shù)據(jù)、功能、行為)所描述的軟件需求,以及功能和性能需求,使用某一種設(shè)計(jì)方法進(jìn)行:數(shù)據(jù)設(shè)計(jì)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)接口設(shè)計(jì)過(guò)程設(shè)計(jì)。數(shù)據(jù)設(shè)計(jì):將分析時(shí)創(chuàng)建的信息域模型(ERD)變換成實(shí)現(xiàn)軟件所需的數(shù)據(jù)結(jié)構(gòu)。體系結(jié)構(gòu)設(shè)計(jì):定義程序的主要結(jié)構(gòu)元素之間的關(guān)系。接口設(shè)計(jì):描述了軟件內(nèi)部、軟件和協(xié)作系統(tǒng)之間的以及軟件同人之間如何通信。過(guò)程設(shè)計(jì):將程序體系結(jié)構(gòu)元素變換為對(duì)軟件構(gòu)件的過(guò)程描述。將分析模型轉(zhuǎn)換為軟件設(shè)計(jì)數(shù)據(jù)字典數(shù)據(jù)流圖E-R圖狀態(tài)變遷圖加工規(guī)約控制規(guī)約數(shù)據(jù)對(duì)描述象數(shù)據(jù)設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)接口設(shè)計(jì)過(guò)程設(shè)計(jì)分析模型設(shè)計(jì)模型開(kāi)發(fā)階段的信息流軟件設(shè)計(jì)過(guò)程從工程管理的角度來(lái)看,軟件設(shè)計(jì)分兩步完成。概要設(shè)計(jì),將軟件需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件的系統(tǒng)結(jié)構(gòu)。詳細(xì)設(shè)計(jì),即過(guò)程設(shè)計(jì)。通過(guò)對(duì)結(jié)構(gòu)表示進(jìn)行細(xì)化,得到軟件的詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和算法。軟件設(shè)計(jì)的重要性:軟件工程過(guò)程的技術(shù)核心軟件設(shè)計(jì)是后續(xù)開(kāi)發(fā)步驟及軟件維護(hù)工作的基礎(chǔ)。如果沒(méi)有設(shè)計(jì),只能建立一個(gè)不穩(wěn)定的系統(tǒng)結(jié)構(gòu)基本概念:為“使程序正確”提供了框架軟件設(shè)計(jì)概念力求解決以下問(wèn)題:使用什么標(biāo)準(zhǔn)將軟件系統(tǒng)劃分為單個(gè)構(gòu)件(獨(dú)立成分)在各構(gòu)件內(nèi),功能細(xì)節(jié)和數(shù)據(jù)結(jié)構(gòu)細(xì)節(jié)如何表示用什么標(biāo)準(zhǔn)對(duì)軟件設(shè)計(jì)的技術(shù)質(zhì)量做統(tǒng)一衡量?§4-2軟件設(shè)計(jì)概念與原理模塊化抽象化逐步求精信息隱蔽一、模塊化軟件系統(tǒng)的模塊化是指整個(gè)軟件被劃分成若干單獨(dú)命名和可編址的部分,稱之為模塊(構(gòu)件)。這些模塊可以被組裝起來(lái)以滿足整個(gè)問(wèn)題的需求。優(yōu)點(diǎn):降低復(fù)雜度、方便修改、并行開(kāi)發(fā)模塊用矩形框表示,并用模塊的名字標(biāo)記它。模塊定義的五個(gè)標(biāo)準(zhǔn):模塊的可分解性模塊的可組裝性模塊的可理解性模塊的連續(xù)性模塊的保護(hù)性模塊化是好的軟件設(shè)計(jì)的一個(gè)基本準(zhǔn)則高層模塊——從整體上把握問(wèn)題,
隱蔽細(xì)節(jié)復(fù)雜問(wèn)題分解較小問(wèn)題
構(gòu)造低層模塊
如何進(jìn)行模塊化設(shè)計(jì)?抽象是一個(gè)重要的概念!二、抽象
什么是抽象?概念:抽象出事物的本質(zhì)特性而暫時(shí)不考慮它們的細(xì)節(jié)。軟件設(shè)計(jì)為什么要用抽象概念?處理復(fù)雜系統(tǒng)的惟一有效的方法是用層次的方法構(gòu)造和分析它。軟件系統(tǒng)進(jìn)行模塊設(shè)計(jì)時(shí),可有不同的抽象層次。模塊化與抽象用自頂向下由抽象到具體的方式分配控制,其優(yōu)點(diǎn):簡(jiǎn)化了設(shè)計(jì)與實(shí)現(xiàn);提高了軟件的可理解性和可測(cè)試性;使軟件更易于維護(hù)。三、逐步求精逐步求精是人類解決復(fù)雜問(wèn)題時(shí)采用的基本技術(shù)定義:為了能集中精力解決主要問(wèn)題而盡量推遲對(duì)問(wèn)題細(xì)節(jié)的考慮求精抽象四、信息隱蔽信息隱蔽(parnas)方法:每個(gè)模塊的實(shí)現(xiàn)細(xì)節(jié)對(duì)于其它模塊來(lái)說(shuō)是隱蔽的。也就是說(shuō),模塊中所包含的信息(包括數(shù)據(jù)和過(guò)程)不允許其它不需要這些信息的模塊使用?!?-3模塊的獨(dú)立性如何度量模塊的獨(dú)立性?如何設(shè)計(jì)具有獨(dú)立性的模塊?一、模塊的基本概念模塊(Module)
“模塊”,又稱“組件”。它一般具有如下三個(gè)基本屬性:功能:描述該模塊實(shí)現(xiàn)什么功能邏輯:描述模塊內(nèi)部怎么做狀態(tài):該模塊使用時(shí)的環(huán)境和條件模塊的特性描述模塊的外部特性模塊的模塊名、參數(shù)表、其中的輸入?yún)?shù)和輸出參數(shù),以及給程序以至整個(gè)系統(tǒng)造成的影響。模塊的內(nèi)部特性完成其功能的程序代碼和僅供該模內(nèi)部使用的數(shù)據(jù)基本概念模塊的獨(dú)立性例如:若一個(gè)模塊只具有單一的功能且與其它模塊沒(méi)有太多的聯(lián)系,則稱此模塊具有模塊獨(dú)立性。模塊的獨(dú)立性是模塊化、抽象化和信息隱藏概念的直接結(jié)果,是完成有效設(shè)計(jì)的基本標(biāo)準(zhǔn)。基本概念模塊獨(dú)立的優(yōu)點(diǎn):
易于開(kāi)發(fā)
易于測(cè)試和維護(hù)度量模塊獨(dú)立性的兩個(gè)質(zhì)量標(biāo)準(zhǔn):耦合內(nèi)聚耦合是模塊之間的互相連接的緊密程度的度量。內(nèi)聚是模塊功能強(qiáng)度(一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度)的度量。模塊獨(dú)立性比較強(qiáng)的模塊應(yīng)是高內(nèi)聚低耦合的模塊?;靖拍疃?、模塊間的耦合中度耦合與外部環(huán)境聯(lián)系
(1)非直接耦合(NondirectCoupling)
AB無(wú)直接耦合(2)數(shù)據(jù)耦合(DataCoupling)
如果一個(gè)模塊訪問(wèn)另一個(gè)模塊時(shí),彼此之間是通過(guò)簡(jiǎn)單數(shù)據(jù)參數(shù)(不是控制參數(shù))來(lái)交換輸入、輸出信息的,則稱這種耦合為數(shù)據(jù)耦合。(3)標(biāo)記耦合(StampCoupling)
如果一組模塊通過(guò)參數(shù)表傳遞記錄信息,就是標(biāo)記耦合。這個(gè)記錄是某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),而不是簡(jiǎn)單變量。(4)控制耦合(ControlCoupling)如果一個(gè)模塊通過(guò)傳送開(kāi)關(guān)、標(biāo)志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合。舉例:到貨檢驗(yàn)任務(wù)核準(zhǔn)單記錄信息簡(jiǎn)單變量檢驗(yàn)產(chǎn)生到貨通知付款產(chǎn)生錯(cuò)誤通知控制信息(5)外部耦合(ExternalCoupling)
一組模塊都訪問(wèn)同一全局簡(jiǎn)單變量而不是同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),而且不是通過(guò)參數(shù)表傳遞該全局變量的信息,則稱之為外部耦合。(6)公共耦合(CommonCoupling)
若一組模塊都訪問(wèn)同一個(gè)公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局?jǐn)?shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。公共耦合的復(fù)雜程度隨耦合模塊的個(gè)數(shù)增加而顯著增加。若只是兩模塊間有公共數(shù)據(jù)環(huán)境,則公共耦合有兩種情況。松散公共耦合和緊密公共耦合。(7)內(nèi)容耦合(ContentCoupling)
如果發(fā)生下列情形,兩個(gè)模塊之間就發(fā)生了內(nèi)容耦合:
(1)一個(gè)模塊直接訪問(wèn)另一個(gè)模塊的內(nèi)部數(shù)據(jù);
(2)一個(gè)模塊不通過(guò)正常入口轉(zhuǎn)到另一模塊內(nèi)部;
(3)兩個(gè)模塊有一部分程序代碼重迭(只可能出現(xiàn)在匯編語(yǔ)言中);
(4)一個(gè)模塊有多個(gè)入口。
c
內(nèi)容耦合如何降低模塊間的耦合度?(1)如果模塊必須存在耦合,則要選擇適當(dāng)?shù)鸟詈项愋?。原則:盡量使用數(shù)據(jù)耦合少用控制耦合限制公共耦合的范圍避免使用內(nèi)容耦合(2)降低接口的復(fù)雜性
c
三、模塊內(nèi)聚(1)偶然內(nèi)聚(低內(nèi)聚)
如果一個(gè)模塊完成一組任務(wù),這些任務(wù)彼此間即使有關(guān)系關(guān)系也是松散的。例如:寫(xiě)完一個(gè)程序后,發(fā)現(xiàn)一組語(yǔ)句在兩處或多處出現(xiàn),把這些語(yǔ)句作為一個(gè)模塊,為偶然內(nèi)聚。(2)邏輯內(nèi)聚(低內(nèi)聚)
一個(gè)模塊所完成的任務(wù)屬于相同或相似的一類稱為邏輯內(nèi)聚(一個(gè)模塊產(chǎn)生各種類型的全部輸出)(3)時(shí)間內(nèi)聚(低內(nèi)聚)如果一個(gè)模塊包含的任務(wù)必須在一個(gè)時(shí)間段內(nèi)完成,成為時(shí)間內(nèi)聚。例如初始化模塊(4)過(guò)程內(nèi)聚(中內(nèi)聚)
如果一個(gè)模塊處理元素是相關(guān)的,必須順序執(zhí)行,則稱為過(guò)程內(nèi)聚。通過(guò)劃分程序流程圖來(lái)完成。(5)通信內(nèi)聚(中內(nèi)聚)模塊中所有元素都使用同一個(gè)輸入數(shù)據(jù)和(或)產(chǎn)生同一個(gè)輸出數(shù)據(jù),稱為通信內(nèi)聚(6)順序內(nèi)聚(高內(nèi)聚)
如果一個(gè)模塊處理元素和同一個(gè)功能相關(guān),并且必須順序執(zhí)行,則稱為順序內(nèi)聚。通常一個(gè)的輸出是另一個(gè)的輸入。通過(guò)劃分?jǐn)?shù)據(jù)流圖。(7)功能內(nèi)聚(高內(nèi)聚)模塊中所有元素都屬于一個(gè)整體,完成一個(gè)單一功能,稱為功能內(nèi)聚。提高模塊獨(dú)立性。評(píng)估程序結(jié)構(gòu)的第一次迭代,以降低耦合提高內(nèi)聚;模塊規(guī)模適中(60行)。高扇3~4(上限5~9),當(dāng)深度增加時(shí)爭(zhēng)取提高扇入;將模塊的作用域限制在模塊的控制范圍內(nèi)(作用域是控制域的子集);降低模塊接口的復(fù)雜程度并提高一致性(傳遞的信息與功能的一致性);例:Q_ROOT(TBL,X)不易理解,改:Q_ROOT(A,B,C,X1,X2)定義功能可以預(yù)測(cè)的模塊,但要避免模塊功能過(guò)分局限;(黑盒模塊可預(yù)測(cè))設(shè)計(jì)單入口單出口模塊,避免“病態(tài)連接”(內(nèi)容耦合)。數(shù)組傳遞參數(shù)§4-4有效模塊化的設(shè)計(jì)啟發(fā)規(guī)則模塊化的設(shè)計(jì)啟發(fā)規(guī)則A影響B(tài)狀態(tài)標(biāo)記狀態(tài)標(biāo)記控制耦合解決方法:判定點(diǎn)上移(AM)B移到控制域內(nèi)(BA下面)A的控制域§4-5表示軟件結(jié)構(gòu)的圖形工具三種表示軟件結(jié)構(gòu)的圖形工具:層次圖(Hierachy)
HIPO圖(HierachyInputProcessOutput)結(jié)構(gòu)圖(Yourdon)1、層次圖和HIPO圖IBM公司發(fā)明的HIPO圖:
層次圖
+輸入/處理/輸出圖
(H圖)+(IPO圖)(HierachyInputProcessOutput)(1).層次圖(H圖)正文加工系統(tǒng)輸入輸出編輯加標(biāo)題存儲(chǔ)檢索編目錄添加刪除插入修改合并列表帶編號(hào)的層次圖(H圖)
正文加工系統(tǒng)輸入
1.0輸出
2.0編輯
3.0加標(biāo)題
4.0存儲(chǔ)
5.0檢索
6.0編目錄
7.0添加
3.1刪除
3.2插入
3.3修改
3.4合并
3.5列表
3.6(2).HIPO圖H圖中每一方框(模塊)均有一張IPO圖對(duì)應(yīng)。輸出輸入處理讀口令請(qǐng)求口令文件1取得輸入2口令確認(rèn)3請(qǐng)求確認(rèn)請(qǐng)求記錄權(quán)限文件4更新處理權(quán)限記錄狀態(tài)報(bào)告響應(yīng)命令監(jiān)控器(1.0)的IPO圖改進(jìn)的IPO圖格式IPO圖系統(tǒng):模塊:編號(hào):作者:日期:被調(diào)用:調(diào)用:輸出:輸入:處理:局部數(shù)據(jù)元素:注釋:命令監(jiān)控器輸入1.0方華2002-3-2命令監(jiān)控器主控菜單模塊命令監(jiān)控器主控模塊取得輸入、口令確認(rèn)、請(qǐng)求確認(rèn)、口令更新處理。輸出正確性判斷標(biāo)志。接收鍵盤(pán)口令口令正確性判斷標(biāo)志口令、標(biāo)志改進(jìn)的IPO圖格式IPO圖系統(tǒng):模塊:編號(hào):作者:日期:被調(diào)用:調(diào)用:輸出:輸入:處理:局部數(shù)據(jù)元素:注釋:人事檔案管理系統(tǒng)打印2.1方華2002-3-2人事檔案管理模塊“打印全體人員”模塊“打印部分人員”模塊“打印個(gè)人:模塊將全體、按部門(mén)、個(gè)人的檔案數(shù)據(jù)加工成要求的表格形式,進(jìn)行輸出、現(xiàn)示人事檔案數(shù)據(jù)和打印選擇打印全體人員、部分人員、個(gè)人的檔案2、結(jié)構(gòu)圖SC(StructureChart)
精確表達(dá)程序結(jié)構(gòu)的圖形表示不加區(qū)分的數(shù)據(jù)數(shù)據(jù)信息控制信息編輯學(xué)生記錄讀學(xué)生記錄學(xué)生數(shù)據(jù)無(wú)此學(xué)生學(xué)號(hào)結(jié)構(gòu)圖反映程序中模塊之間的層次調(diào)用關(guān)系和聯(lián)系:它以特定的符號(hào)表示模塊、模塊間的調(diào)用關(guān)系和模塊間信息的傳遞。模塊的調(diào)用關(guān)系和接口模塊之間用單向箭頭聯(lián)結(jié),箭頭從調(diào)用模塊指向被調(diào)用模塊,表示調(diào)用模塊調(diào)用了被調(diào)用模塊。結(jié)構(gòu)圖模塊間的信息傳遞
當(dāng)一個(gè)模塊調(diào)用另一個(gè)模塊時(shí),調(diào)用模塊把數(shù)據(jù)或控制信息傳送給被調(diào)用模塊,以使被調(diào)用模塊能夠運(yùn)行。而被調(diào)用模塊在執(zhí)行過(guò)程中又把它產(chǎn)生的數(shù)據(jù)或控制信息回送給調(diào)用模塊。模塊調(diào)用方式在模塊A的箭頭尾部標(biāo)以一個(gè)菱形符號(hào),表示模塊A有條件地調(diào)用另一個(gè)模塊B。當(dāng)一個(gè)在調(diào)用箭頭尾部標(biāo)以一個(gè)弧形符號(hào),表示模塊A反復(fù)調(diào)用模塊C和模塊D。條件調(diào)用循環(huán)調(diào)用為什么用面向數(shù)據(jù)流的設(shè)計(jì)方法?選擇軟件設(shè)計(jì)方法的重要因素是應(yīng)用范圍,“面向數(shù)據(jù)流的設(shè)計(jì)”方法可以應(yīng)用于大量的應(yīng)用領(lǐng)域(數(shù)值分析、過(guò)程控制、MISS系統(tǒng)),但不包括專家系統(tǒng)、用戶界面。方法起源模塊化、自頂向下逐步細(xì)化、結(jié)構(gòu)化程序設(shè)計(jì)的基本概念,是基于“數(shù)據(jù)在系統(tǒng)中的流動(dòng)”而發(fā)展起來(lái)的?!?-6面向數(shù)據(jù)流的設(shè)計(jì)方法變換型結(jié)構(gòu)由輸入、變換中心和輸出三部分組成?;灸P停盒畔r(shí)間變換流外部表示輸入流輸出流變換流內(nèi)部表示信息流特征:具有明確的輸入、變換(或稱主加工)和輸出界面事務(wù)型結(jié)構(gòu)特征:具有在多種事物中選擇執(zhí)行某類事物的能力。基本模型:事務(wù)中心接受路徑動(dòng)作路徑大型系統(tǒng)DFD中,變換型和事務(wù)型結(jié)構(gòu)往往共存:T事務(wù)中心傳入變換傳出面向數(shù)據(jù)流設(shè)計(jì)方法的設(shè)計(jì)步驟(1)精化DFD(2)確定DFD類型(3)把DFD映射到系統(tǒng)模塊結(jié)構(gòu)設(shè)計(jì)出模塊結(jié)構(gòu)的上層(4)基于DFD逐步分解高層模塊設(shè)計(jì)出下層模塊(5)根據(jù)模塊獨(dú)立性原理,精化模塊結(jié)構(gòu)(6)模塊接口描述4、軟件模塊結(jié)構(gòu)的改進(jìn)(設(shè)計(jì)優(yōu)化)精化軟件結(jié)構(gòu),導(dǎo)出不同的軟件結(jié)構(gòu),評(píng)價(jià)和比較找出最優(yōu)的。有效模塊化的前提下,保持最少的模塊,滿足信息要求的前提下使用最簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)優(yōu)化的方法:不考慮時(shí)間因素的情況下精化軟件結(jié)構(gòu)詳細(xì)設(shè)計(jì)選出最耗時(shí)的模塊,仔細(xì)設(shè)計(jì)提高效率使用高級(jí)語(yǔ)言編程軟件中孤立出大量占用處理機(jī)資源的模塊必要時(shí)重新設(shè)計(jì)或用依賴于機(jī)器的語(yǔ)言重寫(xiě)上述大量占用資源的模塊的代碼,以求提高效率§4-7用戶界面設(shè)計(jì)技術(shù)問(wèn)題
系統(tǒng)響應(yīng)時(shí)間用戶與計(jì)算機(jī)的交互問(wèn)題
用戶幫助信息出錯(cuò)信息處理命令交互§4-8過(guò)程設(shè)計(jì)(詳細(xì)設(shè)計(jì))及其工具任務(wù):設(shè)計(jì)程序“藍(lán)圖”衡量程序的質(zhì)量不僅要看它的邏輯是否正確,性能是否符合要求,更主要的是看它是否容易閱讀和理解。程序流程圖程序流程圖也稱為程序框圖,程序流程圖使用五種基本控制結(jié)構(gòu)是:
示例
程序流程圖的標(biāo)準(zhǔn)符號(hào)循環(huán)的標(biāo)準(zhǔn)符號(hào)注解的使用多出口判斷N-S圖N-S圖也叫做盒圖。五種基本控制結(jié)構(gòu)由五種圖形構(gòu)件表示。示例N-S圖的嵌套定義形式
PAD也設(shè)置了五種基本控制結(jié)構(gòu)的圖式,并允許遞歸使用。問(wèn)題分析圖(PAD)
PAD描述的示例
對(duì)應(yīng)于增量型循環(huán)結(jié)構(gòu)
fori:=n1ton2stepn3do
在PAD中有相應(yīng)的循環(huán)控制結(jié)構(gòu)PAD的擴(kuò)充控制結(jié)構(gòu)判定表判定表用于表示程序的靜態(tài)邏輯在判定表中的條件部分給出所有的兩分支判斷的列表,動(dòng)作部分給出相應(yīng)的處理要求將程序流程圖中的多分支判斷都改成兩分支判斷
無(wú)多分支判斷結(jié)構(gòu)
建立判定表的步驟列出與一個(gè)具體過(guò)程(或模塊)有關(guān)的所有處理。列出過(guò)程執(zhí)行期間的所有條件(或所有判斷)。將特定條件取值組合與特定的處理相匹配,消去不可能發(fā)生的條件取值組合。將右部每一縱列規(guī)定為一個(gè)處理規(guī)則,即對(duì)于某一條件取值組合將有什么動(dòng)作。
PDL(ProgramDesignLanguage)PDL是一種用于描述功能模塊的算法設(shè)計(jì)和加工細(xì)節(jié)的語(yǔ)言。稱為設(shè)計(jì)程序用語(yǔ)言。它是一種偽碼。偽碼的語(yǔ)法規(guī)則分為“外語(yǔ)法”和“內(nèi)語(yǔ)法”。PDL具有嚴(yán)格的關(guān)鍵字外語(yǔ)法,用于定義控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),同時(shí)它的表示實(shí)際操作和條件的內(nèi)語(yǔ)法又是靈活自由的,可使用自然語(yǔ)言的詞匯。
示例:拼詞檢查程序PROCEDUREspellcheckIS
BEGIN
splitdocumentintosinglewords
lookupwordsindictionary
displaywordswhicharenotindictionary
createanewdictionary
ENDspellcheck
PDL的特點(diǎn)提供全部結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說(shuō)明和模塊特征。能對(duì)PDL正文進(jìn)行結(jié)構(gòu)分割,使之變得易于理解。為了區(qū)別關(guān)鍵字,規(guī)定關(guān)鍵字一律大寫(xiě),其它單詞一律小寫(xiě)?;蛘咭?guī)定關(guān)鍵字加下劃線,或者規(guī)定它們?yōu)楹隗w字。內(nèi)語(yǔ)法使用自然語(yǔ)言來(lái)描述處理特性。內(nèi)語(yǔ)法比較靈活,只要寫(xiě)清楚就可以,不必考慮語(yǔ)法錯(cuò),以利于人們可把主要精力放在描述算法的邏輯上。有數(shù)據(jù)說(shuō)明機(jī)制,包括簡(jiǎn)單的(如標(biāo)量和數(shù)組)與復(fù)雜的
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 石油購(gòu)銷(xiāo)合同
- 產(chǎn)品選型與采購(gòu)策略手冊(cè)
- 2025年鹽城貨運(yùn)從業(yè)資格證題庫(kù)
- 高效率辦公工具與技術(shù)解決方案研究
- 游戲美術(shù)設(shè)計(jì)制作全流程指南
- 商標(biāo)許可使用協(xié)議
- 化學(xué)實(shí)驗(yàn)中誤差傳遞規(guī)律研究
- 口腔預(yù)防科知識(shí)培訓(xùn)課件
- 2025年烏蘭察布年貨運(yùn)從業(yè)資格證考試答案
- 黑弧奧美北京永定河孔雀城年度回顧匯報(bào)
- 【博觀研究院】2025年跨境進(jìn)口保健品市場(chǎng)分析報(bào)告
- 《高科技服裝與面料》課件
- 《馬克思生平故事》課件
- 2024-2025學(xué)年四川省成都市高一上學(xué)期期末教學(xué)質(zhì)量監(jiān)測(cè)英語(yǔ)試題(解析版)
- HRBP工作總結(jié)與計(jì)劃
- 八大危險(xiǎn)作業(yè)安全培訓(xùn)考試試題及答案
- 2025中國(guó)船舶集團(tuán)限公司招聘高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 2025年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 2025年上半年中電科太力通信科技限公司招聘易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年沙洲職業(yè)工學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 【化學(xué)】常見(jiàn)的鹽(第1課時(shí))-2024-2025學(xué)年九年級(jí)化學(xué)下冊(cè)(人教版2024)
評(píng)論
0/150
提交評(píng)論