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