軟件工程學概述第5章詳細設計解析復習過程_第1頁
軟件工程學概述第5章詳細設計解析復習過程_第2頁
軟件工程學概述第5章詳細設計解析復習過程_第3頁
軟件工程學概述第5章詳細設計解析復習過程_第4頁
軟件工程學概述第5章詳細設計解析復習過程_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件工程學概述第5章詳細設計解析需求分析需求分析問題定義問題定義可性行研究可性行研究計劃計劃時期時期概要設計概要設計詳細設計詳細設計編編 碼碼 測測 試試開發(fā)開發(fā)時期時期運行與維護運行與維護運運 行行時時 期期詳細設計階段的主要任務為每一模塊確定算法確定每一模塊使用的數(shù)據(jù)結(jié)構(gòu)確定模塊的外部接口和用戶界面為每一模塊設計一組測試用例描述工具程序流程圖 圖 圖 偽代碼5.2 詳細設計階段的描述工具A1、順序型一、程序流程圖 B幾個連續(xù)的加工依次序排列expFTA B2、選擇型 由某個判斷式的取值決定選擇兩個加工中的一個。3、當型循環(huán)型 當循環(huán)控制條件成立時,重復執(zhí)行特定的加工。FT4、直到型循環(huán)型

2、重復執(zhí)行特定的加工,直到循環(huán)控制條件成立時。 FT5、多情況選擇型 列出多種加工情況,根據(jù)控制變量的取值,選擇執(zhí)行其一。FTTTFF- 具有嵌套形式的程序流程圖FTTTFF入口FTFT=1=2=3 標準化程序流程圖規(guī)定符號 起止端點 輸入/輸出 一般處理 準備或預處理 預定義處理 條件判斷 循環(huán)上界 循環(huán)下界 文件或文檔 外接 內(nèi)接 流程線虛線 省略線 并行方式 注解或注釋 流程符號的使用規(guī)則 1、循環(huán)符號的使用 循環(huán)名進入循環(huán)條件循環(huán)體 循環(huán)名 S=S+i S=0S=S+iS=0,i=1i=i+1 循環(huán)體 - 循環(huán)流程符號的使用 2、判斷有一個入口,但也允許有多個可選出口 A=B AB x=

3、1 x=2 x=3 x=4 =1 =2 =3 =4 =5 - 多出口判斷流程符號的使用 請利用程序流程圖描述下列問題的程序結(jié)構(gòu) 某汽車修配廠,有一個存有汽車零件的倉庫,其中存有若干種零件,請編寫一個查詢程序,用于查詢該庫中某零件的庫存量為多少。 設該模塊為 查詢模塊。請設計該模塊的 程序結(jié)構(gòu)。具體要求: 1、應具有重復查詢功能; 2、應具有數(shù)據(jù)檢測功能; 3、請利用程序流程圖描述該模塊的算法。 順序型二、 圖A B 選擇型- Nassi and Shneideman BpFTA ApFT p=1=2=n A1 A2 An do while(p) S do until (p) S 當型循環(huán)型 直

4、到型循環(huán)型 多分支選擇型 零件號100011000210003100041000510006庫存量100012508866920203450建立零件庫 (s數(shù)組), i=0 輸入零件號 x do while(x!=s0i)i+i+x=s0i) Y N s0i輸出 s1i 輸入錯誤! 繼續(xù)查詢? Y N 跳出循環(huán) 三、 圖 直到型循環(huán)型A BAB A While P SUntil P S 當型循環(huán)型 順序型 選擇型A1 A2An 多分支選擇型循環(huán)型- Problem Analysis Diagrams17s22=0while num(1-1000) 輸入 age s17+ s18+ s19+ s

5、20+ s21+ s22+ while i(17-22) 輸出 sibegin 請為學生成績管理系統(tǒng)中的學生成績統(tǒng)計模塊設計程序結(jié)構(gòu)。 要求: 1、統(tǒng)計各專業(yè)、各班級的高等數(shù)學平均分; 2、并將統(tǒng)計結(jié)果輸出; 3、按平均成績以班級為單位由高到低排序; 4、請利用PAD圖描述該模塊的算法。 四、- Program Ddesign Language是一種用于描述功能模塊的算法設計和加工細節(jié)的語言。稱為設計程序用語言。它是一種偽代碼(Pseudo code) -關鍵詞+自然語言(1)、數(shù)據(jù)說明:格式: TYPE AS 其功能是定義數(shù)據(jù)的類型和作用域說明: 1. 變量名:是一個模塊內(nèi)部使用的變量或模塊

6、間共用 的全局變量名。 2. 限定詞1 :標明數(shù)據(jù)類型 3. 限定詞2 :標明該變量的作用域 TYPE number AS STRING LENGTH (12)(2)、程序塊: PDL的過程成分是由塊結(jié)構(gòu)構(gòu)成的,而塊將作為一個單個的實體來執(zhí)行。 BEGIN END(3)、子程序結(jié)構(gòu):把 PDL 中的過程稱為子程序。 PROCEDURE INTERFACE END(4)、基本控制結(jié)構(gòu): IF THEN ; ELSE ; ENDIF - 選擇型結(jié)構(gòu) DO WHILE ; ENDDO REPEAT UNTIL ; ENDREP - 重復型結(jié)構(gòu) DO LOOP ; EXIT WHEN ENDLOOP

7、DO FOR ; ENDFOR - 重復型結(jié)構(gòu) - 多路選擇結(jié)構(gòu) CASE OF ; WHEN SELECT ; WHEN SELECT ; DEFAULT: 缺省或錯誤case: ; ENDCASE READ/WRITE TO - 輸入/輸出結(jié)構(gòu) Enter a vector Set Maximum to the value of the first element in the vector DO for each second one to the last IF value of THEN element is greater than the Maximum value Set Ma

8、ximum to value of the element ENDDO Print the Maximum valueInput array AMax=A(1)DO for I=2 to N IF MaxA(I) Set Max=A(I) ENDIFENDDOPrint Max三、程序復雜性的度量 程序復雜性主要是指模塊內(nèi)部程序的復雜性。它 直接關系到軟件開發(fā)費用的多少,開發(fā)周期的長短和 軟件和軟件內(nèi)部潛伏錯誤的多少。同時它也是軟件可 理解性的另一種度量。 它可以用來計算任何一個程序的復雜性; 對于不合理的程序,例如對于長度動態(tài)增長的程序, 或者對于原則上無法排錯的程序,不應當使用它進行 復雜

9、性計算; 如果程序中指令條數(shù)、附加存儲量、計算時間增多, 不會減少程序的復雜性。為了度量程序復雜性,要求復雜性度量應滿足以下假設: 如果設每行代碼的出錯率為每100行源程序中可能的錯誤數(shù)目。例如,每行代碼的出錯率為 1%,也就是說,每 100 行源程序中就可能有一個錯誤。 1、代碼行度量法:統(tǒng)計程序中的源代碼的行數(shù)較小的程序 -1.3%1.8%/行較大的程序 -2.7%3.2%/行 該方法是利用程序模塊的程序圖中環(huán)路的個數(shù),來計算程序的復雜性的。為此,該方法也稱為環(huán)路復雜度計算法。 2、McCabe 度量法:利用程序的控制流來度量程序的復雜性 它是一種退化了的程序流程圖。即:把程序流程圖中每個

10、處理符號都退化成一個結(jié)點,而原來流程圖中的流程線,則變成連接不同結(jié)點的有向弧。(1)程序圖符號TC1C2CABED(2)從流程圖導出程序圖 A開始C1BCED結(jié)束C2TF(3)環(huán)路復雜性的計算方法 V(G)=m-n+p 說明: V(G) 是有向圖G中環(huán)路數(shù); m: 為圖G中弧數(shù); n: 為圖G中節(jié)點數(shù); p: 為圖G中強連通分量個數(shù); A B C D E F G H K L I McCabe 的環(huán)路復雜性度量值為 3請將右側(cè)給出的程序流程圖轉(zhuǎn)換為程序圖并計算其環(huán)路值。a=20b%3=1 b+=3 a+ b-=5TFFT a=0,b=1 程序的環(huán)路復雜度則取決于程序控制流的復雜度,也就 是取決于

11、程序結(jié)構(gòu)的復雜程度。當程序內(nèi)分支或循環(huán)個數(shù)增 加時,則相應地環(huán)域復雜度也隨之增加。因此,它是對測試 難度的一種定量度量,也能對軟件最終的可靠性給出某種預 測。(4)、環(huán)路復雜度的用途 請用程序流程圖描述下列問題的算法,再將其轉(zhuǎn)換為程序圖并計算其環(huán)路值。 請定義一個數(shù)組 ,要求找出數(shù)組中最大數(shù)和最小 數(shù),并把最大數(shù)和 中的數(shù)對調(diào)、最小數(shù)和 中的數(shù)對調(diào)。 請畫出下列偽代碼程序的流程圖、程序圖并計算它的環(huán)路復雜度。 LOOP : Do While Z0 A=A+1 IF A10 THEN X=A ELSE Y=Z END IF IF Y0 THEN PRINT G E LSE PRINT K END

12、 IF STOP 設某模塊的功能是:讀入任意長的設某模塊的功能是:讀入任意長的 一段英文課文,將其分解為單字。然后一段英文課文,將其分解為單字。然后 輸出一個單詞表,并指出每個單詞在課輸出一個單詞表,并指出每個單詞在課 文中所出現(xiàn)的次數(shù)。文中所出現(xiàn)的次數(shù)。 請按下列給出的文字要求,用 PDL 描述其該模塊的算法請將下列的 PDL 表示的某模塊的過程性描述,改為用:1、N-S 圖 2、PAD 圖表示5-1 假設只有SEQUENCE和DO-WHILE兩種控制結(jié)構(gòu),怎樣利用它們完成IF-THEN-ELSE操作?5-2 假設只允許使用SEQUENCE和IF-THEN-ELSE兩種控制結(jié)構(gòu),怎樣利用它們

13、完成DO-WHILE操作?5-3 畫出下列偽碼程序的程序流程圖和盒圖:STARTIF p THENWHILE q DOfEND DO ELSEBLOCK g nEND BLOCKEND IFSTOP5-4 圖6.18給出的程序流程圖代表一個非結(jié)構(gòu)化的程序,請問:(1) 為什么說它是非結(jié)構(gòu)化的?(2) 設計一個等價的結(jié)構(gòu)化程序。圖6.18 一個非結(jié)構(gòu)化程序(3) 在(2)題的設計中你使用附加的標志變量flag了嗎?若沒用,請再設計一個使用flag的程序;若用了,再設計一個不用flag的程序。5-5 研究下面的偽碼程序(見書131頁):要求:(1) 畫出程序流程圖。(2) 程序是結(jié)構(gòu)化的嗎?說明理

14、由。(3) 若程序是非結(jié)構(gòu)化的,請設計一個等價的結(jié)構(gòu)化程序并且畫出程序流程圖。(4) 此程序的功能是什么?它完成預定功能有什么隱含的前提條件嗎?5-6 用Ashcroft_Manna技術(shù)可以將非結(jié)構(gòu)化的程序轉(zhuǎn)換為結(jié)構(gòu)化程序,圖6.19(見書132頁)是一個轉(zhuǎn)換的例子。(1) 你能否從這個例子總結(jié)出Ashcroft-Manna技術(shù)的一些基本方法?(2) 進一步簡化圖6.19(b)給出的結(jié)構(gòu)化設計。5-7 某交易所規(guī)定給經(jīng)紀人的手續(xù)費計算方法如下:總手續(xù)費等于基本手續(xù)費加上與交易中的每股價格和股數(shù)有關的附加手續(xù)費。如果交易總金額少于1000元,則基本手續(xù)費為交易金額的8.4%;如果交易總金額在10

15、00元到10000元之間,則基本手續(xù)費為交易金額的5%,再加34元;如果交易總金額超過10000元,則基本手續(xù)費為交易金額的4%加上134元。當每股售價低于14元時,附加手續(xù)費為基本手續(xù)費的5%,除非買進、賣出的股數(shù)不是100的倍數(shù),在這種情況下附加手續(xù)費為基本手續(xù)費的9%。當每股售價在14元到25元之間時,附加手續(xù)費為基本手續(xù)費的2%,除非交易的股數(shù)不是100的倍數(shù),在這種情況下附加手續(xù)費為基本手續(xù)費的6%。當每股售價超過25元時,如果交易的股數(shù)零散(即,不是100的倍數(shù)),則附加手續(xù)費為基本手續(xù)費的4%,否則附加手續(xù)費為基本手續(xù)費的1%。要求:(1) 用判定表表示手續(xù)費的計算方法;(2) 用判定樹表示手續(xù)費的計算方法

溫馨提示

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

評論

0/150

提交評論