軟件工程(本科)復(fù)習重點難點Word版_第1頁
軟件工程(本科)復(fù)習重點難點Word版_第2頁
軟件工程(本科)復(fù)習重點難點Word版_第3頁
軟件工程(本科)復(fù)習重點難點Word版_第4頁
軟件工程(本科)復(fù)習重點難點Word版_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件工程(本科)復(fù)習重點難點重點要求是以軟件工程課程的教學大綱為依據(jù),目的在于使學生理清思路,分清主次。為本課程的期末復(fù)習提供參考。一、 各章重點、難點和復(fù)習要求說明 第一章軟件工程概述1 重點掌握的內(nèi)容: 軟件和軟件工程的基本概念軟件:軟件定義由以下三部分組成:(1) 在運行中能提供所希望的功能和性能的指令集(即程序);(2) 使程序能夠正確運行的數(shù)據(jù)結(jié)構(gòu);(3) 描述程序研制過程、方法所用的文擋。軟件是一種產(chǎn)品,同時又是開發(fā)和運行產(chǎn)品的載體。作為一種產(chǎn)品,它表達了由計算機硬件體現(xiàn)的計算潛能。作為開發(fā)運行產(chǎn)品的載體,軟件是計算機工作的基礎(chǔ)、信息通信的基礎(chǔ),也是創(chuàng)建和控制其他程序的基礎(chǔ)。軟件的

2、特點: 軟件是一種邏輯實體,而不是具體的物理實體,因而它具有抽象性。 軟件是通過人們的智力活動,把知識與技術(shù)轉(zhuǎn)化成信息的一種產(chǎn)品,是在研制、開發(fā)中被創(chuàng)造出來的。在軟件的運行和使用期間,沒有硬件那樣的機械磨損、老化問題。軟件的開發(fā)和運行經(jīng)常受到計算機系統(tǒng)的限制,對計算機系統(tǒng)有著不同程度的依賴性。軟件的開發(fā)至今尚未完全擺脫手工的開發(fā)方式。軟件的開發(fā)費用越來越高,成本相當昂貴。軟件工程:是指導(dǎo)計算機軟件開發(fā)和維護的工程學科。采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護軟件,把經(jīng)過時間考驗而證明正確的管理技術(shù)和當前能夠得到的最好的技術(shù)方法結(jié)合起來。軟件工程準則可以概括為七條基本原理:(1)用分階段的生

3、存周期計劃嚴格管理;(2)堅持進行階段評審;(3)實行嚴格的產(chǎn)品控制;(4)采用現(xiàn)代程序設(shè)計技術(shù);(5)結(jié)果應(yīng)能清楚地審查結(jié)果;(6)開發(fā)小組的人員應(yīng)該少而精(7)承認不斷改進軟件工程實踐的必要性。詳細闡述見書中1.2.2節(jié)。軟件危機:指的是軟件開發(fā)和維護過程中遇到的一系列嚴重問題。軟件工程的基本內(nèi)容:軟件工程學的內(nèi)容可包括理論、結(jié)構(gòu)、方法、工具、環(huán)境、管理、規(guī)范等。第二章 軟件過程1 重點掌握的內(nèi)容:軟件生存周期及軟件開發(fā)的各種模型; 軟件生存周期:一個軟件從定義到開發(fā)、使用和維護,直到最終被棄用,要經(jīng)歷一個漫長的時期,通常把軟件經(jīng)歷的這個漫長的時期稱為生存周期。軟件生存周期一般可分為以下階

4、段: 問題定義 需求分析與可行性研究 設(shè)計 編碼 測試 運行與維護軟件開發(fā)模型:軟件開發(fā)模型是跨越整個軟件生存周期的系統(tǒng)開發(fā)、運作、維護所實施的全部工作和任務(wù)的結(jié)構(gòu)框架。瀑布模型即生存周期模型,由B.M.Boehm提出,是軟件工程的基礎(chǔ)模型。其核心思想是按工序?qū)栴}化簡,將功能的實現(xiàn)與設(shè)計分開,便于分工協(xié)作。采用結(jié)構(gòu)化的分析與設(shè)計方法,將邏輯實現(xiàn)與物理實現(xiàn)分開。此外,還有螺旋模型、第四代技術(shù)模型、原型模型、構(gòu)件組裝模型、混合模型等軟件開發(fā)模型。 第三章 需求分析1. 重點掌握的內(nèi)容:需求分析的方法和面向數(shù)據(jù)流的分析方法;。需求分析的方法:需求分析方法由對軟件的數(shù)據(jù)域和功能域的系統(tǒng)分析過程及其表

5、示方法組成,它定義了表示系統(tǒng)邏輯視圖和物理視圖的方式,大多數(shù)的需求分析方法是由數(shù)據(jù)驅(qū)動的,也就是說,這些方法提供了一種表示數(shù)據(jù)域的機制,分析員根據(jù)這種表示,確定軟件功能及其他特性,最終建立一個待開發(fā)軟件的抽象模型,即目標系統(tǒng)的邏輯模型。面向數(shù)據(jù)流的需求分析方法:結(jié)構(gòu)化分析方法是面向數(shù)據(jù)流進行需求分析的方法。結(jié)構(gòu)化分析方法使用數(shù)據(jù)流圖DFD與數(shù)據(jù)字典DD來描述,面向數(shù)據(jù)流問題的需求分析適合于數(shù)據(jù)處理類型軟件的需求描述。其核心思想是分解化簡問題,將物理與邏輯表示分開,對系統(tǒng)進行數(shù)據(jù)與邏輯的抽象。具體來說,結(jié)構(gòu)化分析方法就是用抽象模型的概念,按照軟件內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐層分解,直到找

6、到滿足功能要求的所有可實現(xiàn)的軟件為止。重點掌握結(jié)合實例畫數(shù)據(jù)流圖和定義數(shù)據(jù)字典。系統(tǒng)流程圖:系統(tǒng)流程圖是描繪物理系統(tǒng)的傳統(tǒng)工具。它的基本思想是用圖形符號以黑盒子形式描繪系統(tǒng)里面的每個部件(程序,文件,數(shù)據(jù)庫,表格,人工過程等等)。系統(tǒng)流程圖表達的是部件的信息流程,而不表示對信息進行加工處理的控制過程。詳見2.3節(jié)。系統(tǒng)流程圖的功能:1制作系統(tǒng)流程圖的過程是系統(tǒng)分析員全面了解系統(tǒng)業(yè)務(wù)處理概況的過程,它是系統(tǒng)分析員作進一步分析的依據(jù)。2系統(tǒng)流程圖是系統(tǒng)分析員、管理人員、業(yè)務(wù)操作人員相互交流的工具。3系統(tǒng)分析員可直接利用系統(tǒng)流程圖畫出可以實現(xiàn)計算機處理的部分。4可利用系統(tǒng)流程圖來分析業(yè)務(wù)流程的合理性

7、。2.一般掌握的內(nèi)容: 需求分析的任務(wù)和原則。.需求分析的任務(wù):它的基本任務(wù)是準確地回答“系統(tǒng)必須做什么?”這個問題。需求分析所要做的工作是深入描述軟件的功能和性能,確定軟件設(shè)計的限制和軟件同其它系統(tǒng)元素的接口細節(jié),定義軟件的其它有效性需求。需求分析的任務(wù)不是確定系統(tǒng)如何完成它的工作,而是確定系統(tǒng)必須完成哪些工作,也就是對目標系統(tǒng)提出完整、準確、清晰、具體的要求。其實現(xiàn)步驟如下圖所示:當前系統(tǒng)物理模型邏輯模型當前系統(tǒng)邏輯模型當前系統(tǒng)物理模型目標系統(tǒng) 模型化 抽象化 理解需求 怎么做 做什么 具體化 實例化 表達需求一般說來,需求分析階段的任務(wù)包括下述幾方面:確定對系統(tǒng)的綜合需求 對系統(tǒng)的綜合需

8、求主要有:系統(tǒng)功能需求、系統(tǒng)性能需求、運行需求、將來可能提出的需求。分析系統(tǒng)的數(shù)據(jù)需求導(dǎo)出系統(tǒng)的邏輯模型就是在理解當前系統(tǒng)“怎樣做”的基礎(chǔ)上,抽取其“做什么”的本質(zhì),明確目標系統(tǒng)要“做什么”,可以導(dǎo)出系統(tǒng)的詳細的邏輯模型。具體做法是:首先確定目標系統(tǒng)與當前系統(tǒng)的邏輯差別;然后將變化部分看作是新的處理步驟,對功能圖(一般為數(shù)據(jù)流圖)及對象圖進行調(diào)整;最后由外及里對變化的部分進行分析,推斷其結(jié)構(gòu),獲得目標系統(tǒng)的邏輯模型。通常用數(shù)據(jù)流圖、數(shù)據(jù)字典和主要的處理算法描述這個邏輯模型。 修正系統(tǒng)開發(fā)計劃 在經(jīng)過需求分析階段的工作,分析員對目標系統(tǒng)有了更深入更具體的認識,因此可以對系統(tǒng)的成本和進度做出更準確

9、的估計,在此基礎(chǔ)上應(yīng)該對開發(fā)計劃進行修正。 開發(fā)原型系統(tǒng) 使用原型系統(tǒng)的主要目的是,使用戶通過實踐獲得關(guān)于未來的系統(tǒng)將怎樣為他們工作的更直接更具體的概念,從而可以更準確地提出和確定他們的要求。需求分析的步驟:1.調(diào)查研究;2分析與綜合;3書寫文檔;4需求分析評審需求分析的原則:其基本原則可概括為: (1)必須能夠表達和理解問題的數(shù)據(jù)域和功能域;(2)按自頂向下、逐層分解問題;(3)要給出系統(tǒng)的邏輯視圖和物理視圖;2 可行性研究的任務(wù)和步驟,成本效益分析可行性研究的任務(wù):是用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。一般說來,應(yīng)從經(jīng)濟可行性、技術(shù)可行性、運行可行性、法律可行性和開發(fā)方案等

10、方面研究可行性??尚行匝芯康牟襟E:可行性研究的步驟分為九個步驟。成本效益分析:成本效益分析的目的是要從經(jīng)濟角度分析開發(fā)一個特定的新系統(tǒng)是否可行,從而幫助使用部門負責人正確地做出是否投資于這項開發(fā)工程的決定。幾種度量效益的方法:1.貨幣的時間價值;2投資回收期;3純收入。第四章 結(jié)構(gòu)化設(shè)計1. 重點掌握的內(nèi)容: 結(jié)構(gòu)化設(shè)計的過程和方法概要設(shè)計任務(wù):系統(tǒng)分析員審查軟件計劃、軟件需求分析提供的文檔,提出最佳推薦方案,用系統(tǒng)流程圖,組成系統(tǒng)物理元素清單,成本效益分析,系統(tǒng)的進度計劃,供專家審定,審定后進入設(shè)計。 確定模塊結(jié)構(gòu),劃分功能模塊,將軟件功能需求分配給所劃分的最小單元模塊。確定模塊間的聯(lián)系,確

11、定數(shù)據(jù)結(jié)構(gòu)、文件結(jié)構(gòu)、數(shù)據(jù)庫模式,確定測試方法與策略。 編寫概要設(shè)計說明書,用戶手冊,測試計劃,選用相關(guān)的軟件工具來描述軟件結(jié)構(gòu),結(jié)構(gòu)圖是經(jīng)常使用的軟件描述工具。選擇分解功能與劃分模塊的設(shè)計原則,例如模塊劃分獨立性原則,信息隱蔽原則等。 概要設(shè)計過程:概要設(shè)計要先進行系統(tǒng)設(shè)計,復(fù)審系統(tǒng)計劃與需求分析,確定系統(tǒng)具體的實施方案;然后進行結(jié)構(gòu)設(shè)計,確定軟件結(jié)構(gòu)。 軟件設(shè)計的概念與原則:將軟件劃分成若干獨立成分的依據(jù)。如何表示不同的成分內(nèi)的功能細節(jié)和數(shù)據(jù)結(jié)構(gòu)。如何統(tǒng)一衡量軟件設(shè)計的技術(shù)質(zhì)量。 其中有幾個概念:1.模塊化:就是把程序劃分成若干個模塊,每個模塊具有一個子功能,把這些模塊集總起來組成一個整體

12、,可以完成指定的功能,實現(xiàn)問題的要求。2. 抽象:就是抽出事物的本質(zhì)特性而暫時不考慮它們的細節(jié)。3. 信息隱蔽: 模塊中所包括的信息不允許其它不需要這些信息的模塊調(diào)用。4. 信息局部化:是指把一些關(guān)系密切的軟件元素物理地放得彼此靠近。5. 模塊獨立性:是軟件系統(tǒng)中每個模塊只涉及軟件要求的具體子功能,而和軟件系統(tǒng)中其他的模塊接口是簡單的。模塊獨立的概念是模塊化、抽象、信息隱蔽和局部化概念的直接結(jié)果。6. 耦合:是對一個軟件結(jié)構(gòu)內(nèi)各個模塊之間互連程度的度量。耦合強弱取決于模塊間接口的復(fù)雜程度,調(diào)用模塊的方式,以及通過接口的信息。7. 內(nèi)聚:標志一個模塊內(nèi)各個元素彼此結(jié)合的緊密程度,它是信息隱蔽和局

13、部化概念的自然擴展。概要設(shè)計的方法:面向數(shù)據(jù)流的設(shè)計方法把信息流映射成軟件結(jié)構(gòu),信息流的類型決定了映射的方法。面向數(shù)據(jù)流的設(shè)計要解決的任務(wù),就是上述需求分析的基礎(chǔ)上,將DFD圖映射為軟件系統(tǒng)的結(jié)構(gòu)。換句話說,這類設(shè)計方法允許把用DFD圖表示的系統(tǒng)邏輯模型方便地轉(zhuǎn)換成對于軟件結(jié)構(gòu)的初始設(shè)計描述。理解基本概念:信息流(包括變換流和事務(wù)流)、抽象與逐步求精;模塊化與信息隱藏;軟件總體結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)與軟件過程。面向數(shù)據(jù)結(jié)構(gòu)的分析設(shè)計方法: Jackson系統(tǒng)開發(fā)方法(JSD): Jackson系統(tǒng)開發(fā)方法(JSD,Jackson System Development)是一種典型的面向數(shù)據(jù)結(jié)構(gòu)的分析設(shè)計

14、方法,它是以信息驅(qū)動的,是將信息轉(zhuǎn)換成軟件的程序結(jié)構(gòu)。 Warnier方法 :Warnier程序設(shè)計方法是由法國人J.D.Warnier提出的另一種面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法,又稱為邏輯構(gòu)造程序的方法,簡稱LCP(Logical Construction of Programs)方法。Warnier方法的原理和Jackson方法類似,也是從數(shù)據(jù)結(jié)構(gòu)出發(fā)設(shè)計程序,但是這種方法的邏輯更嚴格。2. 一般掌握的內(nèi)容: 概要設(shè)計的文檔與評審學會撰寫概要設(shè)計的文檔并能評審出概要設(shè)計文檔是否符合要求。概要設(shè)計說明書的主要內(nèi)容及結(jié)構(gòu)詳見4.5節(jié)。詳細設(shè)計1. 重點掌握的內(nèi)容:詳細設(shè)計的任務(wù)和方法詳細設(shè)計的任務(wù):詳

15、細設(shè)計就是要在概要設(shè)計的結(jié)果的基礎(chǔ)上,考慮“怎樣實現(xiàn)”這個軟件系統(tǒng),直到對系統(tǒng)中的每個模塊給出足夠詳細的過程性描述。主要任務(wù)如下:為每個模塊確定采用的算法,選擇某種適當?shù)墓ぞ弑磉_算法的過程,寫出模塊的詳細過程性描述;確定每一模塊使用的數(shù)據(jù)結(jié)構(gòu);確定模塊接口的細節(jié),包括對系統(tǒng)外部的接口和用戶界面,對系統(tǒng)內(nèi)部其它模塊的接口,以及模塊輸入數(shù)據(jù)、輸出數(shù)據(jù)及局部數(shù)據(jù)的全部細節(jié)。要為每一個模塊設(shè)計出一組測試用例,以便在編碼階段對模塊代碼(即程序)進行預(yù)定的測試,模塊的測試用例是軟件測試計劃的重要組成部分,通常應(yīng)包括輸入數(shù)據(jù),期望輸出等內(nèi)容。詳細設(shè)計的方法:程序流程圖、N-S圖、PAD圖、HIPO圖程序流程

16、圖:程序流程圖又稱之為程序框圖,它是軟件開發(fā)者最熟悉的一種算法表達工具。它獨立于任何一種程序設(shè)計語言,比較直觀和清晰地描述過程的控制流程,易于學習掌握。在流程圖中只能使用下述的五種基本控制結(jié)構(gòu)。順序型;選擇型; while型循環(huán); until型循環(huán); 多情況型選擇。詳見5.2.1節(jié)。N-S圖:Nassi和Shneiderman提出了一種符合結(jié)構(gòu)化程序設(shè)計原則的圖形描述工具,稱為盒圖,又稱為N-S圖。在N-S圖中,為了表示五種基本控制結(jié)構(gòu),規(guī)定了五種圖形構(gòu)件。順序型; 選擇型; WHILE重復(fù)型; UNTIL重復(fù)型; 多分支選擇型。PAD圖:它是用結(jié)構(gòu)化程序設(shè)計思想表現(xiàn)程序邏輯結(jié)構(gòu)的圖形工具。P

17、AD也設(shè)置了五種基本控制結(jié)構(gòu)的圖示,并允許遞歸使用。詳見5.2.3節(jié)。HIPO圖:HIPO圖是由一組IPO圖加一張HC圖組成。它是美國IBM公司在軟件設(shè)計中使用的主要表達工具。HC圖是層次圖(Hierarchy chart)的英文縮寫,用于表示軟件的分層結(jié)構(gòu)。HC圖中的每一個模塊,均可用一張IPO圖來描述。IPO 圖由輸入、處理和輸出三個框組成,需要時還可以增加一個數(shù)據(jù)文件框,這種圖形的優(yōu)點,是能夠直觀地顯示輸入處理輸出三者之間的聯(lián)系。2. 一般掌握的內(nèi)容: 詳細設(shè)計的原則及詳細設(shè)計規(guī)格與評審詳細設(shè)計的原則:原則是過程描述是否易于理解、復(fù)審和維護,進而過程描述能夠自然地轉(zhuǎn)換成代碼,并保證詳細設(shè)

18、計與代碼完全一致。詳細設(shè)計規(guī)格與評審:詳細設(shè)計說明書的框架及評審第5章 結(jié)構(gòu)化實現(xiàn)1. 重點掌握的內(nèi)容: 程序設(shè)計語言的特點、編程風格、程序效率和編程安全;結(jié)構(gòu)化的軟件測試程序設(shè)計語言的特點: 程序設(shè)計語言是人與計算機交流的媒介。軟件工程師應(yīng)該了解程序設(shè)計語言各方面的特點,以及這些特點對軟件質(zhì)量的影響,以便在需要為一個特定的開發(fā)項目選擇語言時,能作出合理的技術(shù)抉擇。其特點表現(xiàn)為九個方面:名字說明;類型說明;初始化;程序?qū)ο蟮木植啃?;程序模塊;循環(huán)控制結(jié)構(gòu);分支控制結(jié)構(gòu); 異常處理;獨立編譯。編程風格:編碼風格又稱程序設(shè)計風格或編程風格,實際上指編程的原則。表現(xiàn)為四個方面:源程序文檔化,數(shù)據(jù)說明

19、的方法,語句結(jié)構(gòu)和輸入輸出方法。源程序文檔化:源程序文檔化又可從四個方面來闡述,符號名的命名;程序的注釋;標準的書寫格式;數(shù)據(jù)說明:數(shù)據(jù)說明的次序應(yīng)當規(guī)范化。使數(shù)據(jù)屬性容易查找,也有利于測試,排錯和維護。語句結(jié)構(gòu):語句構(gòu)造力求簡單、直接,不能為了片面追求效率而使語句復(fù)雜化。可從以下幾方面注意:1使用標準的控制結(jié)構(gòu);2盡可能使用庫函數(shù);3程序編寫首先應(yīng)當考慮清晰性;4注意使用GOTO語句;輸入輸出方法:輸入輸出的方式和格式應(yīng)當盡量作到對用戶友善(User Friendly),盡可能方便用戶的使用。程序效率:程序效率是指程序的執(zhí)行速度及程序占用的存儲空間。影響程序效率的因素是多方面的,編程安全:提

20、高軟件質(zhì)量和可靠性的技術(shù)大致可分為兩類,一類是避開錯誤技術(shù),即在開發(fā)的過程中不讓差錯潛入軟件的技術(shù);另一類是容錯技術(shù),即對某些無法避開的差錯,使其影響減至最小的技術(shù);避開錯誤技術(shù)是進行質(zhì)量管理,實現(xiàn)產(chǎn)品應(yīng)有質(zhì)量所必不可少的技術(shù),也就是軟件工程中所討論的先進的軟件分析和開發(fā)技術(shù)和管理技術(shù)。但是,無論使用多么高明的避開錯誤技術(shù),也無法做到完美無缺和絕無錯誤,這就需要采用容錯技術(shù)。實現(xiàn)容錯的主要手段是冗余和防錯程序設(shè)計。結(jié)構(gòu)化的軟件測試:軟件測試在程序員對每一個模塊的編碼之后先做程序測試,再做單元測試,然后再進行集成(綜合或組裝)測試,系統(tǒng)測試,驗收(確認)測試,平行測試,人工測試,其中單元測試的一

21、部分己在編碼階段就開始了。測試:就是用已知的輸入在已知環(huán)境中動態(tài)地執(zhí)行系統(tǒng)(或系統(tǒng)的“部件”)。如果測試結(jié)果和預(yù)期結(jié)果不一致,則很可能是發(fā)現(xiàn)了系統(tǒng)中的錯誤。軟件測試:軟件測試是對軟件計劃、軟件設(shè)計、軟件編碼進行查錯和糾錯的活動(包括代碼執(zhí)行活動與人工活動)。程序測試:是對編碼階段的語法錯、語義錯、運行錯進行查找的代碼執(zhí)行活動。找出編碼中錯誤的代碼執(zhí)行活動稱程序測試。糾正編碼中的錯誤的執(zhí)行活動稱程序調(diào)試。程序測試的目的是查找編碼錯與糾正編碼錯,保證算法的正確實現(xiàn)。測試的原則:(1)測試前要認定被測試軟件有錯,不要認為軟件沒有錯。(2)要預(yù)先確定被測試軟件的測試結(jié)果。(3)要盡量避免測試自己編寫的

22、程序。(4)測試要兼顧合理輸入與不合理輸入數(shù)據(jù)。(5)測試要以軟件需求規(guī)格說明書為標準。(6)要明確找到的新錯與已找到的舊錯成正比。(7)測試是相對的,不能窮盡所有的測試,要據(jù)人力物力安排測試,并選擇好測試用例與測試方法。(8)測試用例留作測試報告與以后的反復(fù)測試用,重新驗證糾錯的程序是否有錯。測試方法:按照測試過程是否在實際應(yīng)用環(huán)境中來分,有靜態(tài)分析與動態(tài)測試。測試方法有分析方法(包括靜態(tài)分析法與白盒法)與非分析方法(稱黑盒法)。靜態(tài)分析技術(shù):不執(zhí)行被測軟件,可對需求分析說明書、軟件設(shè)計說明書、源程序做結(jié)構(gòu)檢查、流程分析、符號執(zhí)行來找出軟件錯誤。動態(tài)測試技術(shù):當把程序作為一個函數(shù),輸入的全體

23、稱為函數(shù)的定義域,輸出的全體稱為函數(shù)的值域,函數(shù)則描述了輸入的定義域與輸出值域的關(guān)系。這樣動態(tài)測試的算法可歸納為:選取定義域中的有效值,或定義域外無效值。對已選取值決定預(yù)期的結(jié)果。用選取值執(zhí)行程序。觀察程序行為,記錄執(zhí)行結(jié)果。將的結(jié)果與的結(jié)果相比較,不吻合則程序有錯。動態(tài)測試既可以采用白盒法對模塊進行邏輯結(jié)構(gòu)的測試,又可以用黑盒法做功能結(jié)枸的測試、接口的測試,都是以執(zhí)行程序并分析執(zhí)行結(jié)果來查錯的。白盒法:是通過分析程序內(nèi)部的邏輯與執(zhí)行路線來設(shè)計測試用例,進行測試的方法,白盒法也稱邏輯驅(qū)動方法。白盒法的具體設(shè)計程序測試用例的方法有:語句覆蓋、分支(判定)覆蓋、條件覆蓋、路徑覆蓋(或條件組合覆蓋)

24、,主要目的是提高測試的覆蓋率。黑盒法:是功能驅(qū)動方法,僅根據(jù)I/O數(shù)據(jù)條件來設(shè)計測試用例,而不管程序的內(nèi)部結(jié)構(gòu)與路徑如何。黑盒法的具體設(shè)計程序測試用例的方法有:等價類劃分法,邊界值分析法,錯誤推測法,主要目的是設(shè)法以最少測試數(shù)據(jù)子集來盡可能多的測試軟件程序的錯誤。設(shè)計測試方案: 測試方案包括預(yù)定要測試的功能,應(yīng)該輸入的測試數(shù)據(jù)和預(yù)期的結(jié)果,其中最困難的問題是設(shè)計測試用的輸入數(shù)據(jù)(即測試用例)。通常的做法是,用黑盒法設(shè)計基本的測試方案,再用白盒法補充一些方案。詳見8.7.2節(jié)中的例子。軟件測試的步驟:軟件測試的步驟詳見8.7.3節(jié)中的圖8-8測試步驟。單元測試:單元測試也稱模塊測試、邏輯測試、結(jié)

25、構(gòu)測試,測試的方法一般采用白盒法,以路徑覆蓋為最佳測試準則。集成測試:單元測試之后便進入組裝測試。盡管模擬了驅(qū)動模塊和存根模塊進行單元測試,由于測試不能窮盡,單元測試又會引入新錯誤,單元測試后肯定會有隱藏錯誤,組裝不可能一次成功,必須經(jīng)測試后才能成功。集成測試分為增式組裝測試和非增式組裝測試,所謂非增式組裝,按照結(jié)構(gòu)圖一次性將各單元模塊組裝起來。所謂增式組裝是指按照結(jié)構(gòu)圖自頂向下或自底向上逐漸安裝。確認測試:確認測試也稱合格測試或稱驗收測試。組裝后己成為完整的軟件包,消除了接口的錯誤。確認測試主要由使用用戶參加測試,檢驗軟件規(guī)格說明的技術(shù)標準的符合程度,是保證軟件質(zhì)量的最后關(guān)鍵環(huán)節(jié)。系統(tǒng)測試:

26、一般的系統(tǒng)除了確認測試外還要做如下幾個方面的系統(tǒng)測試恢復(fù)測試通過系統(tǒng)的修復(fù)能力,檢測重新初始化,數(shù)據(jù)恢復(fù),重新啟動,檢驗點設(shè)置機構(gòu)是否正確,以及人工干預(yù)的平均恢復(fù)時間是否在允許范圍內(nèi)。安全測試設(shè)計測試用例,突破軟件安全保護的機構(gòu)安全保密措施,檢驗系統(tǒng)是否安全保密的漏洞。強度測試設(shè)計測試用例,檢驗系統(tǒng)的能力最高能達到什么實際的限度,讓系統(tǒng)處于資源的異常數(shù)量、異常頻率、異常批量的條件下運行測試系統(tǒng)的承受能力。一般取比平常限度高5一10倍的限度做測試用例。性能測試設(shè)計測試用例測試并記錄軟件運行性能,與性能要求比較,看是否達到性能要求規(guī)格。這項測試常常與強度測試相結(jié)合進行。1 一般掌握內(nèi)容:軟件維護過

27、程軟件維護:軟件運行/維護階段對軟件產(chǎn)品所進行的修改就是維護。維護的問題:軟件維護存在的絕大多數(shù)問題,都是由于軟件定義和軟件開發(fā)的方法有問題。在軟件生命周期的頭兩個時期沒有嚴格而又科學的管理和規(guī)劃,幾乎必然會導(dǎo)致在最后階段出現(xiàn)問題。軟件維護步驟及組織:為了正確、有效地修改,需要經(jīng)歷以下三個步驟:1.分析和理解程序;2.修改程序;3.重新驗證程序;4.維護組織。第六章 面向?qū)ο蟮姆治龊驮O(shè)計方法1.重點掌握的內(nèi)容: 面向?qū)ο蟮幕靖拍詈吞卣髅嫦驅(qū)ο蟮幕靖拍? 面向?qū)ο蟛粌H是一些具體的軟件開發(fā)技術(shù)與策略,而且是一整套關(guān)于如何看待軟件系統(tǒng)與現(xiàn)實世界的關(guān)系,以什么觀點來研究問題并進行求解,以及如何進行

28、系統(tǒng)構(gòu)造的軟件方法學。而面向?qū)ο蠓椒ㄊ且环N運用對象、類、繼承、封裝、聚合、消息傳送、多態(tài)性等概念來構(gòu)造系統(tǒng)的軟件開發(fā)方法。面向?qū)ο蠓椒ǖ幕舅枷胧牵瑥默F(xiàn)實世界中客觀存在的事物(即對象)出發(fā)來構(gòu)造軟件系統(tǒng),并在系統(tǒng)構(gòu)造中盡可能運用人類的自然思維方式。面向?qū)ο蟮膸讉€重要概念:對象、消息、方法性、繼承性、封裝性等。詳見6.1.3節(jié)。面向?qū)ο蠓椒ǖ幕咎卣? 從問題域中客觀存在的事物出發(fā)來構(gòu)造軟件系統(tǒng),用對象作為對這些事物的抽象表示,并以此作為系統(tǒng)的基本構(gòu)成單位。事物的靜態(tài)特征(即可以用一些數(shù)據(jù)來表達的特征)用對象的屬性表示,事物的動態(tài)特征(即事物的行為)用對象的服務(wù)(或操作)表示。對象的屬性與服務(wù)結(jié)

29、合為一體,成為一個獨立的實體,對外屏蔽其內(nèi)部細節(jié)(稱作封裝)。對事物進行分類。把具有相同屬性和相同服務(wù)的對象歸為一類,類是這些對象的抽象描述,每個對象是它的類的一個實例。通過在不同程度上運用抽象的原則(較多或較少地忽略事物之間的差異),可以得到較一般的類和較特殊的類。特殊類繼承一般類的屬性與服務(wù),面向?qū)ο蠓椒ㄖС謱@種繼承關(guān)系的描述與實現(xiàn),從而簡化系統(tǒng)的構(gòu)造過程及其文檔。復(fù)雜的對象可以用簡單的對象作為其構(gòu)成部分,稱作聚合。對象之間通過消息進行通信,以實現(xiàn)對象之間的動態(tài)聯(lián)系。通過關(guān)聯(lián)表達對象之間的靜態(tài)關(guān)系。3. 一般掌握的內(nèi)容: 面向?qū)ο蠓治雠c設(shè)計方法面向?qū)ο蟪绦蛟O(shè)計步驟面向?qū)ο蠓治龇椒ǎ耗壳俺?/p>

30、現(xiàn)有OOA與OOD方法。面向?qū)ο笤O(shè)計方法:OOA與OOD的職責劃分是:OOA針對問題域運用OO方法,建立一個反映問題域的OOA模型,不考慮與系統(tǒng)的具體實現(xiàn)有關(guān)的因素(例如采用什么編程語言、圖形用戶界面、數(shù)據(jù)庫等等),從而使OOA模型獨立于具體的實現(xiàn)。OOD則是針對系統(tǒng)的一個具體的實現(xiàn)運用OO方法。其中包括兩方面的工作,一是把OOA模型直接搬到OOD(不經(jīng)過轉(zhuǎn)換,僅作某些必要的修改和調(diào)整),作為OOD的一個部分;二是針對具體實現(xiàn)中的人機界面、數(shù)據(jù)存儲、任務(wù)管理等因素補充一些與實現(xiàn)有關(guān)的部分。這些部分與OOA采用相同的表示法和模型結(jié)構(gòu)。第11章 項目計劃與管理1. 重點掌握的內(nèi)容:軟件項目特點及軟

31、件管理功能軟件項目特點: 軟件產(chǎn)品與其他任何產(chǎn)品不同,它是無形的,完全沒有物理屬性。其特點表現(xiàn)為:智力密集,可見性差;單件生產(chǎn):在特定機型上,利用特定硬件配置,由特定的系統(tǒng)軟件或支撐軟件的支持,形成了特定的開發(fā)環(huán)境;勞動密集,自動化程度低:使用方法繁瑣,維護困難;軟件工作滲透了人的因素。軟件管理的功能:軟件管理的主要功能包括:制定計劃:規(guī)定待完成的任務(wù)、要求、資源、人力和進度等;建立組織項目:為實施計劃,保證任務(wù)的完成,需要建立分工明確的責任機構(gòu);配備人員:任用各種層次的技術(shù)人員和管理人員;指導(dǎo):鼓勵和動員軟件人員完成所分配的情況。2. 一般掌握的內(nèi)容:軟件配置管理的過程軟件配置管理的過程:軟

32、件配置管理SCM除了負擔控制變化之外,它還要擔負標識單個的SCI和軟件各種版本、審查軟件配置以保證開發(fā)得以正常進行,以及報告所有加在配置上的變化等任務(wù)。關(guān)于SCM需要考慮這樣一些問題:(1)采用什么方式標識和管理許多已存在的程序的各種版本?使得變化能夠有效地實現(xiàn)。(2)在軟件交付用戶之前和之后,如何控制變化?(3)誰有權(quán)批準和對變化安排優(yōu)先級?(4)如何保證變化得以正確地實施?(5)利用什么辦法估計變化可能引起的其它問題?這些問題歸結(jié)到SCM的五個任務(wù),即標識、版本控制、修改控制、配置審計和配置報告標識配置對象為了控制和管理的方便,所有SCI都應(yīng)按面向?qū)ο蟮姆绞矫⒔M織起來。此時,對象分為基

33、本對象和組合對象,基本對象指在分析、設(shè)計、編碼或測試階段由開發(fā)人員創(chuàng)建的某個“單位正文描述”,復(fù)合對象指由若干基本對象和復(fù)合對象組合而成的對象,它由“數(shù)據(jù)模型”和“模塊N”等基本對象組合而成。每個配置對象都擁有名字、描述、資源列表和實際存在體四個部分。對象名一般為字符串;對象描述包括若干數(shù)據(jù)項,它們指明對象的類型(例如,文檔、程序還是數(shù)據(jù))、所屬工程項目的標志及變動和版本的有關(guān)信息;資源列表給出該對象要求、引用、處理和提供的所有實體,如數(shù)據(jù)類型、特殊函數(shù)等,有時變量也被看作資源;只有基本對象才有實際存在體,它是指向該對象“單元正文描述”的一個指針,復(fù)合對象此項取null值。除了標識配置對象外,

34、還必須指明對象之間的關(guān)系,一個對象可標識為另一復(fù)合對象的一部分,即此兩對象之間存在一個關(guān)系。若干關(guān)系可定義出對象之間的分層結(jié)構(gòu)。例如: “E-R圖1.4” “數(shù)據(jù)模型”。版本控制配置管理的版本控制主要解決下列問題:(1)根據(jù)不同用戶的需要配置不同的系統(tǒng);(2)保存系統(tǒng)老版本,為以后調(diào)查問題使用;(3)建立一個系統(tǒng)新版本,使它包括某些決策;(4)支持兩為位以上工程師同時在一個項目工作;(5)高效存儲項目的多個版本。修改控制所謂修改控制,即把人的努力與自動工具結(jié)合起來,建立一套機制,有意識地控制軟件修改。配置審計確認修改是否已正確實施有兩種措施,一種是正式的技術(shù)復(fù)審,另一種是軟件配置審計。正式的技

35、術(shù)復(fù)審著重考慮所修改對象在技術(shù)上的正確性,復(fù)審人員應(yīng)對該對象是否與其他SCI協(xié)調(diào)以及在修改中可能產(chǎn)生的疏忽和副作用進行全面的評估。軟件配置審計作為一種補救措施,主要考慮下列在正式技術(shù)復(fù)審中未被考慮的因素:(1)控制變動命令指出的修改是否都已完成?還另加了哪些修改?(2)是否做過正式技術(shù)復(fù)審?(3)是否嚴格遵守軟件工程標準?(4)修改過的SCI是否做了特別標記?修改的日期和執(zhí)行修改的人員是否已經(jīng)注冊?該SCI的屬性是否能夠反映本次修改的結(jié)果?(5)是否完成與本次修改有關(guān)的注釋、記錄和報告等事宜?(6)所有相關(guān)的SCI是否已一并修改?二、 考試題型筆試題型和解題基本要求考試題型可以有選擇、填空、判斷、簡答題、建模題等。選擇、填空題、判斷、簡答題主要考核學生對基本概念的理解和掌握程度。建模題主要考核學生對所學知識的應(yīng)用能力。例如:選擇:1. 一個成功的測試可以()。A、 表明程序沒有錯誤B、發(fā)現(xiàn)所有錯誤C、提高軟件可靠性 D、發(fā)現(xiàn)尚未發(fā)現(xiàn)的錯誤2. 黑盒技術(shù)設(shè)計測試用例的方法之一為()。A、因果圖 B、邏輯覆蓋C、等價值劃分 D、基本路徑測試3. 在軟件維護的內(nèi)容中,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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

提交評論