《軟件工程導(dǎo)論課件Ch》由會員分享,可在線閱讀,更多相關(guān)《軟件工程導(dǎo)論課件Ch(21頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、,Click to edit Master title style,Click to edit Master text styles,Second level,*,Click to edit Master title style,Click to edit Master text styles,Second level,*,軟件工程,原理、方法和工具,Ch.5,軟件詳細(xì)設(shè)計,王會青,第,5,章 軟件詳細(xì)設(shè)計,5.1,詳細(xì)設(shè)計的目的與任務(wù),5.2,結(jié)構(gòu)化程序設(shè)計,5.3,詳細(xì)設(shè)計工具,5.1,詳細(xì)設(shè)計的目的與任務(wù),詳細(xì)設(shè)計的根本目的:確定應(yīng)該怎樣具體實現(xiàn)所要求的系統(tǒng)。經(jīng)過這個階段的設(shè)計工作,應(yīng)該
2、得出對目標(biāo)系統(tǒng)的精確描述,從而在編碼階段可以把這個描述直接翻譯成用某種程序設(shè)計語言書寫的程序,結(jié)構(gòu)化程序設(shè)計是實現(xiàn)上述目標(biāo)的關(guān)鍵技術(shù),因此是詳細(xì)設(shè)計的邏輯基礎(chǔ)。,5.2,結(jié)構(gòu)化程序設(shè)計,結(jié)構(gòu)化程序設(shè)計所使用的結(jié)構(gòu)有順序、條件和重復(fù)三種,。,結(jié)構(gòu)化程序設(shè)計采用自頂向下,逐步求精的設(shè)計方法和單入口單出口的控制結(jié)構(gòu),。,5.3,詳細(xì)設(shè)計工具,描述程序處理過程的工具稱為詳細(xì)設(shè)計工具,可以分為圖形、表格和語言三類,。,1.,程序流程圖,2.N-S,圖,3.PAD,圖,4.,過程設(shè)計語言,5.3.1,程序流程圖,程序流程圖又稱為程序框圖,它是歷史最悠久、使用最廣泛的描述過程設(shè)計的方法。,主要優(yōu)點是對控制流
3、程的描繪很直觀,便于初學(xué)者掌握。,缺點:,程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過早地考慮程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。,程序流程圖用箭頭代表控制流,因此程序員不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計的精神,隨意轉(zhuǎn)移控制。,程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。,5.3.1,程序流程圖,程序流程圖的三種基本控制結(jié)構(gòu),N-S,圖又稱為盒圖,具有以下優(yōu)點:,功能域明確。,不可能任意轉(zhuǎn)移控制。,很容易確定局部和全局?jǐn)?shù)據(jù)的作用域。,很容易表達(dá)模塊的層次結(jié)構(gòu),并列和嵌套關(guān)系。,使得程序設(shè)計人員遵守結(jié)構(gòu)化程序設(shè)計的規(guī)定,自然地養(yǎng)成良好的程序設(shè)計風(fēng)格。,5.3.2 N-S,圖,5.3.2 N-S
4、,圖,PAD,圖是問題分析圖(,problem analysis diagram,)的英文縮寫,自,1973,年由日本日立公司發(fā)明以后,已得到一定程度的推廣。,它用二維樹形結(jié)構(gòu)的圖來表示程序的控制流,將這種圖翻譯成程序代碼比較容易。,5.3.3 PAD,圖,5.3.3 PAD,圖,PAD,圖描述的三種基本控制結(jié)構(gòu),PAD,圖具有以下優(yōu)點:,用,PAD,圖設(shè)計出來的程序必然是結(jié)構(gòu)化程序。,PAD,圖所描繪的程序結(jié)構(gòu)十分清晰。,PAD,圖的符號支持自頂向下,逐步求精的方法。,用,PAD,圖表示的程序邏輯易讀、易懂、易記,使用方便。,既可表示程序邏輯,也可用于描繪數(shù)據(jù)結(jié)構(gòu)。,可自動生成程序。,5.3
5、.3 PAD,圖,5.3.3 PAD,圖示例,5.3.3 PAD,圖示例,過程設(shè)計語言(,Process Design Language,,,PDL,),也稱為偽碼,是一種用于描述模塊算法設(shè)計和處理細(xì)節(jié)的語言。,PDL,具有嚴(yán)格的關(guān)鍵字外部語法,用于定義控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu);另一方面,,PDL,表示實際操作和條件的內(nèi)層語法通常又是靈活自由的,可以適應(yīng)各種項目的需要。,PDL,是一種“混雜”語言,它使用一種語言的詞匯,同時卻使用另一種語言的語法。,5.3.4,過程設(shè)計語言,過程設(shè)計語言的基本控制結(jié)構(gòu):,簡單陳數(shù)據(jù)結(jié)構(gòu):避免復(fù)合語句。,判定結(jié)構(gòu):,IF_THEN_ELSE,或,CASE_OF,結(jié)構(gòu)。
6、,循環(huán)結(jié)構(gòu):,WHILE_DO,或,REPEAT_UNTIL,結(jié)構(gòu)。,5.3.4,過程設(shè)計語言,過程設(shè)計語言的特點:,關(guān)鍵字的固定語法,它提供了結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說明和模塊化的特點。,描述處理過程的說明性語言,沒有嚴(yán)格的語法限制。,具有數(shù)據(jù)說明機制,應(yīng)該既包括簡單的數(shù)據(jù)結(jié)構(gòu),又包括復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。,具有模塊定義和調(diào)用機制。,5.3.4,過程設(shè)計語言,5.3.4,過程設(shè)計語言示例,現(xiàn)以某系統(tǒng)主控模塊的詳細(xì)設(shè)計為例,說明如何用,PDL,描述處理過程:,PROCEDURE,模塊名(形式參數(shù));,清屏;,顯示某系統(tǒng)用戶界面;,PUT,(“請輸入用戶口令:”);,GET,(,Password,),;,
7、IF Password,系統(tǒng)口令,提示警告信息;,退出運行,ENDIF,;,顯示本系統(tǒng)主菜單;,WHILE,(,true,),接受用戶選擇,BD,;,IF BD=“,退出”,Break,;,ENDIF,;,使用相應(yīng)下層模塊完成用戶選擇功能;,ENDWHILE,;,清屏;,RETURN,END,過程設(shè)計語言的優(yōu)點:,可以作為注釋直接插在源程序中間,有助于保持文檔和程序的一致性,提高了文檔的質(zhì)量。,提供的機制比圖形全面,有利于保證軟件詳細(xì)設(shè)計與編碼的質(zhì)量。,可自動生成程序代碼,提高軟件生產(chǎn)率。,5.3.4,過程設(shè)計語言,習(xí)題,軟件詳細(xì)設(shè)計的基本任務(wù)是什么?有哪幾種描述方法?,結(jié)構(gòu)化程序設(shè)計的基本要
8、點是什么?,使用流程圖、,PAD,圖、,N-S,圖和,PDL,語言描述下列程序的算法:,(,1,)在數(shù)據(jù),A(1)A(10),式中求最小數(shù)和次小數(shù)。,(,2,)輸入三個正整數(shù)作為邊長,判斷由這三條邊構(gòu)成的三角形是直角、等腰或一般三角形。,4.,任選一種排序(從大到?。┧惴?,分別用流程圖、,N-S,圖和,PPL,語言描述其詳細(xì)過程。,5.,程序流程圖、,N-S,圖、,PAD,圖和,PDL,語言的特點各是什么?你認(rèn)為這四種詳細(xì)設(shè)計工具哪一種最好?為什么?,6.,畫出下列程序的,PAD,圖,REPEAT,IF x,O,THEN x1,ELSE x2,ENDIF,;,S1,;,IF y,O,THEN y1,IF z,O,THEN z1,ELSE z2,ENDIF,;,S2,;,ELSE y2,;,ENDIF,;,UNTIL L,;,Q&A,