【正文】
步驟,直到過程完全確定和詳盡為止。 ? PAD圖的基本圖式和語言的標(biāo)準(zhǔn)模式(表 1) ? PAD圖轉(zhuǎn)換為相應(yīng)的源程序的步驟: 1)根據(jù)問題解畫出 PAD圖。 2)把 PAD圖看做橫向生長(zhǎng)的樹,沿著樹跡前進(jìn),寫出源程序。 ? 寫源程序時(shí)的原則: 1)遇處理框,寫出其處理的內(nèi)容。 2)遇選擇框或重復(fù)框,則按表 1所示的語言模式寫出相應(yīng)的語句。 ? PAD圖實(shí)例 基本圖式和語言的標(biāo)準(zhǔn)模式 (1) 構(gòu) 造 P A D C 順 序 H 1 H 2 H 1 ; H 2 ; 重 復(fù) d o w h i l e r e p e a t u n t i l ( Q ) ( Q ) H H w h i l e ( Q ){ H 。 } d o { H 。 } w h i l e ( Q ) 。 f o r( e 1 。 e 2 。 e 3 ) { H 。 } 下一頁(yè) 基本圖式和語言的標(biāo)準(zhǔn)模式 (2) 選 擇 i f t h e n i f t h e n e l s e d o c a s e( s w i t c h ) H H1 H2 H1 H2 Hd Hn d e f a u i t I 1 I 2 I n ( Q ) ( Q ) i f ( Q ) { H 。 } i f ( Q ) { H 1 。 ] e l s e { H 2 。 } s w i t c h i { c a s e i 1 : H 1 。 b r e a k 。 c a s e i 2 : H 2 。 b r e a k 。 c a s e i n : H n 。 b r e a k 。 d e f a n l t : H d 。 } 返回 PAD圖實(shí)例 例:邊長(zhǎng)為 x, y, z的三角形面積公式為: 現(xiàn)有三個(gè)三角形,它們的邊長(zhǎng)分別是: a1 、 b1 c1 ; a2 、 b2 、 c2 ; a3 、 b3 、 c3 , 求這三個(gè)三角形的面積和。 ? 根據(jù)問題解畫出 PAD圖,表示如下: P = S ( S x ) ( S y ) ( S z ) S = ( x + y + z ) / 2 / * f i l e : y 9 , c * / i n c l u d e “s t d i o . h ” m a i n ( ) f l o z t p ( ) f l o a t a 1 , b 1 , c 1 , a 2 , b 2 , c 2 , a 3 , b 3 , c 3 , s u m s c a n f ( “% f % f % f % f % f % f % f % f % f ”, amp。 a 1 ,amp。 a 2 , amp。 a 3 , amp。 b 1 , amp。 b 2 , amp。 b 3 , amp。 c 1 , amp。 c 2 , amp。 c 3 ) 。 a b 下一頁(yè) a b p r i n t ( “% f \ n ”, s u m ) f l o a t x , y , z 。 e x t e r n f l o a t s q r t ( ) 。 c d s u m = p ( a 1 , b 1 , c 1 ) + p ( a 2 , b 2 , c 2 ) + p ( a 3 , b 3 , c 3 ) 。 f l o a t p ( x , y , z ) a b f l o a t s , s 1 s = ( x + y + z ) / 2 s 1 = s q r t ( s * ( s x )* ( s y ) * ( s z ) 。 r e t u r e 圖 2 9 求三角形面積和的 P A D 圖 返 回 把 PAD圖看做橫向生長(zhǎng)的樹,沿著樹跡前進(jìn),寫出 源程序 過程設(shè)計(jì)語言( PDL) ?也叫程序設(shè)計(jì)語言、結(jié)構(gòu)化英語、偽碼。 ?格式( format)和語義( semantic) 1)為了設(shè)計(jì)局部和全局?jǐn)?shù)據(jù)結(jié)構(gòu)的表示, PDL的一種結(jié)構(gòu)表示: TYPE variablename IS qualifier1 qualifier2 2)一個(gè)模塊結(jié)構(gòu)方式: BEGIN blockname pseudocode statements。 END 3) PDL的條件構(gòu)造,一般采用 ifthenelse的形式 : IF conditiondescription THEN block or pseudocode statement。 ELSE block or pseudocode statement。 ENDIF 4) PDL的選擇構(gòu)造,其表現(xiàn)如下: CASE OF casevariablename WHEN casecondition1 SELECTblock or pseudocode statement。 WHEN casecondition1 SELECTblock or pseudocode starement …… WHEN lastcasecondition SELECTblock or pseudocode statement。 DEFAULT:default or error case: block or pseudocode statement。 ENDCASE 5)循環(huán)三種(先測(cè)試循環(huán)、后測(cè)試循環(huán)、索引循環(huán)) DO WHILE conditiondescription block or pseudocode statement。 ENDDO REPEAT UNTIL conditiondescription block or pseudocode statement。 ENDREP DO FOR index list,expression or sequence block or pseudocode statement。 ENDFOR 循環(huán)中另外還提供了兩個(gè)關(guān)鍵的詞: NEXT和 EXIT。設(shè)計(jì)員依此能確定嵌套循環(huán)中的受限出口。 6) 子程序與相應(yīng)的接口, PDL構(gòu)造來定義: PROCEDURE subprogramname .attributes INTERFACE argumentlist blocks and/or pseudocode statements。 END 返回 將結(jié)構(gòu)化分析模型轉(zhuǎn)換為軟件設(shè)計(jì) 數(shù)據(jù) 字典 數(shù)據(jù) 流圖 ER圖 狀態(tài)變遷圖 加 工 規(guī) 格 制規(guī)格說 數(shù) 據(jù) 對(duì) 描 述 象 數(shù) 據(jù) 設(shè) 計(jì) 體系結(jié)構(gòu)設(shè)計(jì) 接口設(shè)計(jì) 過程設(shè)計(jì) 分析模型 設(shè)計(jì)模型 明 說 明 控 面向數(shù)據(jù)流設(shè)計(jì)的概述 ? 面向數(shù)據(jù)流的設(shè)計(jì)( data floworiented design)就是根據(jù)問題域的數(shù)據(jù)流定義一組不同的映射,把問題域的數(shù)據(jù)流轉(zhuǎn)換為問題解的程序結(jié)構(gòu)。這種方法通常又叫做結(jié)構(gòu)化設(shè)計(jì)(簡(jiǎn)稱 SD) DFD 軟件結(jié)構(gòu) 軟件結(jié)構(gòu)是什么樣子? 怎樣完成這一工作? 數(shù)據(jù)流圖類型 數(shù)據(jù)流圖有二種類型 變換型 DFD (變換流) 事務(wù)型 DFD (事務(wù)流) 變換流 ? 變換型數(shù)據(jù)流圖是一個(gè)線性結(jié)構(gòu),由輸入、變換和輸出組成,如下圖所示。 變換 是系統(tǒng)的中心。變換輸入端的數(shù)據(jù)流為系統(tǒng)的 邏輯輸入 ,輸出端為系統(tǒng)的 邏輯輸出 。 系統(tǒng)輸入端的數(shù)據(jù)流為物理輸入,輸出端為物理輸出。從輸入設(shè)備獲得物理輸入,一般要經(jīng)過一系列加工變成邏輯輸入送給變換(主加工)同理,邏輯輸出也要變?yōu)槲锢磔敵觥? 變換 輸出 輸入 圖 2 1 2 變換流 事務(wù)流 事務(wù)流與變換流不同見下圖。 事務(wù)流的數(shù)據(jù)流圖有一個(gè) 事務(wù)處理中心 。它將輸入分為許多相互平行的 加工路徑 ,然后根據(jù)輸入的屬性,選擇某一加工路徑。 T 事務(wù) 事務(wù)處理中心 加工路徑 圖 2 1 3 事務(wù)流 要求類 型處 理 有效圖書管理要求 當(dāng)前日期 新書入庫(kù) 借 入庫(kù)單 罰款單 借書 注銷圖書 借書 目錄文件 借書單 書 單 注銷單 變 換 流 設(shè) 計(jì) 舉 例變換流設(shè)計(jì) 由 三 個(gè) 子 變 換 組 成 的 變 換 流 設(shè) 計(jì) 舉 例事 務(wù) 流 設(shè) 計(jì) 舉 例事務(wù)流設(shè)計(jì) 混合流設(shè)計(jì) ? 采用以變換流為主,事務(wù)流為輔的方法進(jìn)行設(shè)計(jì)。 ? 其步驟如下: 1) 先劃出輸入、變換和輸出。 2) 設(shè)計(jì)軟件結(jié)構(gòu)的上層。 3) 再根據(jù) DFD各部分的特征,進(jìn)行變換設(shè)計(jì)和事務(wù)設(shè)計(jì)。 設(shè)計(jì)原理與結(jié)構(gòu)化設(shè)計(jì)相關(guān)考題: 2022 一( 3),三( 2) 2022 一( 2),二( 2), 三( 1)( 2) 2022 一( 3),二( 2) 三( 1)( 2) 面向?qū)ο笤O(shè)計(jì)方法 ?―統(tǒng)一軟件開發(fā)過程”中的設(shè)計(jì)模型、相關(guān)工作流以及工作產(chǎn)品。 ?sub2235832 OOD部分的歷屆相關(guān)考題:無 實(shí)現(xiàn) ?程序設(shè)計(jì)語言 ?程序設(shè)計(jì)風(fēng)格 ?編碼規(guī)范 ?程序效率與性能分析 程序設(shè)計(jì)語言 ?程序設(shè)計(jì)語言的性能 ? 從軟件心理學(xué)及軟件工程角度對(duì)程序設(shè)計(jì)語言的性能進(jìn)行討論。 程序設(shè)計(jì)語言 ? 軟件心理學(xué)的觀點(diǎn) (1) 一致性 。表示一種語言所使用符號(hào)的兼容程度、允許隨意規(guī)定限制,以及允許對(duì)語法或語義破例的程度。 (2) 二義性 。雖然語言的編譯程序總是以一種機(jī)械的規(guī)則來解釋語句,但讀者則可能用不同的方式來理解語句。 (3) 簡(jiǎn)潔性 。程序設(shè)計(jì)語言的簡(jiǎn)潔性用來表示為了用該語言編寫程序,必須記憶的關(guān)于代碼的信息量。 ?軟件心理學(xué)的觀點(diǎn) (4) 局部性 。是指程序設(shè)計(jì)語言的綜合特性。在編碼的過程中,由語句組合成模塊,由模塊組裝為程序系統(tǒng)結(jié)構(gòu),并在組裝過程中實(shí)現(xiàn)模塊的高內(nèi)聚和低耦合,可使程序的局部性加強(qiáng)。 (5) 傳統(tǒng)性 。人們學(xué)習(xí)一種新的程序設(shè)計(jì)語言的能力受到傳統(tǒng)的影響。 ? 軟件工程的觀點(diǎn) (1) 詳細(xì)設(shè)計(jì)應(yīng)能直接地容易地翻譯成代碼程序。 (2) 源程序應(yīng)具有可移植性。 (3) 編譯程序應(yīng)具有較高的效率。 (4) 盡可能應(yīng)用代碼生成的自動(dòng)工具。 (5) 可維護(hù)性。 ? 程序設(shè)計(jì)語言的分類 ? 從軟件工程的角度,根據(jù)程序設(shè)計(jì)語言發(fā)展的歷程,可以將程序設(shè)計(jì)語言大致分為 4類。 (1) 從屬于機(jī)器的語言 ——第一代語言 (2) 匯編語言 ——第二代語言 (3) 高級(jí)程序設(shè)計(jì)語言 ——第三代語言 從 20世紀(jì) 50年代就開始出現(xiàn),它們的特點(diǎn)是用途廣泛。典型的高級(jí)程序設(shè)計(jì)語言有 ALGOL、 FORTRAN、 COBOL、 BASIC、 PASCAL、 C、 C ++、 Lisp、 PROLOG、 Ada等 。 ?程序設(shè)計(jì)語言的分類 (4) 第四代語言( 4GL) ? 4GL以數(shù)據(jù)庫(kù)管理系統(tǒng)所提供的功能為核心,進(jìn)一步構(gòu)造了開發(fā)高層軟件系統(tǒng)的開發(fā)環(huán)境,如報(bào)表生成系統(tǒng)、多窗口表格設(shè)計(jì)系統(tǒng)、菜單生成系統(tǒng)等。 ?