武漢工程大學(xué)軟件工程復(fù)習(xí)討論_第1頁
武漢工程大學(xué)軟件工程復(fù)習(xí)討論_第2頁
武漢工程大學(xué)軟件工程復(fù)習(xí)討論_第3頁
武漢工程大學(xué)軟件工程復(fù)習(xí)討論_第4頁
武漢工程大學(xué)軟件工程復(fù)習(xí)討論_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、軟件工程復(fù)習(xí)討論課 1、基本概念 2、理論應(yīng)用 1、基本概念 1.可行性分析的內(nèi)容包括?可行性分析有哪些指標(biāo)? 2. 軟件生存周期一般可分為哪幾個(gè)階段? 3.軟件開發(fā)瀑布模型中的軟件定義時(shí)期各個(gè)階段依次是? 4.產(chǎn)生軟件危機(jī)的原因主要與兩個(gè)方面的問題有關(guān) ? 5.軟件項(xiàng)目管理目的?詳細(xì)分析導(dǎo)致一個(gè)軟件項(xiàng)目失敗 的原因可能有哪些 (五種以上)? 6.瀑布模型? 螺旋模型? 7.軟件詳細(xì)設(shè)計(jì)工具可以分為哪三類? 8.模塊有哪三個(gè)基本屬性?什么是模塊、模塊化、模塊 獨(dú)立性? 9.軟件開發(fā)方法的主要模型有哪些? 10.項(xiàng)目開發(fā)計(jì)劃有哪些內(nèi)容? 11.需求分析的主要目的是什么?描述工具 有哪些? 12.

2、需求分析階段的基本任務(wù)是什么? 13.數(shù)據(jù)流圖?數(shù)據(jù)字典?如何畫分層數(shù)據(jù)流圖? 14.在七種偶合中,耦合度最低和最高的偶合分別是什么? 15.兩種特殊的聚集關(guān)系分別是什么? 16.軟件設(shè)計(jì)的主要任務(wù)是什么? 17.可以表示各對象間的交互關(guān)系圖的有哪些? 18.什么是實(shí)體聯(lián)系圖? 19.需求分析階段結(jié)束后,應(yīng)提交的文檔有哪些? 20.在軟件概要設(shè)計(jì)中,需要使用的圖形工具有哪些? 21.詳細(xì)設(shè)計(jì)主要使用哪些描述工具,各有何特點(diǎn)? 22.結(jié)構(gòu)化設(shè)計(jì)方法采用的設(shè)計(jì)思想是什么? 23.軟件調(diào)試與軟件測試的區(qū)別在那里? 24.什么是動(dòng)態(tài)測試,有哪兩種方法? 25.什么是白盒測試?什么是黑盒測試? 26.白

3、盒測試 的方法有哪些,分別說明各種方法? 27.黑盒測試 的方法有哪些,分別說明各種方法? 28.面向?qū)ο蟪绦蛟O(shè)計(jì)的基本機(jī)制是什么?面向?qū)ο蟮拈_ 發(fā)方法的工作模型是什么? 29.簡述對象、類、消息、方法、多態(tài)性的基本概念。 30說明面向?qū)ο蟮姆治鲭A段建立的三個(gè)模型的關(guān)系。 31.什么是對象模型?什么是動(dòng)態(tài)模型?用例模型 ? 32.UML主要使用哪些圖形符號?表示各對象間的交互 關(guān)系的圖形有哪些?靜態(tài)圖有哪些? 33.黑盒測試技術(shù)中不包含的測試用例設(shè)計(jì)方法有哪些? 34.用WBS技術(shù)如何分解一個(gè)軟件項(xiàng)目所包含的工作? 35.如何用甘特圖來編制軟件項(xiàng)目進(jìn)度計(jì)劃? 36.軟件項(xiàng)目人員有哪幾類,其主要

4、工作是什么? 37.軟件維護(hù)階段所產(chǎn)生的文檔主要有哪些? 38.成本/效益分析目的是什么? 39.軟件復(fù)雜性度量的方法有哪些? 40.軟件可靠性的評價(jià)指標(biāo)有哪些? 41系統(tǒng)的穩(wěn)態(tài)可用性計(jì)算?缺陷總數(shù)Et進(jìn)行估算? 42.為什么軟件需要維護(hù)?軟件維護(hù)活動(dòng)有哪些類型? 43.軟件規(guī)模估算技術(shù)有哪些? 44.軟件配置管理的主要任務(wù)是什么? 45.配置項(xiàng)的狀態(tài)有哪三種?什么是基線和版本控制? 1. 使用邏輯覆蓋測試方法測試以下程序段: void DoWork (int x,int y,int z) 1 int k=0,j=0; 2 if ( (x3) 9 j=j%3; 10 說明:程序段中每行開頭的數(shù)

5、字(110)是對每條語句的編號。 要求: (1)畫出程序的控制流圖(用題中給出的語句編號表示)。 (2)用3種方法計(jì)算上述程序段的環(huán)形復(fù)雜度。 (3)選擇邏輯覆蓋測試方法(語句覆蓋、判定覆蓋、條件覆蓋、判定/條件 覆蓋、條件組合覆蓋、路徑覆蓋方法)設(shè)計(jì)測試用例,并寫出每個(gè)測試用 例的執(zhí)行路徑(用題中給出的語句編號表示)。 2、理論應(yīng)用 (1)程序控制流圖如下: (2)用3種方法計(jì)算上述程序段的環(huán)形復(fù)雜度: a. 流圖中區(qū)域的數(shù)量對應(yīng)于環(huán)型的復(fù)雜性=3; b. 流圖G的圈復(fù)雜度V(G) =E-N+2=7-6+2=3;E 是流圖中邊的數(shù)量,N是流圖中結(jié)點(diǎn)的數(shù)量; c.流圖G的圈復(fù)雜度V(G) =P

6、+1=2+1=3,P是流 圖G中判定結(jié)點(diǎn)的數(shù)量。 (3)設(shè)計(jì)的測試用例如下 測試用例執(zhí)行路徑 語句覆蓋x=4、y=5、z=5124,5789 判定覆蓋 x=4、y=5、z=5 x=2、y=5、z=5 124,5789 1279 條件組合覆蓋 x=2、y=6、z=5 x=4、y=5、z=15 12789 12789 判定/條件覆蓋 x=4、y=6、z=5 x=2、y=5、z=15 124,5789 1279 組合覆蓋 x=4、y=6、z=5 x=4、y=5、z=15 x=2、y=6、z=5 x=2、y=5、z=15 124,5789 12789 12789 1279 路徑覆蓋 x=4、y=6、z

7、=5 x=4、y=5、z=15 x=5、y=5、z=5 x=2、y=5、z=15 124,5789 12789 124,579 1279 2、使用基本路徑測試方法測試以下程序段: void sort ( int irecordnum, int itype ) 1 2 int x=0; 3 int y=0; 4 while ( irecordnum- 0 ) 5 6 if ( itype=0 ) 7 break; 8 else 9 if ( itype=1 ) 10 x=x+10; 11 else 12 y=y+20; 13 14 說明:程序段中每行開頭的數(shù)字 ( 114 )是對每條語句的編號。

8、 要求: (1) 畫出程序的控制流圖(用題中給出 的語句編號表示)。 (2) 計(jì)算上述程序段的環(huán)形復(fù)雜度。 (3) 導(dǎo)出基本路徑集,列出程序的獨(dú)立 路徑(用題中給出的語句編號表示)。 (4) 根據(jù) (3) 中的獨(dú)立路徑,設(shè)計(jì)測試 用例的輸入數(shù)據(jù)和預(yù)期輸出。 (1)控制流圖 (2)程序段的環(huán)形復(fù)雜度V(G)=4 (3)程序段的基本路徑集中有4條獨(dú) 立路徑。 路徑1:414 路徑2:46714 路徑3:4691013414 路徑4:4691213414 (4)設(shè)計(jì)的測試用例如下: 測試用例編 號 輸入數(shù)據(jù)預(yù)期輸出 1irecordnum = 0,itype = 0 x = 0,y = 0 2ire

9、cordnum = 1,itype = 0 x = 0,y = 0 3irecordnum = 1,itype = 1x = 10,y = 0 4irecordnum =1,itype = 2x = 0,y = 20 3、根據(jù)下列程序段 (1) 按條件組合覆蓋技術(shù)設(shè)計(jì)測試用例。 (2) 針對每種設(shè)計(jì)用例,給出對應(yīng)的測試數(shù)據(jù)。 if(a1 if(a=2|x1)x+; 測試用例: (1) a1, b=0 (2) a1,b0 (3)a=1,b=0 (4) a=1,b0 (5) a=2,x1 (6) a=2,x=1 (7) a2,x1 (8) a2,xc and b+ca and c+ab) IF (

10、a=b) IF (a=c) PUT(等邊三角形) ELSE PUT(等腰三角形) ENDIF ELSE IF(a=c) PUT(等腰三角形) ELSE IF (b=c) PUT(等腰三角形) ELSE PUT(一般三角形) ENDIF ENDIF ENDIF ELSE PUT (這不是一個(gè)三角形) ENDIF END a) 流圖 b)求出環(huán)形復(fù)雜度: V(G)=E-N+2=26-18+2=10 V(G)=P+1=9+1=10 其中結(jié)點(diǎn)2、3、4、6、7、9、10、13、15是判定結(jié)點(diǎn) V(G)=10(個(gè)區(qū)域) c)確定基本路徑集合(10條) 路徑1: 1 2 5 2 路徑2: 1 2 3 5

11、2 路徑3: 1 2 3 4 5 2 路徑4: 1 2 3 4 6 8 18 路徑5: 1 2 3 4 6 7 8 18 路徑6: 1 2 3 4 6 7 9 10 11 18 路徑7: 1 2 3 4 6 7 9 10 12 18 路徑8: 1 2 3 4 6 7 9 13 14 18 路徑9: 1 2 3 4 6 7 9 13 15 16 18 路徑10:1 2 3 4 6 7 9 13 15 17 18 d)為每一條獨(dú)立路徑設(shè)計(jì)設(shè)計(jì)用例: 路徑1的測試用例:a = 3, b = 4, c = 5; 路徑2的測試用例:a = 3 , b = 4 , c = 5 ; 路徑3的測試用例:a =

12、 3 , b = 4 , c = 5 ; 路徑4的測試用例:a = 3 , b = 1 , c = 5 ; 路徑5的測試用例:a = 3 , b = 7 , c = 2; 路徑6的測試用例:a = 3 , b = 3 , c = 3 ; 路徑7的測試用例:a = 3 , b = 3 , c = 5 ; 路徑8的測試用例:a = 3 , b = 4 , c = 3 ; 路徑9的測試用例:a = 3 , b = 4 , c = 4 ; 路徑10的測試用例:a = 3 , b = 4 , c = 5 ; 5、根據(jù)下圖: 寫出Jackson程序的偽碼描述(圖中的符號含義如下)。 ()停止 ()打開兩個(gè)

13、輸入文件 ()建立輸出文件 ()從輸入文件中各讀一條記錄 ()生成一條新記錄 ()將新記錄寫入輸出文件 ()關(guān)閉全部文件 產(chǎn)生新文件 234分析考生記錄71 處理考生記錄 產(chǎn)生準(zhǔn)考證號產(chǎn)生姓名產(chǎn)生通訊地址產(chǎn)生考分564 偽碼表示: 產(chǎn)生新文件 seq 打開兩個(gè)輸入文件 建立輸出文件 從輸入文件中各讀一條記錄 分析考生記錄 iter until文件結(jié)束 處理考生記錄 seq 產(chǎn)生準(zhǔn)考證號 產(chǎn)生姓名 產(chǎn)生通信地址 產(chǎn)生考分 生成一條新記錄 將新記錄寫入輸出文件 從輸入文件中各讀一條記錄 處理考生記錄 end 分析考生記錄文件結(jié)束 end 關(guān)閉全部文件 停止 產(chǎn)生新文件 end 6、交通工具分為空中

14、、陸地、水上交通工具,空中交通工具分 為客機(jī)、貨機(jī)、專用輕型機(jī),陸地交通工具分為列車、汽車; 列車又分為旅客列車、客運(yùn)列車;汽車又分為客車、貨車;水 上交通工具分為客輪、貨輪、客貨混合輪。請建立交通工具的 對象模型。 7、下列是直接選擇排序算法(描述語言:C+類模板), 畫出程序流程圖。 template void SelectSort ( datalist ilist.Size-1; i+ ) int k = i; for ( int j=i+1; jlist.Size; j+) If ( list.Vj.getKey ( ) list.Vk.getKey ( ) ) k = j; if (

15、 k != i ) Swap ( list.Vi, list.Vk ); i=0 ilist.Size-1 k = i j=i+1 jlist.Size list.Vj.getKey ( ) list.Vk.getKey ( ) K=j j+ Swap i+ k != i Y N Y N N Y N 入口 出口 Y 8、一所大學(xué)CUniversity包含若干個(gè)課題組CGroup ,每個(gè) 課題組由多個(gè)人員CPerson參加,這些人員可以是學(xué)生 CStudent或教師CTeacher 。請建立對象模型(類圖),并 用代碼表示各類和主程序?qū)崿F(xiàn)的框架程序。 void main(void) . CUni

16、versity; CPerson person; CPerson 1,* 1 1,* 0,* CStudentCTeacher CGroup CUniversity 1 0,5 class CPerson /. class CStudent:public CPerson/繼承關(guān)系 /. class CTeacher:public CPerson/繼承關(guān)系 /. class CUniversity class CGroup/組合關(guān)系 CPerson person; /一對多聚合關(guān)系 CGroup subGroup=new CGroup5/實(shí)例的反射關(guān)聯(lián) CGroup group;/一對多 9、研

17、究擲骰子游戲(每個(gè)游戲者擲兩個(gè)骰子,總數(shù)是7為贏, 否則為輸),試給用面向?qū)ο蠓椒ㄟM(jìn)行分析、設(shè)計(jì)并給出類 的實(shí)現(xiàn)和測試用例。 1)建立用例圖: 游戲者玩骰子游戲 2)建立類圖 根據(jù)問題域采用名詞短語分 析法,抽象出對象為: player,dicegame,die,建 立相應(yīng)的類及其關(guān)系,得到 類圖: Player name DiceGame +1 +1 Plays Die faceValue +2+1 Rolls Includes +2 +1 參與者為游戲者,其行為為玩骰 子游戲,可以得用例圖: 3)建立動(dòng)態(tài)模型 進(jìn)行一次骰子游戲的過程可以描述為:player開始dicegame,擲 die一

18、次,得到一個(gè)數(shù)值,再擲die一次,得到一個(gè)數(shù)值,兩次數(shù)值在 dicegame處得出游戲結(jié)果,返回給游戲者或輸出到顯示屏。 由此可以得到骰子游戲的順序圖: : DiceGamedie1 : Diedie2 : Die : player play( ) roll( ) getFaceValue( ) roll( ) getFaceValue( ) 4)問題域子系統(tǒng)的細(xì)化(添加屬性和操作)得到細(xì)化的類 圖: Player name Dicegame +1 +1 plays Die facevalue +2+1 rolls Includes +2 +1 start roll getfacevalue

19、Die1:Die Die2:Die Play 5)根據(jù)用例描述設(shè)計(jì)人機(jī)交互子系統(tǒng) 游戲者 (use case) 輸入開始游戲的命令; 作好游戲準(zhǔn)備, 骰子數(shù)值 置為0; 游戲者擲骰子一次 do 得到一個(gè)骰子數(shù)值 ; 擲骰子次數(shù)多于2次 ; 兩次骰子數(shù)值累加; ; . 游戲者 游戲(人機(jī)交互 ) 輸入開始本次游戲的命令; ; 人機(jī)交互描述 游戲 Do End for; 得到游戲結(jié)果 輸出游戲結(jié)果 游戲者擲骰子一次 do 得到一個(gè)骰子數(shù)值 ; 擲骰子次數(shù)多于2次 兩次骰子數(shù)值累加 do end for; 得到游戲結(jié)果 輸出游戲結(jié)果 For: Use case For: 游 戲 起 始 界 面 界

20、面 類 標(biāo) 簽 界 面 類 +n +1 +n 初 始 化 退 出 并 臨 時(shí) 保 存 下 拉 框 界 面 類 按 鈕 界 面 類 +n 窗口系統(tǒng)的游戲的界面: 6)實(shí)現(xiàn) class Player private String name; private int score; Player(String name) = name; public void play(Die die1, Die die2) die1.roll(); die2.roll(); score = die1.getFaceValue()+die2.getFaceValue(); public Strin

21、g getName() return name; public int getScore() return score; class Die private int faceValue; public int getFaceValue() return faceValue; public void roll() faceValue = int(Math.random() * 6 + 1); class DiceGame private Die die1, die2: private string player; public DiceGame(String name) player = new

22、 Player(name); die1 = new Die(); die2 = new Die(); public void play() player.play(die1, die2); public boolean getResult(): int score = player.getScore(); return (score= 7)?true:false; public void function main() DiceGame game = new DiceGame(玩家); game.play(); if(game.getresult() trace(winner.getName(

23、)+Win!); else trace(winner.getName()+failure!); /main.play DiceGame.main(); 7)測試用例設(shè)計(jì) 采用面向?qū)ο箢惖碾S機(jī)測試方法來設(shè)計(jì)類的測試用例。 對于類Player,共有如下操作:player(玩家), play(游戲),兩個(gè)操作之間 有順序關(guān)系,由于游戲結(jié)果由是否等于7來確定,因而設(shè)計(jì)兩組用例,一組等于7, 另一組不等于7,測試用例如下: 對于類player: 測試用例#1:玩家李 2 5 預(yù)期結(jié)果: 玩家李 7 測試用例#2:玩家張 3 5 預(yù)期結(jié)果: 玩家張 8 對于類Die: 測試用例#1:玩家李 die1 di

24、e2 預(yù)期結(jié)果:玩家李 x y (x,y1,2,3,4,5,6 對于類Dicegame: 測試用例#1:玩家李 2 5 預(yù)期結(jié)果:true 測試用例#2:玩家張 3 5 預(yù)期結(jié)果:false 而后對整個(gè)骰子游戲進(jìn)行集成測試,本系統(tǒng)規(guī)模很小,可以將三個(gè)類也就是游戲 整體合在一起進(jìn)行測試,測試用例如下: 測試用例: 玩家王 die1 die2 預(yù)期結(jié)果:屏幕輸出:“玩家王win(or failure)!” 10.甲、乙兩位測試人員共同測試一個(gè)10000行的程序,各人 獨(dú)立工作。一周后統(tǒng)計(jì),甲發(fā)現(xiàn)了164個(gè)錯(cuò)誤,乙發(fā)現(xiàn)了179 個(gè)錯(cuò)誤,其中有148個(gè)錯(cuò)誤是兩人都發(fā)現(xiàn)了的。請估算這個(gè) 程序的可靠性。

25、由題意知:B1=164,B2=179,Bc=148 則,分別測試法的錯(cuò)誤總數(shù)B0為: B0=B1*B2 / Bc =164 * 179 / 148 = 198 用B0來代替Et,即,原有的錯(cuò)誤總數(shù)Et=198,那么用錯(cuò)誤密 度FD來評價(jià)可靠性: FD = B0 / 10000 = 198 /10000=19.8/千行 即每千行有約20個(gè)錯(cuò)誤。 11.某軟件公司的評測部為了評估已開發(fā)的應(yīng)用軟件系統(tǒng)的可 靠性,決定采用軟件可靠性的植入故障法來進(jìn)行測試和評估。 評測部在評估時(shí),作了下列三個(gè)假設(shè): (1) 在測試前,單位長度的故障個(gè)數(shù)Et / It 為一常數(shù),此常數(shù)基本上落在一 個(gè)固定的范圍內(nèi)。其中It 為被測程序的長度(機(jī)器指令條數(shù)),Et 為被測 程序中故障總數(shù); (2) 失效率正比于軟件中潛藏的故障數(shù),平均無故障時(shí)間MTTF與單位長度 的剩余故障個(gè)數(shù)成反比,即 。其中 為單位長度剩余故 障個(gè)數(shù),K的典型值現(xiàn)取為200; (3) 測試中發(fā)現(xiàn)的錯(cuò)誤都得到了及時(shí)改正,在測試過程中沒有引入新的錯(cuò) 誤。評測部對該軟件

溫馨提示

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

最新文檔

評論

0/150

提交評論