軟件工程復習_第1頁
軟件工程復習_第2頁
軟件工程復習_第3頁
軟件工程復習_第4頁
軟件工程復習_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、-作者xxxx-日期xxxx軟件工程復習【精品文檔】1.4 什么是軟件危機?它有哪些典型表現(xiàn)?為什么會出現(xiàn)軟件危機?軟件危機:軟件危機是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。典型表現(xiàn):(1) 對軟件開發(fā)成本和進度的估計常常很不準確。(2) 用戶對“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。(3) 軟件產(chǎn)品的質(zhì)量往往靠不住。(4) 軟件常常是不可維護的。(5) 軟件通常沒有適當?shù)奈臋n資料。(6) 軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升。(7) 軟件開發(fā)生產(chǎn)率提高的速度,既跟不上硬件的發(fā)展速度,也遠遠跟不上計算機應(yīng)用迅速普及深入的趨勢。 產(chǎn)生軟件危機的原因: 除了軟件本身的

2、特點,其原因主要有以下幾個方面: (1) 缺乏軟件開發(fā)的經(jīng)驗和有關(guān)軟件開發(fā)數(shù)據(jù)的積累,使得開發(fā)工作計劃很難制定。(2) 軟件人員與用戶的交流存在障礙,使得獲取的需求不充分或存在錯誤。(3) 軟件開發(fā)過程不規(guī)范。如,沒有真正了解用戶的需求就開始編程序。(4) 隨著軟件規(guī)模的增大,其復雜性往往會呈指數(shù)級升高。需要很多人分工協(xié)作,不僅涉及技術(shù)問題,更重要的是必須有科學嚴格的管理。(5) 缺少有效的軟件評測手段,提交給用戶的軟件的質(zhì)量不能完全保證。1.5 什么是軟件工程?軟件工程是指導計算機軟件開發(fā)和維護的工程學科。采用工程的概念、原理、技術(shù)和方法來開發(fā)和維護軟件,把經(jīng)過時間考驗而證明正確的管理技術(shù)和

3、當前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟地開發(fā)出高質(zhì)量的軟件并有效地維護它,這就是軟件工程。1.6 簡述軟件生存期由哪些主要的階段組成,每一階段的主要任務(wù)是什么?(1) 問題定義與可行性研究:問題定義必須回答的關(guān)鍵問題是:“要解決的問題是什么”??尚行匝芯恳卮鸬年P(guān)鍵問題是:“在成本和時間的限制條件下能否解決問題?是否值得做?”。(2) 需求分析:這個階段的任務(wù)仍然不是具體地解決客戶的問題,而是準確地回答“目標系統(tǒng)必須做什么”這個問題。(3) 軟件設(shè)計:本階段要回答的關(guān)鍵問題是“目標系統(tǒng)如何做?”為此,必須在設(shè)計階段中制定設(shè)計方案,把已確定的各項需求轉(zhuǎn)換成相應(yīng)的軟件體系結(jié)構(gòu)。結(jié)構(gòu)中的每一組

4、成部分都是意義明確的構(gòu)件,此即所謂概要設(shè)計。進而具體描述每個構(gòu)件所要完成的工作,為源程序編寫打下基礎(chǔ),此即所謂詳細設(shè)計。(4) 程序編碼和單元測試:本階段要解決的問題是“正確地實現(xiàn)已做的設(shè)計”,為此,需要選擇合適的編程語言,把軟件設(shè)計轉(zhuǎn)換成計算機可以接受的程序代碼,并對程序結(jié)構(gòu)中的各個模塊進行單元測試,然后運用調(diào)試的手段排除測試中發(fā)現(xiàn)的錯誤。要求編寫出的程序應(yīng)當是結(jié)構(gòu)良好、清晰易讀的,且與設(shè)計相一致的。(5) 集成測試和系統(tǒng)測試:集成測試的任務(wù)是將已測試過的模塊按設(shè)計規(guī)定的順序組裝起來,在組裝的過程中檢查程序連接的問題。系統(tǒng)測試的任務(wù)是根據(jù)需求規(guī)格說明的要求,對必須實現(xiàn)的各項需求,逐項進行確認

5、,判定已開發(fā)的軟件是否符合用戶需求,能否交付用戶使用。為了更有效地發(fā)現(xiàn)系統(tǒng)中的問題,通常這個階段的工作由開發(fā)人員、用戶之外的第三者承擔。(6) 運行維護:已交付的軟件投入正式使用,便進入運行維護階段。這一階段可能持續(xù)若干年。軟件在運行中可能由于多方面的原因,需要對它進行維護。通常有四種類型的維護:改正性維護、適應(yīng)性維護、完善性維護和預防性維護。1.7 常見的軟件生存期模型主要有哪些?每種模型的優(yōu)缺點是什么?常見的軟件生存期模型主要有瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型和統(tǒng)一過程。(1) 瀑布模型優(yōu)點:可強迫開發(fā)人員采用規(guī)范化的方法;嚴格地規(guī)定了每個階段必須提交的文檔;要求每個階

6、段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細驗證。缺點:由于瀑布模型幾乎完全依賴于書面的規(guī)格說明,很可能導致最終開發(fā)出的軟件產(chǎn)品不能真正滿足用戶的需要;用戶往往需要等待很長時間才能看到可以運行的程序;適應(yīng)需求變更的能力比較差。適用范圍:瀑布模型只適用于項目開始時需求已確定的情況。 (2) 快速原型模型優(yōu)點:有助于滿足用戶的真實需求;原型系統(tǒng)已經(jīng)通過與用戶的交互而得到驗證,據(jù)此產(chǎn)生的規(guī)格說明文檔能夠正確地描述用戶需求。缺點:要求開發(fā)人員快速建立原型。適用范圍:適用于需求不明確的軟件項目。(3) 增量模型優(yōu)點: l 能在較短時間內(nèi)向用戶提交可完成一些基本功能的產(chǎn)品,即從第一個構(gòu)件交付之日起,用戶就

7、能做一些有用的工作。l 逐步增加產(chǎn)品的功能可以使用戶有較充裕的時間學習和適應(yīng)新產(chǎn)品,從而減少一個全新的軟件可能給用戶組織帶來的沖擊。l 項目失敗的風險較低,雖然在某些增量構(gòu)件中可能遇到一些問題,但其他增量構(gòu)件將能夠成功地交付給客戶。l 優(yōu)先級最高的服務(wù)首先交付,然后再將其他增量構(gòu)件逐次集成進來。因此,最重要的系統(tǒng)服務(wù)將接受最多的測試。缺點:l 在把每個新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時,必須不破壞原來已經(jīng)開發(fā)出的產(chǎn)品。l 軟件體系結(jié)構(gòu)必須是開放的,即向現(xiàn)有產(chǎn)品中加入新構(gòu)件的過程必須簡單、方便。適用范圍:適用于工期緊張、功能可以劃分、比較復雜的軟件項目。軟件工程師必須有較高的技術(shù)水平,能夠設(shè)

8、計出開放的軟件體系結(jié)構(gòu)。(4) 螺旋模型優(yōu)點: l 對可選方案和約束條件的強調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)量作為軟件開發(fā)的一個重要目標;l 減少了過多測試或測試不足所帶來的風險;l 在螺旋模型中維護只是模型的另一個周期,在維護和開發(fā)之間并沒有本質(zhì)區(qū)別。缺點:螺旋模型是風險驅(qū)動的,因此要求軟件開發(fā)人員必須具有豐富的風險評估經(jīng)驗和這方面的專門知識,否則將出現(xiàn)真正的風險:當項目實際上正在走向災難時,開發(fā)人員可能還以為一切正常。 適用范圍:適用于內(nèi)部開發(fā)的大型軟件(開發(fā)周期長、比較容易受到社會因素影響的軟件項目),軟件開發(fā)人員具有豐富的風險評估知識和經(jīng)驗。(5) 噴泉模型優(yōu)點:在開發(fā)過程中使

9、用統(tǒng)一的概念和方法,各階段之間沒有明顯的界限,容易實現(xiàn)各個開發(fā)過程的多次反復迭代,達到了認識的逐步深化,降低了出錯的可能性。缺點:由于各個階段之間的界線不明確,容易造成軟件開發(fā)過程的無序。適用范圍:適用于面向?qū)ο蟮能浖_發(fā)。 (6) 統(tǒng)一過程優(yōu)點:提高了團隊生產(chǎn)力,在迭代的開發(fā)過程、需求管理、基于組件的體系結(jié)構(gòu)、可視化軟件建模、驗證軟件質(zhì)量及控制軟件變更等方面,針對所有關(guān)鍵的開發(fā)活動為每個開發(fā)成員提供了必要的準則、模板和工具指導,并確保全體成員共享相同的知識基礎(chǔ)。它建立了簡潔和清晰的過程結(jié)構(gòu),為開發(fā)過程提供了較大的通用性。缺點:RUP只是一個開發(fā)過程,并沒有涵蓋軟件過程的全部內(nèi)容,例如它缺少關(guān)

10、于軟件運行和支持等方面的內(nèi)容;此外,它沒有支持多項目的開發(fā)結(jié)構(gòu),這在一定程度上降低了在開發(fā)組織內(nèi)大范圍實現(xiàn)重用的可能性。適用范圍:適用于基于構(gòu)件的軟件開發(fā)。2.1 軟件工程的三種基本要素是什么,各自的作用是什么?軟件工程的三種基本要素是方法、工具和過程。(1) 軟件工程方法(method)為建造軟件提供技術(shù)上的解決方法(“如何做”)。目前使用得最廣泛的方法是傳統(tǒng)方法(結(jié)構(gòu)化方法)和面向?qū)ο蠓椒ā?2) 工具為方法的運用提供自動的或半自動的軟件支撐環(huán)境。(3) 過程是為了獲得高質(zhì)量的軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項任務(wù)的工作步驟。2.2 簡述傳統(tǒng)方法和面向?qū)ο蠓椒ǖ奶攸c。(1)

11、 傳統(tǒng)方法的特點傳統(tǒng)方法也稱為生命周期方法或結(jié)構(gòu)化范型。它采用結(jié)構(gòu)化技術(shù)來完成軟件開發(fā)的各項任務(wù)。這種方法學把軟件生命周期的全過程依次劃分為若干個階段,然后順序地逐步完成每個階段的任務(wù)。每一個階段的開始和結(jié)束都有嚴格的標準,對于任何兩個相鄰的階段而言,前一個階段的結(jié)束標準就是后一階段的開始標準。 傳統(tǒng)方法的主要缺點是在適應(yīng)需求變化方面不夠靈活,另外,結(jié)構(gòu)化方法要么面向行為,要么面向數(shù)據(jù),缺乏使兩者有機結(jié)合的機制。(2)面向?qū)ο蠓椒ǖ奶攸c面向?qū)ο蠓椒ò褦?shù)據(jù)和行為看成同等重要,是將數(shù)據(jù)和對數(shù)據(jù)的操作緊密地結(jié)合起來的方法,這也是面向?qū)ο蠓椒ㄅc傳統(tǒng)方法的重要區(qū)別。面向?qū)ο蠓椒ǖ某霭l(fā)點和基本原則,是盡量

12、模擬人類習慣的思維方式,使開發(fā)軟件的方法和過程盡可能接近人類認識問題和解決問題的方法與過程,從而使描述問題的問題空間與其解空間在結(jié)構(gòu)上盡可能一致。對于大型、復雜及交互性比較強的系統(tǒng),使用面向?qū)ο蠓椒ǜ袃?yōu)勢。3.2頂層數(shù)據(jù)流圖或稱環(huán)境圖的作用是什么?頂層數(shù)據(jù)流圖(或稱環(huán)境圖)僅包括一個數(shù)據(jù)處理過程,也就是要開發(fā)的目標系統(tǒng)。其作用如下:(1) 確定系統(tǒng)在其環(huán)境中的位置,與系統(tǒng)有聯(lián)系的外部實體(包括硬件、軟件、組織機構(gòu)及人)有哪些。(2) 通過確定系統(tǒng)的輸入和輸出與外部實體的關(guān)系確定系統(tǒng)的邊界,也就是要確定哪些功能或處理屬于系統(tǒng)范圍之內(nèi),哪些屬于系統(tǒng)范圍之外,需要由其他系統(tǒng)處理或人工處理。3.3

13、在對數(shù)據(jù)流圖進行分解時需要注意哪些問題?在對數(shù)據(jù)流圖進行分解時,需要注意以下兩個問題:(1) 當對數(shù)據(jù)流圖分層細化時必須保持信息連續(xù)性,也就是說,當把一個處理分解為一系列處理時,分解前和分解后的輸入/輸出數(shù)據(jù)流必須相同。(2) 注意分層細化時對編號的處理方法。3.4 銀行存款業(yè)務(wù)如下:客戶到銀行柜臺存款時,首先填寫存款單(包括帳號、姓名、存款金額、存款類型),如果還沒有開戶,則需要先開戶,填寫開戶單(包括姓名、身份證號、地址、電話、是否留密碼)。填寫完存款單或開戶單后,交給營業(yè)員,營業(yè)員將存款單或開戶單信息輸入計算機,系統(tǒng)記錄開戶信息或存款單信息,如果是開戶并選擇留密碼,則需要客戶輸入密碼。最

14、后印出開戶單或存款單給用戶。請畫出銀行存款業(yè)務(wù)的分層數(shù)據(jù)流圖(至少畫出兩層)。(1) 識別外部實體及輸入輸出數(shù)據(jù)流 外部實體:儲戶、業(yè)務(wù)員。輸入數(shù)據(jù)流:存款單,開戶單,密碼??梢詫⒋婵顔魏烷_戶單抽象為事務(wù)。輸出數(shù)據(jù)流:存款單,開戶單。(2) 頂層數(shù)據(jù)流圖(3) 一層數(shù)據(jù)流圖對銀行儲蓄系統(tǒng)進行分解,從大的方面分解為接收事務(wù)、處理開戶、處理存款三部分,得到一層數(shù)據(jù)流圖。 (4) 二層數(shù)據(jù)流圖對 “處理存款”及“處理開戶”進行進一步分解,得到二層數(shù)據(jù)流圖,即處理存款的數(shù)據(jù)流圖和處理開戶的數(shù)據(jù)流圖。 處理存款的數(shù)據(jù)流圖處理開戶的數(shù)據(jù)流圖3.5 按照以下描述,畫出ER圖。一本教材由許多章組成,每一章包含

15、許多節(jié)、小結(jié)和習題組成,章和節(jié)都具有標題和序號屬性。ER圖如下:教材章節(jié)小結(jié)習題序號標題序號標題4.13 對于圖4-49所示的流程圖,試分別用N-S圖和PAD表示之。 FSTARTABQENDTFTP 圖4-49 流程圖對應(yīng)的N-S圖如下: 對應(yīng)的PAD如下:while PAuntil !QBwhile PABuntil !Q 圖4-50所示的流程圖完成的功能是使用二分查找方法在table數(shù)組中找出值為item的數(shù)是否存在。(1) 判斷此算法是否是結(jié)構(gòu)化的,說明理由。(2) 若算法是非結(jié)構(gòu)化的,設(shè)計一個等價的結(jié)構(gòu)化算法,并用N-S圖表示。FFFTFFtable(i)>item(finis

16、h-start)>1table(start)=itemtable(finish)=itemflag=0flag=1i(startfinish)/2table(i)=itemtable(I)<itemfinish=i-1start=i+1TTTFTT開始結(jié)束圖4-50 二分查找算法的流程圖(1) 不是結(jié)構(gòu)化的,最上面的循環(huán)有兩個出口,最下面的分支有三個入口。(2) 等價的結(jié)構(gòu)化算法如下:(FINISH-START)>1 && TABLE(I)!=ITEMI(STARTFINISH)/2TABLE(I)<ITEMI(STARTFINISH)/2TFSTART

17、=I+1FINISH=I-1TABLE(START)=ITEM | TABLE(FINISH) =ITEM | TABLE(I)=ITEMTFFLAG=1FLAG=0或者(FINISH-START)>1 && FLAG=0I(STARTFINISH)/2TABLE(I)=ITEMFLAG0TFFLAG=1TABLE(I)<ITEMT FTABLE(START)=ITEM | TABLE(FINISH) =ITEMTFFLAG=1START=I+1FINISH=I-1或者FLAG0(FINISH-START)>=0 && FLAG=0I(STAR

18、TFINISH)/2FTTABLE(I)=ITEMTABLE(I)<ITEMT FFLAG=1FINISH=I-1START=I+15.如何提高表達式的可讀性?1.注意運算符的優(yōu)先級,并使用括號明確表達式的操作順序,避免使用默認優(yōu)先級。2.避免使用不易理解的數(shù)字,用有意義的標識符來代替。6.5 假設(shè)汽車的車牌號可由車主人在規(guī)定范圍內(nèi)自選,若其規(guī)定為:(1) 車牌上應(yīng)有7個字符; (2) 為首的字符限定為漢字“京”;(3) 第2個字符可任選一字母(AZ);(4) 第37個字符可選任意數(shù)字。請為相關(guān)的處理程序采用等價類劃分方法設(shè)計等價類表及相應(yīng)的測試用例。等價類表輸入數(shù)據(jù)有效等價類無效等價類

19、字符個數(shù) 7個(1)06個(2),>7個(3)首字符“京”(4)非“京”(5)第2個字符字母(6)非字母(7)第37個字符數(shù)字(8)非數(shù)字(9)測試用例如下:1)京H87774 (1),(4),(6),(8)2)京H8777 (2)3)京H877745 (3) 4)冀H87774 (5)5)京987774 (7)6)京BA7774 (9) 6.6 比較a測試與b測試,說明其異同。a測試與b測試都是集成測試之后所進行的測試,都屬于系統(tǒng)測試。所不同的是,a測試是在開發(fā)環(huán)境中所做的測試,主要由開發(fā)方人員進行。而b測試則是在用戶實際工作環(huán)境中所做的測試,不受開發(fā)人員的干預。說明白盒與黑河的區(qū)別,

20、做了其一還需做另一個?黑盒測試:已知產(chǎn)品的功能設(shè)計規(guī)格,可以進行測試證明每個實現(xiàn)了的功能是否符合要求。白盒測試:已知產(chǎn)品的內(nèi)部工作過程,可以通過測試證明每種內(nèi)部操作是否符合設(shè)計規(guī)格要求,所有內(nèi)部成分是否以經(jīng)過檢查。 2 不需要 uml中有哪幾種圖?每種圖的作用?用例 類 交互 狀態(tài) 活動 實現(xiàn)圖(6種)用例 :描述參與者所理解的系統(tǒng)功能類:顯示類,類的內(nèi)部結(jié)構(gòu)以及其他類的聯(lián)系交互:是為用例、用例組或局部用例開發(fā)的(它包括順序圖和協(xié)作圖)狀態(tài)圖:描述一個特定的所有可能的狀態(tài)以及引起狀態(tài)裝換的事件活動圖: 用來捕捉用例的活動,用框圖的方式顯示動作及其結(jié)果實現(xiàn): 顯示系統(tǒng)構(gòu)建及其結(jié)構(gòu)、相互依賴以及在計算機節(jié)點上如何部署。比較面向?qū)ο蟮姆治龇椒ê兔嫦驍?shù)據(jù)流的分析方法,闡述它們各自的特點。面向?qū)ο蟮姆治龇椒ㄊ褂糜美P蛠肀硎居脩舻墓δ苄枨?,用例模型相當于功能模型,在對用例模型進行細化的過程中,也伴隨著對功能的分解。但面向?qū)ο蟮姆治龇椒ú⒉皇且怨δ芊纸鉃楹诵模讷@取并分析用戶的功能需求之后,重點以類和對象為核心,建立對象模型,交互模型也是圍繞對象模型進行的。面向數(shù)據(jù)流的分析方法是從建立頂層數(shù)據(jù)流圖(環(huán)境圖)開始,之后逐層對加

溫馨提示

  • 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

提交評論