軟件工程導論第六版張海藩課后習題部分答案_第1頁
軟件工程導論第六版張海藩課后習題部分答案_第2頁
軟件工程導論第六版張海藩課后習題部分答案_第3頁
軟件工程導論第六版張海藩課后習題部分答案_第4頁
軟件工程導論第六版張海藩課后習題部分答案_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

-

第一章

1-1什么是軟件危機"

是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。

1-3什么是軟件工程"

是指導計算機軟件開發(fā)和維護的一門工程學科。

1-4簡述結構化范型和面向對象范型的要點,并分析它們的優(yōu)缺點。

目前使用得最廣泛的軟件工程方法學(2

種):

傳統(tǒng)方法學:也稱為生命周期方法學或結構化范型。優(yōu)點:把軟件生命周期劃分成基干個階段,每個階段的任務相對獨立,而且比較簡單,便于不同人員分工協(xié)作,從而降低了整個軟件開發(fā)過程的困難程度。缺點:當軟件規(guī)模龐大時,或者對軟件的需求是模糊的或會承受時間而變化的時候,開發(fā)出的軟件往往不成功;而且維護起來仍然很困難。

面向對象方法學:優(yōu)點:降低了軟件產(chǎn)品的復雜性;提高了軟件的可理解性;簡化了

軟件的開發(fā)和維護工作;促進了軟件重用。

1-6什么是軟件過程"它與軟件工程方法學有何關系"

z軟件過程:是為了獲得高質量軟件所需要完成的一系列任務的框架,它規(guī)定了完成各項任務的工作步驟z軟件工程方法學:通常把在軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學,也稱范型

1-7什么是軟件生命周期模型,試比較瀑布模型,快速原型模型,增量模型,和螺旋模型的優(yōu)缺點,說明每種模型的適用范圍。

軟件生命周期由軟件定義、軟件開發(fā)和運行維護3個時期組成,每個時期又進一步劃分成若干個階段。生命周期模型規(guī)定了把生命周期劃分成哪些階段及各個階段的執(zhí)行順序,因此,也稱為過程模型。

瀑布模型的優(yōu)點:1.可強迫開發(fā)人員采用規(guī)范的方法;2.嚴格規(guī)定了每個階段必須提交的文檔;3.要求每個階段交出的所有產(chǎn)品都必須經(jīng)過質量保證小組的仔細驗證。

瀑布模型的缺點:1.在軟件開發(fā)初期,指明用戶全部需求是困難的;2.需求確定后,經(jīng)過一段時間才得到軟件最初版本;3.完全依賴規(guī)格說明,導致不能滿足用戶需求。適用中小型項目。

快速原型模型的優(yōu)點:1滿足用戶需求程度高;2用戶的參與面廣;3返工現(xiàn)象少快速原型模型的優(yōu)點:不適用大型軟件的開發(fā)適用于小型項目。

增量模型的優(yōu)點:1短期內可以交付滿足部分用戶需求的功能產(chǎn)品;2逐步增加功能可以讓用戶去適應新產(chǎn)品;3開放式的軟件可維護性比較好;4開始第一構件前,已經(jīng)完成需求說明。

增量模型的缺點:1對現(xiàn)有產(chǎn)品功能造成破壞;2意義上的矛盾適用于中型軟件的開發(fā)

螺旋模型的優(yōu)點:1集成了瀑布模型、快速原型模型、增量模型的優(yōu)點;2支持用戶需求動態(tài)變化;3需求分析與軟件實現(xiàn)緊密聯(lián)系相互依賴;4原型作為刑式的可執(zhí)行的需求規(guī)格說明,即利用用戶和開發(fā)人員共同理解,又可作為后續(xù)開發(fā)的基礎;5為用戶參與決策提供方便;6提高目標軟件的適應能力;7降低風險;8在大型軟件開發(fā)過程中充分發(fā)揮優(yōu)勢。螺旋模型的缺點:1迭代次數(shù)影響開發(fā)成本,延遲提價時間;2找不到關鍵改進點,人才、物力、財力時間引起無謂消耗;3成于風險分析,敗于風險分析。適用于內部開發(fā)的大規(guī)模軟件項目。

.z.

第二章

-

1-8:為什么說噴泉模型叫好的體現(xiàn)了面向對象軟件開發(fā)過程無縫和迭代的特性.

因為使用面向對象方法學開發(fā)軟件時,各個階段都使用統(tǒng)一的概念和表示符號,因此,整個

開發(fā)過程都是吻合一致的,或者說是無縫連接的,這自然就很容易實現(xiàn)各個開發(fā)步驟多次迭代,達到認識的逐步深化,而噴泉模型的則很好的體現(xiàn)了面向對象軟件開發(fā)過和無縫的特性。

1-9:試討論Rational統(tǒng)一過程的優(yōu)缺點

優(yōu)點:提高了團隊生產(chǎn)力,在迭代的開發(fā)過程、需求管理、基于組建的體系結構、可件建模、驗證軟件質量及控制軟件變更等方面、針對所有關鍵的開發(fā)活動為每個開發(fā)供了必要的準則、模版和工具指導,并確保全體成員共享相同的知識基礎。它簡歷了清晰的過程結構,為開發(fā)過程提供較大的通用性。

缺點:RUP只是一個開發(fā)過程,并沒有涵蓋軟件過程的全部內容,例如它缺少關于行和支持等方面的內容,此外,它沒有支持多項目的開發(fā)結構,這在一定程度上降低發(fā)組織內大范圍實現(xiàn)重用的可能性。

1-10Rational統(tǒng)一過程主要適用于何種項目.大型的需求不斷變化的復雜軟件系統(tǒng)項目1-11:說明敏捷過程的適用范圍

適用于商業(yè)競爭環(huán)境下對小型項目提出的有限資源和有限開發(fā)時間的約束。

1-12說明微軟過程的適用范圍

適用于商業(yè)環(huán)境下具有有限資源和有限開發(fā)時間約束的項目的軟件過程模式。

的反復

程迭代

視化軟

成員提

簡潔和

軟件運

了在開

2-1在軟件開發(fā)的早期階段為什么要進行可行性分析研究.應該從哪些

方面研究目標系統(tǒng)的

可行性.

可行性分析是要進行一次大大壓縮簡化系統(tǒng)分析和設計過程,避免時間、資源、人力和金錢的浪費。

技術上的可行性——使用現(xiàn)有的技術能實現(xiàn)這個系統(tǒng)嗎.

經(jīng)濟上的可行性——這個系統(tǒng)的經(jīng)濟效益能超過它的開發(fā)成本嗎.(投性——系統(tǒng)的操作方式在這個用戶組織內行得通嗎.社會、政策允許的2-2為方便儲戶,*銀行擬開發(fā)計算機儲蓄系統(tǒng)。儲戶填寫的存款單或取統(tǒng),如果是存款,系統(tǒng)記錄存款人姓名、住址、存款類型、存款日期、存款單給儲戶;如果是取款,系統(tǒng)計算利息并印出利息清單給儲戶。請

效益)操作可行性

由業(yè)務員鍵入系等信息,并印出此系統(tǒng)的數(shù)據(jù)流

圖。

.z.

-

2-3為方便旅客,*航

空公

司擬

開發(fā)一個機票預定系

統(tǒng)。

旅行社把

預訂機票的

旅客

信息(、性

別、工作單位、身份

證號

碼、

旅行時間、旅行目的

地等)輸入進

該系統(tǒng),系

統(tǒng)為

旅客

安排航

班,印出取票通知和

賬單,旅

客在飛機起飛的前一

天憑

取票通知

和賬單交款

取票,系

統(tǒng)核對

無誤即印出

給旅客。請

出系

統(tǒng)的數(shù)

據(jù)

圖。

2-4目前住院病人主要由護士護理,這樣做不僅需要大量護士,而且由于不能隨病人的病情變化,還可能會延誤搶救時機。*醫(yī)院打算開發(fā)一個以計算機為中心系統(tǒng),試寫出問題定義,并且分析開發(fā)這個系統(tǒng)的可行性。

醫(yī)院對患者監(jiān)護系統(tǒng)的基本要求是隨時接受每個病人的生理信號(脈搏、體溫、圖等),定時記錄病人情況以及形成患者日志,當*個病人的生理信號超出醫(yī)生規(guī)圍時向值班護士發(fā)出警告信息,此外,護士在需要時還可以要求系統(tǒng)印出*個指

時觀察危險的患者監(jiān)護

血壓、心電定的安全范定病人的病

情報

告。請畫出系統(tǒng)的數(shù)據(jù)

流圖

.z.

第三章

-

2-5北京*高??捎玫碾娫捥柎a由以下幾類:校內電話號碼由4位數(shù)字組成,第一位數(shù)字不是零;校外電話又分為本市電話和外地電話兩類,撥校外電話先撥0,若是本地電話再接著撥8位數(shù)字(固話第一位不是0)或11位數(shù)字(移動電話第一位為1);若是外地電話,則撥3位區(qū)碼再撥8位電話號碼(固話第一位不是0),或撥0再撥11位數(shù)字(移動電話第一位為1)。請用數(shù)據(jù)定義的方法,定義上述電話號碼。電話號碼=[校內號碼|校外號碼]校內號碼=非0數(shù)字+3{數(shù)字}3校外號碼=0+[本地號碼|外地號碼]本地號碼=[固話號碼|手機號碼]固話號碼=非0數(shù)字+7{數(shù)字}7手機號碼=1+10{數(shù)字}10

外地號碼=[外地固話號碼|外地手機號碼]外地固話號碼=3{數(shù)字}3+固話號碼外地手機號碼=0+手機號碼非0數(shù)字=[1|2|3|4|5|6|7|8|9]

1、為什么要進行需求分析.通常對軟件系統(tǒng)有哪些需求.

答:為了開發(fā)出真正滿足用戶需求的軟件產(chǎn)品,準確定義未來系

統(tǒng)的目標,確定為了滿足用戶的需要系統(tǒng)必須做什么,就必須要進行準確的需求分析。通常對軟件系統(tǒng)的需求有:功能需求;性能需求;可靠性和可用性需求;出錯處理需求;接口需求;約束;逆向需求;文檔需求;數(shù)據(jù)需求等等。

2、銀行計算機儲蓄系統(tǒng)的工作過程大致如下:儲戶填寫的存款單或取款單由業(yè)務員鍵入系統(tǒng),如果是存款則系統(tǒng)記錄存款人姓名、住址、身份證號碼等存款信息,并打印出存款存單給儲戶;如果是取款且存款時留有密碼,則系統(tǒng)首先核對儲戶密碼,若密碼正確或存款時未留密碼,則系統(tǒng)計算利息并打印出利息清單給儲戶。

用數(shù)據(jù)流圖描述本系統(tǒng)的功能,并用ER圖描繪系統(tǒng)中的數(shù)據(jù)對象。

.z.

不考,略。

-

6、復印機的工作過程大致如下:未接到復印命令時處于閑置狀態(tài),一旦接到復印命令則進入復印狀態(tài),完成一個復印命令規(guī)定的工作后又回到閑置狀態(tài),等待下一個復印命令;如果執(zhí)行復印命令時發(fā)現(xiàn)沒紙,則進入缺紙狀態(tài),發(fā)出警告,等待裝紙,裝滿紙后進入閑置狀態(tài),準備接收復印命令;如果復印時發(fā)生卡紙故障,則進入卡紙狀態(tài),發(fā)出警告等待維修人員來排除故障,故障排除后回到閑置狀態(tài)。請用狀態(tài)轉換圖描繪復印機的行為。

從問題陳述可知,復印機的狀態(tài)主要有“閑置”、“復印”、“缺紙”和“卡紙”。引起狀態(tài)轉換的事件主要是“復印命令”、“完成復印命令”、“發(fā)現(xiàn)缺紙”、“裝滿紙”、“發(fā)生卡紙故障”和“排除了卡紙故障”。

第四章

第五章

.z.

-

5-4美國*大學共有200名教師,校方與教師工會剛剛簽訂一項協(xié)議。按照協(xié)議,所有年工資超過$26000(含$26000)的教師工資將保持不變,年工資少于$26000的教師將增加工資,所增加的工資數(shù)按下述方法計算:給每個由此教師所贍養(yǎng)的人(包括教師本人)每年補助$100,此外,教師有一年工齡每年再多補助$50,但是,增加后的年工資總額不能多于$26000。教師的工資檔案儲存在行政辦公室的磁帶上,檔案中有目前的年工資、贍養(yǎng)的人數(shù)、雇用日期等信息。需要寫一個程序計算并印出每名教師的原有工資和調整后的新工資。要求:(1)畫出此系統(tǒng)的數(shù)據(jù)流圖;(1)畫出此系統(tǒng)的數(shù)據(jù)流圖;(2)寫出需求說明;

(3)設計上述的工資調整程序(要求用HIPO圖描繪設計結果),設計時請分別采用下述兩種算法,并比較這兩種算法的優(yōu)缺點:

搜索工資檔案數(shù)據(jù),找出年工資少于$26000的人,計算新工資,校核是否超過$26000,儲存新工資,印出新舊工資對照表;

把工資檔案數(shù)據(jù)按工資從最低到最高的次序排序,當工資數(shù)額超過$26000時即停止排序,計算新工資,校核是否超過限額,儲存新工資,印出結果。答:

.z.

-

.z.

-

第六章

.z.

-

6-3:畫出下列偽碼程序的程序流程圖和盒圖

6-4.下圖給出的程序流程圖代表一個非結構化的程序,請的.(2)設計一個等價的結構化程序。

(3)在(2)題的設計中你使用附加的標志變量flag嗎.若沒序;若用了,再設計一個不用flag的程序。答:(1)通常所結構程序的定義衡量,符合定義規(guī)定的程序。圖示的程序的不符合狹義的結構程序的定義,因此是非結構化的程序。(2)使用附加的標志變量flag,至少有兩種方法可以把該

問:(1)為什么說它是非結構化

用,請再設計一個使用flag的程說的結構化程序,是按照狹義的循環(huán)控制結構有兩個出口,顯然

程序改造為等價的結構化程序,

圖6-3描

圖。

3)不使用flag把該程序改造為

圖6-4

示。

.z.

-

6-5.研究下面的偽代碼程序:LOOP:SetIto(START+FINISH)/2IfTABLE(I)=ITEMgotoFOUNDIfTABLE(I)<ITEMSetSTARTto(I+1)I

fTABLE(I)>ITEMSetFINISHto(I-1)If(FINISH-START)>1gotoLOOPIfTABLE(START)=ITEMgotoFOUNDIfTABLE(FINISH)=ITEMgotoFOUNDSetFLAGto0GotoDONEFOUND:SetFLAGto1DONE:E*it

畫出程序流程圖。

程序是結構化嗎.說明理由。

若程序是非結構化的,設計一個等價的結構化程序并且畫出流程圖。(4)此程序的功能是什么.它完成預定功能有什么隱含的前提條件。答:(1)該程序流程圖如下:

.z.

-

該程序不是結構化的,結構化的程序只有一個入口和一個出口,而該程序的流程途中有兩個出口。

等價的結構化程序的流程圖如下:

4)此程序有二分查找的功能,它完成預定功能的隱含前提條件是現(xiàn)有序列為從小到大順序排好的有序序列。

6-7.*交易所規(guī)定給經(jīng)紀人的手續(xù)費計算方法如下:總手續(xù)費等于基本手續(xù)費加上與交易中的每股價格和股數(shù)有關的附加手續(xù)費。如果交易總金額少于1000元,則基本手續(xù)費為交易金額的8.4%;如果交易總金額在1000元到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)判定表如圖6-6所示:

.z.

-

(2)

(2)判定樹如圖6-7所示:

6-8

.z.

-

.z.

結束

-

環(huán)形復雜度V(G)=流圖中的區(qū)域數(shù)

=流圖中判定結點數(shù)目+1=5+1=6

(2)該算法問題在于控制最外層循環(huán)的變量Z不僅沒有經(jīng)過初始化,并且在該循環(huán)內部沒有任何有可能該變Z的語句。因此,該段代碼中的WHILE循環(huán)部分代碼要么不會執(zhí)行,要么可能出現(xiàn)死循環(huán)。

第七章

.z.

-

7-2:

解:⑴程序流程圖(如圖2.1所示)

⑵此程序是非結構化的,它有一個GOTO語句,并且是從一個循環(huán)體內轉到循環(huán)體外的一個條件語句內部。

.z.

-

下:

.z.

-

⑷程序中的錯誤:

①語句“IFWORD=KEYWORD”里的變量“WORD”沒有預先賦值。②程序中沒有預先輸入T的值③“N=0”應該是“MATCH=0”4.回答下列問題:

(1)什么是模塊測試和集成測試.它們各有什么特點.

答:模塊測試是對每個單獨的模塊,分別用黑盒和白盒測試技術,測試它的功能是否正確,檢查模塊控制結構中的特定路徑并發(fā)現(xiàn)最大數(shù)量的錯誤。其特點是:主要應用白盒測試的技術,對多個模塊的測試可以并發(fā)的進行。

集成測試是把模塊裝配在一起形成完整的軟件包,在裝配的同時進行測試。特點是:可能發(fā)生接口問題。

假設有一個由1000行FORTRAN語句構成的程序(經(jīng)編以后大約有5000條機器指令)估計在對它進行測試期間將發(fā)現(xiàn)多少個錯誤.為什么.答:月25至100個錯誤,美國的一些統(tǒng)計數(shù)字告訴我們通常這個比值在0.005~0.02之間,也就是說,測試之前每1000條指令中大約有5~20個錯誤。假設測試之前每1000條指令中有10個錯誤,則估計對它進行測試期間將發(fā)現(xiàn)的錯誤數(shù)為:5000*10/1000=50。

設計下面?zhèn)未a程序的語句覆蓋和條件覆蓋測試用例:

STARTINPUT(A,B,C)IFA>5THEN*=10ELSE*=1ENDIFIFB>10THENY=20ELSEY=2ENDIFIFC>15THENZ=30ELSEZ=3ENDIFPRINT(*,Y,Z)STOP

答:此程序的語句覆蓋用例:①A=5,B=10,C=15;②A=6,B=11,C=16條件覆蓋用例為:①A=5,B=10,C=15;②A=6,B=11,C=16。

.z.

-

7-4:回答下列問題。

什么是模塊測試和集成測試.它們各有什么特點.

假設有一個由1000行FORTRAN語句構成的程序(經(jīng)編譯后大約有5000條機器指令),估計在對它進行測試期間將發(fā)現(xiàn)多少個錯誤.為什么.

設計下列偽碼程序的語句覆蓋和路徑覆蓋測試用例。

解答:

(1)模塊測試:保證每個模塊能完成一個清晰定義的子功能而且和統(tǒng)計其他模塊的功能之間沒有相互依賴的關系。

集成測試:又稱為組裝測試,就是將軟件產(chǎn)品中各個模塊組裝起來,檢查其接口是否存在問題,以及組裝后的整體功能、性能表現(xiàn)

.z.

-

經(jīng)驗表明,在類似的程序中,單位長度里的錯誤數(shù)ET/IT近似為常數(shù)。美國的一些統(tǒng)計數(shù)字表明,通常:0.005<=ET/IT<=0.02,即在測試之前,每1000條指令中大約有5~20個錯誤。所以,在對1000行FORTRAN語句構成的程序進行測試期間將發(fā)現(xiàn)的錯誤的個數(shù)大約有25~100個。

該偽碼程序對應的程序流程圖如下:

從上到下每個判定依次命名為a、b、c:

7-8:對一個包含10000條機器指令的程序進行一個月集成測試后,總共改正了15個錯誤,此時MTTF=10h;經(jīng)過兩個月測試后,總共改正了25個錯誤(第二個月改正了10個錯誤),MTTF=15h。要求:

根據(jù)上述數(shù)據(jù)確定MTTF與測試時間之間的函數(shù)關系,畫出MTTF與測試時間τ的關系曲線。在畫這條曲線時做了什么假設.

為做到MTTF=100h,必須進行多長時間的集成測試.

當集成測試結束時總共改正了多少個錯誤,還有多少個錯誤潛伏在程序中.解答:

(1)因為平均無故障時間MTTF與測試時間τ之間存在線性關系,即MTTF=a+bτ,由于:10=a+b,15=a+2b,得到:a=5,b=5

故:平均無故障時間MTTF與測試時間τ之間存在線性關系為:MTTF=5+5τ

(2)為做到MTTF=100h,有方程:100=5+5τ,故τ=19即必須進行19個月的集成測試。(3)由于經(jīng)驗:平均無故障時間與單位長度程序中剩余的錯誤數(shù)成反比,故有:

MTTF=10000/(K*(ET-EC(τ)))

由于:10=10000/(K*(ET-15)),15=10000/(K*(ET-25))得到:ET=45,K=33.33

當集成測試結束時,MTTF=100h,有:100=10000/(33.33*(45-EC(19)))故:EC(19)=42,即當集成測試結束時總共改正了42個錯誤,還有45-42=3個錯誤潛伏在程序中。

7-9:如對一個長度為100000條指令的程序進行集成測試期間記錄下下面的數(shù)據(jù):(a)7月1日:集成測試開始,沒有發(fā)現(xiàn)錯誤。

(b)8月2日:總共改正100個錯誤,此時MTTF=0.4h(c)9月1日:總共改正300個錯誤,此時MTTF=2h根據(jù)上列數(shù)據(jù)完成下列各題。(1)估計程序中的錯誤總數(shù)。(2)為使MTTF達到10h,必須測試和調試這個程序多長時間.(3)畫出MTTF和測試時間τ之間的函數(shù)關系曲線。

解答:

.z.

-

(1)據(jù)估算平均無故障時間MTTF的公式有:

1/K(Et/100000-100/100000)=0.41/K(Et/100000-300/100000)=2

得:K=1000,Et=350即程序中的錯誤總數(shù)達350。

(2)當MTTF=10h時,有

1/K(350/100000-Ec/100000)=10

得:Ec=340.按七八月分測試改錯進度估算,還需進行2個月的集成測試。(3)MTTF和測試時間τ之間的函數(shù)關系曲線

下:

7-10:在測試一個長度為24000條指令的程序時,第一個月由甲、乙兩名測試員各自獨立測試這個程序。經(jīng)一個月測試后,甲發(fā)現(xiàn)并改正20個錯誤,使MTTF達到10h。與此同時,乙發(fā)現(xiàn)24個錯誤,其中6

溫馨提示

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

評論

0/150

提交評論