軟件工程第六章PPT學習教案_第1頁
軟件工程第六章PPT學習教案_第2頁
軟件工程第六章PPT學習教案_第3頁
軟件工程第六章PPT學習教案_第4頁
軟件工程第六章PPT學習教案_第5頁
已閱讀5頁,還剩25頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、會計學1軟件工程第六章軟件工程第六章2021年10月18日星期一 根本目標根本目標:確定應該怎樣具體地實現所要求的目標,即對確定應該怎樣具體地實現所要求的目標,即對目標系統的精確描述。目標系統的精確描述。 根本任務根本任務:為軟件結構中的每個模塊選擇算法和塊內數據為軟件結構中的每個模塊選擇算法和塊內數據結構,并用選定的某種表達工具給出清晰的描述。結構,并用選定的某種表達工具給出清晰的描述。 詳細設計結果基本上決定了最終的程序代碼的質量。詳細設計結果基本上決定了最終的程序代碼的質量。 衡量程序的質量,不僅要看其邏輯上是否正確,性能是衡量程序的質量,不僅要看其邏輯上是否正確,性能是否滿足要求,更主

2、要的是看其是否容易閱讀和測試。否滿足要求,更主要的是看其是否容易閱讀和測試。 詳細設計的目標不僅僅是邏輯上正確地實現每個模塊的詳細設計的目標不僅僅是邏輯上正確地實現每個模塊的功能,更重要的是設計出的功能,更重要的是設計出的處理過程應該盡可能簡明易懂處理過程應該盡可能簡明易懂。第1頁/共30頁2021年10月18日星期一 1965年最早由年最早由E.W.Dijkstra提出:提出:“可以從可以從高級語言中取消高級語言中取消goto語句,程序的質量與程序中語句,程序的質量與程序中所包含的所包含的goto語句的數量成反比語句的數量成反比”。 1966年,年,Bohm和和Jacopini證明了,只用證

3、明了,只用“順序順序”(Sequence)、“選擇選擇”(Condition Select)和和“循環循環”(Repetition)三種基本的控制結構就三種基本的控制結構就能實現任何單入口單出口的程序。能實現任何單入口單出口的程序。 1972年,年,IBM公司的公司的Mills進一步提出,程進一步提出,程序應該只有一個入口和一個出口。序應該只有一個入口和一個出口。 第2頁/共30頁2021年10月18日星期一 結構程序設計是按照一組能提高程序結構程序設計是按照一組能提高程序的可讀性和易維護性的規則而進行的程序的可讀性和易維護性的規則而進行的程序設計方法,目的是為了使程序具有一種合設計方法,目的

4、是為了使程序具有一種合理的結構,以使程序易理解和維護,便于理的結構,以使程序易理解和維護,便于保證和驗證程序的正確性。保證和驗證程序的正確性。第3頁/共30頁2021年10月18日星期一 可理解性可理解性:程序正確性證明的關鍵是可理解性程序正確性證明的關鍵是可理解性。程序。程序正確性證明并非指從公理出發的形式推導,而是指任何一正確性證明并非指從公理出發的形式推導,而是指任何一種有足夠說服力的證明(形式的或非形式的),其實是一種有足夠說服力的證明(形式的或非形式的),其實是一種理解。種理解。 易維護性易維護性:測試只能證明錯誤存在,而不能證明錯誤測試只能證明錯誤存在,而不能證明錯誤不存在不存在。

5、因此測試后投入運行的軟件很可能還有錯誤。在。因此測試后投入運行的軟件很可能還有錯誤。在運行階段要不斷發現并改正錯誤。此外,用戶還會不斷提運行階段要不斷發現并改正錯誤。此外,用戶還會不斷提出新的要求,系統的操作系統也可能發生變化。故投入運出新的要求,系統的操作系統也可能發生變化。故投入運行的軟件需要不斷修改、擴充,即需要維護。軟件的易維行的軟件需要不斷修改、擴充,即需要維護。軟件的易維護性一般包括易閱讀、易發現和改正錯誤、易修改擴充等護性一般包括易閱讀、易發現和改正錯誤、易修改擴充等含義。含義。第4頁/共30頁2021年10月18日星期一一、自頂向下、逐步求精的設計方法一、自頂向下、逐步求精的設

6、計方法。 1 1、軟件結構設計的自頂向下、逐步求精的設計方法、軟件結構設計的自頂向下、逐步求精的設計方法 把待開發的軟件系統看作一個實體。首先把這個實體分把待開發的軟件系統看作一個實體。首先把這個實體分解成相互獨立的幾大功能,每個功能又可分解成邏輯上獨立解成相互獨立的幾大功能,每個功能又可分解成邏輯上獨立的子功能,子功能又可再分解成更小的子功能。直到每個子的子功能,子功能又可再分解成更小的子功能。直到每個子功能都能非常明確地用什么算法去實現為止。功能都能非常明確地用什么算法去實現為止。 2 2、模塊算法設計的自頂向下、逐步求精方法。、模塊算法設計的自頂向下、逐步求精方法。 把模塊解決問題的求解

7、方案分解為若干步抽象的計算操把模塊解決問題的求解方案分解為若干步抽象的計算操作,并用一種描述工具按控制結構把這些抽象的計算操作描作,并用一種描述工具按控制結構把這些抽象的計算操作描述出來。對算法包含的抽象計算操作又可進一步精細化,如述出來。對算法包含的抽象計算操作又可進一步精細化,如此循序漸進,每一次的求精,使抽象的計算操作得到更進一此循序漸進,每一次的求精,使抽象的計算操作得到更進一步精細,計算操作越來越明確,逐步向程序形式靠近。如此步精細,計算操作越來越明確,逐步向程序形式靠近。如此下去,直到算法中包含的主要計算操作都能用偽代碼表達為下去,直到算法中包含的主要計算操作都能用偽代碼表達為止。

8、止。 3 3、自頂向下的程序驗證。、自頂向下的程序驗證。第5頁/共30頁2021年10月18日星期一二、使用三種基本控制結構來構造程序二、使用三種基本控制結構來構造程序 1 1、任何程序都由順序、選擇和重復三種基本控制結構構造。、任何程序都由順序、選擇和重復三種基本控制結構構造。 順序實現了任何算法規約中的核心處理步驟;順序實現了任何算法規約中的核心處理步驟; 條件允許根據邏輯情況選擇處理方式;條件允許根據邏輯情況選擇處理方式; 重復提供了循環。重復提供了循環。 這些邏輯元素是結構化程序設計的基礎。這些邏輯元素是結構化程序設計的基礎。根據逐步求精的思想,可用三種方式對模塊過程進行分解:根據逐步

9、求精的思想,可用三種方式對模塊過程進行分解: 用順序方式對過程分解,確定各部分的執行順序;用順序方式對過程分解,確定各部分的執行順序; 用選擇方式對過程分解,確定各部分的執行條件;用選擇方式對過程分解,確定各部分的執行條件; 用循環方式對過程分解,確定某個部分進行重復的開始用循環方式對過程分解,確定某個部分進行重復的開始和結束的條件。和結束的條件。 對處理過程仍然模糊的部分反復使用以上分解,直到所有對處理過程仍然模糊的部分反復使用以上分解,直到所有細節確定下來。細節確定下來。第6頁/共30頁2021年10月18日星期一前一頁 2 2、三種基本結構的共同點是單入口、單出口。、三種基本結構的共同點

10、是單入口、單出口。 單入口單出口的控制結構,使得程序的靜態結構和單入口單出口的控制結構,使得程序的靜態結構和它的動態執行情況一致。這樣,使得程序容易閱讀和理它的動態執行情況一致。這樣,使得程序容易閱讀和理解,也容易保證程序的正確性。解,也容易保證程序的正確性。第7頁/共30頁2021年10月18日星期一 國家軟件開發工程規范規定國家軟件開發工程規范規定“程序單元必須只有唯一的程序單元必須只有唯一的入口,唯一的出口入口,唯一的出口”有兩個不同的概念:有兩個不同的概念: 1 1、以模塊為對象,每個模塊只有一個入口、以模塊為對象,每個模塊只有一個入口( (通過模塊名通過模塊名進行調用進行調用) ),

11、唯一的出口指通過模塊的返回語句返回到調用,唯一的出口指通過模塊的返回語句返回到調用語句的下一個語句語句的下一個語句( (對函數是返回到調用的位置對函數是返回到調用的位置) )。 2 2、以五種語句的控制結構為對象,每種控制結構,以、以五種語句的控制結構為對象,每種控制結構,以其語句標志的第一個語句為入口語句,以語句控制范圍的其語句標志的第一個語句為入口語句,以語句控制范圍的下一個語句為出口到的語句。下一個語句為出口到的語句。 經典的結構程序設計:使用順序、經典的結構程序設計:使用順序、IF_THEN_ELSEIF_THEN_ELSE型分支型分支結構、結構、DO_WHILEDO_WHILE型循環

12、結構。型循環結構。 擴展的結構程序設計:還允許使用擴展的結構程序設計:還允許使用DO_CASEDO_CASE型多分支結型多分支結構和構和DO_UNTILDO_UNTIL型循環結構。型循環結構。 修正的結構程序設計:再允許使用修正的結構程序設計:再允許使用BREAK(LEAVE)BREAK(LEAVE)結構。結構。第8頁/共30頁2021年10月18日星期一空氣污染物含量數據的統計處理程序空氣污染物含量數據的統計處理程序 假定某工廠煙囪附近,在假定某工廠煙囪附近,在24小時中每分鐘測量小時中每分鐘測量1次空氣中次空氣中污染物含量。得到的數據以每污染物含量。得到的數據以每100單位中所含污染物成分

13、的單位中所含污染物成分的值給出。約定測量數據的正常值在值給出。約定測量數據的正常值在1.00與與9.00之間。之間。統計程序完成以下功能:統計程序完成以下功能: 1、計算、計算24小時內小時內每小時每小時平均污染物含量值。平均污染物含量值。 2、記錄每小時違章次數,污染物、記錄每小時違章次數,污染物連續連續5次超過次超過10.0為為1次次違章。當一次違章分布在兩相鄰小時之間時間段上時,這次違章。當一次違章分布在兩相鄰小時之間時間段上時,這次違章記數在后一小時上。違章記數在后一小時上。 3、按以下形式列出污染物含量統計表。、按以下形式列出污染物含量統計表。 小時小時 每小時平均值每小時平均值 違

14、章次數違章次數 1 6.00 1 2 6.40 2 24 5.50 0 根據程序要求,算法主要處理根據程序要求,算法主要處理24小時數據。小時數據。第9頁/共30頁2021年10月18日星期一BEGIN 1. 設置初值;設置初值; 2. 處理處理24小時數據;小時數據;END 求精步驟求精步驟1:設置初值。開始時一般不明確為哪些變量賦初值。:設置初值。開始時一般不明確為哪些變量賦初值。 求精步驟求精步驟2:計算結果是以小時為統計單位輸出,它是重復執行:計算結果是以小時為統計單位輸出,它是重復執行24次次的循環結構。的循環結構。 局部數據結構設計:數據輸入的方案選擇:局部數據結構設計:數據輸入的

15、方案選擇: 1、處理前讀入所有、處理前讀入所有24小時數據,共小時數據,共1440個,需要大一個大的數組。個,需要大一個大的數組。 2、每次計算輸入一個數據,這要保證對先前輸入的數據不再使用。、每次計算輸入一個數據,這要保證對先前輸入的數據不再使用。 3、每小時計算前,本小時所需數據一次輸入。需要、每小時計算前,本小時所需數據一次輸入。需要60個元素的數組個元素的數組。 數據結構還應考慮:計算結果是在全部計算完后輸出,還是每小時結數據結構還應考慮:計算結果是在全部計算完后輸出,還是每小時結束后輸出。假定選取束后輸出。假定選取1小時計算完后輸出。小時計算完后輸出。根據上面的討論,需要命名的數據有

16、:根據上面的討論,需要命名的數據有: Valueofhour:ARRAY1.60 of real; 存儲每小時測量數據存儲每小時測量數據 Mean:real; 平均值平均值 Violations:integer; 違章計數器違章計數器 Hour:integer; 小時小時第10頁/共30頁2021年10月18日星期一求精求精2:處理每小時數據:處理每小時數據 2.1 輸出表頭;輸出表頭; hour:=1; WHILE hour=24 DO 2.2 讀入本小時數據于讀入本小時數據于Valueofhour數組中數組中; 2.3 處理本小時數據;處理本小時數據; 2.4 輸出本小時結果:輸出本小時結

17、果:hour,mean,violations; hour:=hour+1; ENDWHILE;2.1、2.2、2.4已能用程序語言表達,只需對已能用程序語言表達,只需對2.3進一步精細化。進一步精細化。為了處理為了處理60個數據,又需一循環結構。個數據,又需一循環結構。 引入分鐘值變量:引入分鐘值變量:minutes,每分鐘要做的工作是:,每分鐘要做的工作是: 累計:求每小時的平均值累計:求每小時的平均值 檢查違章情況檢查違章情況 為了累計,引入變量為了累計,引入變量sum: 在每小時處理前設初值為在每小時處理前設初值為0。 每小時處理后求平均值。每小時處理后求平均值。第11頁/共30頁202

18、1年10月18日星期一求精求精2.3,處理每小時數據:,處理每小時數據: 2.3.1 設置初值;設置初值; minutes:=1 WHILE minutes10.0 THEN Infraction:=Infraction+1; IF Infraction=5 THEN Voilations:=voilations+1; Infraction:=0 ENDIF ELSE Infraction:=0 ENDIF; 求精步驟求精步驟2.3.1的的“設置初值設置初值”是為變量是為變量sum和和voilations置置0值。值。 求精步驟求精步驟1的的“設置初值設置初值”是為是為infractions設

19、置初值設置初值0。第13頁/共30頁2021年10月18日星期一前一頁描述程序處理過程的工具稱為詳細描述程序處理過程的工具稱為詳細設計的工具。設計的工具。對詳細設計工具的基本要求:能提對詳細設計工具的基本要求:能提供對設計的無歧義的描述,即能指明控制供對設計的無歧義的描述,即能指明控制流程、處理功能、數據組織以及其它方面流程、處理功能、數據組織以及其它方面的處理細節。從而在編碼階段能把對設計的處理細節。從而在編碼階段能把對設計的描述直接翻譯成程序代碼。的描述直接翻譯成程序代碼。 第14頁/共30頁2021年10月18日星期一前一頁詳細設計工具分為詳細設計工具分為圖形、表格和語圖形、表格和語言言

20、三類。主要工具有:三類。主要工具有:程序流程圖程序流程圖 盒圖(盒圖(N-S圖)圖) PAD圖圖判定表判定表判定樹判定樹 過程設計語言(過程設計語言(PDL) 第15頁/共30頁2021年10月18日星期一前一頁 PAD是問題分析圖(是問題分析圖(Problem Analysis Diagram)的英文縮寫,自)的英文縮寫,自1973年由日本日年由日本日立公司發明以后,已得到一定程度的推廣。立公司發明以后,已得到一定程度的推廣。它用它用二維樹結構二維樹結構的圖來表示程序的控制流,的圖來表示程序的控制流,將這種圖翻譯成程序代碼比較容易。將這種圖翻譯成程序代碼比較容易。第16頁/共30頁2021年

21、10月18日星期一PAD圖基本符號圖基本符號第17頁/共30頁2021年10月18日星期一用用PADPAD圖逐步求精圖逐步求精第18頁/共30頁2021年10月18日星期一讀讀a,b,c=b*b+4ac輸出輸出x1,x2=0 x1,x2=-b/2aX1=-b/2a+sqrt()/2aX2=-b/2a-sqrt()/2aX1=-b/2a+sqrt(-)/2aiX2=-b/2a-sqrt(-)/2ai0第19頁/共30頁2021年10月18日星期一Infractions=0Hour=1While hour=24打印表頭打印表頭讀入本小時數據于讀入本小時數據于Valueofhour數組中數組中處理本

22、小時數據處理本小時數據輸出本小時結果:輸出本小時結果:hour,mean,violationsHour=hour+1第20頁/共30頁2021年10月18日星期一處理本小時數據處理本小時數據sun=0minutes=1While minutes 10.0Infraction=Infraction+1Infraction=5Infraction=0Voilations=voilations+1 Infraction=0第22頁/共30頁2021年10月18日星期一(1)按)按PAD符號所設計出的程序必然是結構化程序。符號所設計出的程序必然是結構化程序。 (2)PAD圖所描繪的程序結構十分清晰。圖

23、所描繪的程序結構十分清晰。(3)用)用PAD圖表現程序邏輯,易讀、易懂、易記。圖表現程序邏輯,易讀、易懂、易記。 (4)容易將)容易將PAD圖轉換成高級語言源程序,這種轉換可用圖轉換成高級語言源程序,這種轉換可用軟件工具自動完成軟件工具自動完成 (5)PAD圖的符號支持自頂向下,逐步求精方法的使用圖的符號支持自頂向下,逐步求精方法的使用 。第23頁/共30頁2021年10月18日星期一 定量度量程序復雜程度的方法很有價定量度量程序復雜程度的方法很有價值:把程序的復雜程度乘以適當常數即可值:把程序的復雜程度乘以適當常數即可估算出軟件中故障的數量以及軟件開發需估算出軟件中故障的數量以及軟件開發需要

24、用的工作量;定量度量的結果可以用來要用的工作量;定量度量的結果可以用來比較兩個不同的設計或兩個不同算法的優比較兩個不同的設計或兩個不同算法的優劣;程序的定量的復雜程度可以作為模塊劣;程序的定量的復雜程度可以作為模塊化的精確限度。化的精確限度。第24頁/共30頁2021年10月18日星期一 McCabe方法方法根據程序控制流的復雜程度來定量度量程序根據程序控制流的復雜程度來定量度量程序的復雜程度的復雜程度,這樣度量出的結果稱為,這樣度量出的結果稱為程序的環行復雜度程序的環行復雜度。 流圖:退化了的程序流程圖,僅描述程序的控制流程,不流圖:退化了的程序流程圖,僅描述程序的控制流程,不表現對數據的具

25、體操作,以及分支或循環的具體條件。表現對數據的具體操作,以及分支或循環的具體條件。 流圖中,用圓表示結點,一個結點表示一條或多條語句,流圖中,用圓表示結點,一個結點表示一條或多條語句,代表程序流圖中一個處理框或菱形框。代表程序流圖中一個處理框或菱形框。 流圖中結點間用有向邊連接,代表控制流。每條邊必須終流圖中結點間用有向邊連接,代表控制流。每條邊必須終止于一個結點,即使這個結點不代表任何語句。止于一個結點,即使這個結點不代表任何語句。 由邊和結點圍成的面積稱為區域。當計算區域時應該包括由邊和結點圍成的面積稱為區域。當計算區域時應該包括外部未圍起來的區域。外部未圍起來的區域。 對于復合條件,應該分解為若干個簡單條件。每個簡單條對于復合條件,應該分解為若干個簡單條件。每個簡單條件對應一個判定結點,它引出兩條或多條邊。件對應一個判定結點,它引出兩條或多條邊。第25頁/共30頁2021年10月18日星期一計算環形復雜度的方法計算環形復雜度的方法 1、流圖中的、流圖中的 區域數等于環形復雜度。區域數等于環形復雜度。 2、V(G)=E-N+2 其中,其中,E為圖為圖G中的邊數。中的邊數。 N是圖中的結點數。是圖中的結點數。 3、 V(G)=P+1 p為判定結點數目。為判定結點數目。 上面上面3種方法計算出來的結果應是一致

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論