第三章軟件工程_第1頁
第三章軟件工程_第2頁
第三章軟件工程_第3頁
第三章軟件工程_第4頁
第三章軟件工程_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第三章 軟件工程1. 軟件工程基本概念。2. 結(jié)構(gòu)化分析方法。3. 結(jié)構(gòu)化設(shè)計(jì)方法。4. 軟件測(cè)試。5. 程序的調(diào)試。第三章 軟件工程1、軟件工程的基本概念1.1 軟件以及特點(diǎn)(1)軟件的組成 計(jì)算機(jī)軟件(Software)是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及其相關(guān)文檔的集合。 軟件由兩部分組成:機(jī)器可執(zhí)行的程序和數(shù)據(jù)和有關(guān)文檔。第三章 軟件工程(2)軟件的特點(diǎn) 軟件是一種邏輯實(shí)體,而不是物理實(shí)體,具有抽象性。 軟件的生產(chǎn)與硬件不同,它沒有明顯的制作過程。 軟件在運(yùn)行、使用期間不存在磨損、老化問題。 軟件的開發(fā)、運(yùn)行對(duì)計(jì)算機(jī)系統(tǒng)具有依賴性,受計(jì)算機(jī)系統(tǒng)的限制,這導(dǎo)致了軟件

2、移植的問題。 軟件復(fù)雜性高,成本昂貴。 軟件開發(fā)涉及諸多的社會(huì)因素。第三章 軟件工程1.2 軟件危機(jī)與軟件工程軟件工程概念的提出源自軟件危機(jī)。 軟件危機(jī)主要表現(xiàn)在: 軟件需求的增長得不到滿足; 軟件開發(fā)的成本和進(jìn)度無法控制; 軟件質(zhì)量難以保證; 軟件不可維護(hù)或維護(hù)成度非常低; 軟件成本不斷提高; 軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。注:將軟件危機(jī)可以歸結(jié)為成本、質(zhì)量、生產(chǎn)率等問題。 為了消除軟件危機(jī),形成了軟件工程的概念,開辟了工程學(xué)的新興領(lǐng)域軟件工程學(xué)。軟件工程就是試圖用工程、科學(xué)和數(shù)學(xué)的原理與方法研制、維護(hù)計(jì)算機(jī)軟件的有關(guān)技術(shù)及管理方法。 關(guān)于軟件工程的定義,國標(biāo)(GB)

3、中指出,軟件工程是應(yīng)用于計(jì)算機(jī)軟件的定義、開發(fā)和維護(hù)的一整套方法、工具、文檔、實(shí)踐標(biāo)準(zhǔn)和工序。第三章 軟件工程 軟件工程的目的就是要建造一個(gè)優(yōu)良的軟件系統(tǒng),它以下兩方面的內(nèi)容:1)軟件開發(fā)技術(shù)。 主要有軟件開發(fā)方法學(xué)、軟件工具、軟件工程環(huán)境。第三章 軟件工程2)軟件工程管理。 軟件工程的主要思想是將工程化原則運(yùn)用到軟件開發(fā)過程,它包括3要素:方法、工具和過程。 方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具是支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制、管理。第三章 軟件工程1.3 軟件工程過程與軟件生命周期1. 軟件工程過程(Software Engineering Proces

4、s) 軟件工程過程是為獲得軟件產(chǎn)品,在軟件工具的支持下由軟件人員完成的一系列軟件工程活動(dòng),是把輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動(dòng)。第三章 軟件工程2. 軟件的生命周期(Software Life Cycle) 通常,將軟件產(chǎn)品提出、實(shí)現(xiàn)、使用 、維護(hù)到停止使用退役的過程稱為軟件的生命周期。第三章 軟件工程軟件生命周期分為定義、開發(fā)及維護(hù)三個(gè)階段。1)軟件定義階段:包括制定計(jì)劃和需求分析。制定計(jì)劃:確定總目標(biāo);可行性研究;探討解決方案;制定開發(fā)計(jì)劃。需求分析:對(duì)待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)的定義。第三章 軟件工程2)軟件開發(fā)階段:軟件設(shè)計(jì):分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)部分。軟件實(shí)現(xiàn)

5、:把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼。軟件測(cè)試:在設(shè)計(jì)測(cè)試用例的基礎(chǔ)上檢驗(yàn)軟件的各個(gè)組成部分。3)軟件運(yùn)行維護(hù)階段:軟件投入運(yùn)行,并在使用中不斷地維護(hù),進(jìn)行必要的擴(kuò)充和刪改。注:軟件生命周期中所花費(fèi)最多的階段是軟件運(yùn)行維護(hù)階段。第三章 軟件工程可行性研究初步項(xiàng)目計(jì)劃需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)實(shí)現(xiàn)測(cè)試使用維護(hù)退役定義階段開發(fā)階段維護(hù)階段第三章 軟件工程1.4 軟件工程的目標(biāo)與原則 1. 軟件工程的目標(biāo) 軟件工程的目標(biāo)是,在給定成本、進(jìn)度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品。軟件工程研究的內(nèi)容主要包括:軟

6、件開發(fā)技術(shù)和軟件工程管理;第三章 軟件工程2. 軟件工程的原則 軟件工程原則包括抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗(yàn)證性。(1)抽象。抽取事物最基本的特性和行為,忽略非本質(zhì)細(xì)節(jié)。(2)信息隱蔽。用封裝技術(shù),將程序模塊的實(shí)現(xiàn)細(xì)節(jié)隱藏起來,使模塊接口盡量簡單。第三章 軟件工程2. 軟件工程的原則(3)模塊化。模塊是程序中相對(duì)獨(dú)立的成分,一個(gè)獨(dú)立的編程單位,應(yīng)有良好的接口定義。(4)局部化。要求在一個(gè)物理模塊內(nèi)集中邏輯上相互關(guān)聯(lián)的計(jì)算資源,保證模塊間具有松散的耦合關(guān)系,模塊內(nèi)部有較強(qiáng)的內(nèi)聚性,這有助于控制解的復(fù)雜性。第三章 軟件工程2. 軟件工程的原則(5)確定性。軟件開發(fā)過

7、程中所有概念的表達(dá)應(yīng)是確定的、無歧義且規(guī)范的。(6)一致性。程序內(nèi)外部接口應(yīng)保持一致,系統(tǒng)規(guī)格說明與系統(tǒng)行為應(yīng)保持一致。 (7)完備性。軟件系統(tǒng)不丟失任何重要成分,完全實(shí)現(xiàn)系統(tǒng)所需的功能。(8)可驗(yàn)證性。應(yīng)遵循容易檢查、測(cè)評(píng)、評(píng)審的原則,以確保系統(tǒng)的正確性。第三章 軟件工程1.5 軟件開發(fā)工具與軟件開發(fā)環(huán)境1. 軟件開發(fā)工具 軟件開發(fā)工具是指可以用來幫助開發(fā),測(cè)試、分析、維護(hù)其他計(jì)算機(jī)程序及其文檔資料,實(shí)現(xiàn)軟件生產(chǎn)過程自動(dòng)化的一類程序。 軟件工具主要包括需求分析工具、設(shè)計(jì)工具、編碼工具、確認(rèn)工具、維護(hù)工具等。第三章 軟件工程2. 軟件工程環(huán)境(1)軟件工程環(huán)境是全面支持軟件開發(fā)全過程的軟件工具

8、集合。(2)計(jì)算機(jī)輔助軟件工程(CASE)是將各種軟件工具、開發(fā)機(jī)器和一個(gè)存放開發(fā)過程信息的中心數(shù)據(jù)庫組合起來,形成軟件工程環(huán)境。它將極大降低軟件開發(fā)的技術(shù)難度并保證軟件開發(fā)的質(zhì)量。第三章 軟件工程2、結(jié)構(gòu)化分析方法2.1 需求分析與需求分析方法1需求分析 軟件需求是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。而需求分析的任務(wù)就是導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型,解決“做什么”的問題。第三章 軟件工程需求分析階段的工作包括四個(gè)方面: 需求獲取 需求分析 編寫需求說明書 需求評(píng)審 第三章 軟件工程2需求分析方法常見的需求分析方法有:(1)結(jié)構(gòu)化分析方法。主要包括面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法

9、SA、面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法JSD和面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法DSSD。(2)面向?qū)ο蟮姆治龇椒ā5谌?軟件工程2.2 結(jié)構(gòu)化分析方法介紹 (1)關(guān)于結(jié)構(gòu)化分析方法 結(jié)構(gòu)化分析方法的實(shí)質(zhì)是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。第三章 軟件工程結(jié)構(gòu)化分析的步驟如下:通過對(duì)用戶的調(diào)查,以軟件的需求為線索,獲得當(dāng)前系統(tǒng)的具體模型:去掉具體模型中非本質(zhì)因素,抽象出當(dāng)前系統(tǒng)的邏輯模型:根據(jù)計(jì)算機(jī)的特點(diǎn)分析當(dāng)前系統(tǒng)與目標(biāo)系統(tǒng)的差別,建立目標(biāo)系統(tǒng)的邏輯模型完善目標(biāo)系統(tǒng)并補(bǔ)充細(xì)節(jié),寫出目標(biāo)系統(tǒng)的軟件需求規(guī)格說明;評(píng)審直到

10、確認(rèn)完全符合用戶對(duì)軟件的需求。第三章 軟件工程(2)結(jié)構(gòu)化分析的的常用工具1. 數(shù)據(jù)流圖 數(shù)據(jù)流圖是以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動(dòng)和處理的過程,它反映了系統(tǒng)必須完成的邏輯功能,是結(jié)構(gòu)化分析方法中用于表示系統(tǒng)邏輯模型的一種工具。第三章 軟件工程2. 數(shù)據(jù)字典 數(shù)據(jù)字典是結(jié)構(gòu)化分析方法的核心。 數(shù)據(jù)字典是對(duì)所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個(gè)有組織的列表,以及精確的、嚴(yán)格的定義,使得用戶和系統(tǒng)分析員對(duì)于輸入、輸出、存儲(chǔ)成分和中間計(jì)算結(jié)果有共同的理解。第三章 軟件工程3. 判定表 判定表是一種文本化的加工說明的流行格式,它特別適用于帶有一組測(cè)試條件的說明。 條 件分 類1234金 額1000100010

11、001000動(dòng) 作賬目狀況未過期已過期未過期已過期押下批準(zhǔn)單發(fā)出批準(zhǔn)單發(fā)出提貨單發(fā)出通知單第三章 軟件工程第三章 軟件工程2.3 軟件需求規(guī)格說明書 軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。1. 軟件需求規(guī)格說明書的作用(1)便于用戶、開發(fā)人員進(jìn)行理解和交流。(2)反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)。(3)作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)。第三章 軟件工程2. 軟件需求規(guī)格說明書的內(nèi)容(了解即可,考試不考)概述;數(shù)據(jù)描述;功能描述;性能描述;參考文獻(xiàn);附錄。第三章 軟件工程3. 軟件需求規(guī)格說明書的特點(diǎn)(了解即可)正確性;無歧義性;完整性;可驗(yàn)證性;

12、一致性;可理解性;可修改性;可追蹤性。 注:其中最重要的特點(diǎn)是無歧義性第三章 軟件工程3、結(jié)構(gòu)化設(shè)計(jì)方法 結(jié)構(gòu)化設(shè)計(jì)方法的基本思想是將軟件設(shè)計(jì)成由相對(duì)獨(dú)立、單一功能的模塊組成的結(jié)構(gòu)。第三章 軟件工程1. 軟件設(shè)計(jì)的基礎(chǔ) 需求分析主要解決“做什么”的問題,而軟件設(shè)計(jì)主要解決“怎么做”的問題。(1)從技術(shù)觀點(diǎn)看,軟件設(shè)計(jì)包括軟件結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)、過程設(shè)計(jì)。結(jié)構(gòu)設(shè)計(jì):定義軟件系統(tǒng)各主要部件之間的關(guān)系。數(shù)據(jù)設(shè)計(jì):將分析時(shí)創(chuàng)建的模型轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)的定義。接口設(shè)計(jì):描述軟件內(nèi)部、軟件和協(xié)作系統(tǒng)之間以及軟件與人之間如何通信。過程設(shè)計(jì):把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程性描述。(2)從工程角度來看,軟

13、件設(shè)計(jì)分兩步完成,即概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。 概要設(shè)計(jì):又稱結(jié)構(gòu)設(shè)計(jì),將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu),確定系統(tǒng)級(jí)接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式。 詳細(xì)設(shè)計(jì):確定每個(gè)模塊的實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用適當(dāng)方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。第三章 軟件工程2. 軟件設(shè)計(jì)的基本原理 軟件設(shè)計(jì)的基本原理包括:抽象、模塊化、信息隱蔽和模塊獨(dú)立性。第三章 軟件工程1)抽象。抽象是一種思維工具,就是把事物本質(zhì)的共同特性提取出來而不考慮其他細(xì)節(jié)。2)模塊化。解決一個(gè)復(fù)雜問題時(shí)自頂向下逐步把軟件系統(tǒng)劃分成一個(gè)個(gè)較小的、相對(duì)獨(dú)立但又不相互關(guān)聯(lián)的模塊的過程。3)信息隱蔽。每個(gè)模塊的實(shí)施細(xì)節(jié)對(duì)于其他模塊來說是隱蔽的。4)模塊獨(dú)立

14、性。軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他的模塊的接口是簡單的。第三章 軟件工程模塊分解的主要指導(dǎo)思想是信息隱蔽和模塊獨(dú)立性。模塊的耦合性和內(nèi)聚性是衡量軟件的模塊獨(dú)立性的兩個(gè)定性指標(biāo)。在結(jié)構(gòu)化程序設(shè)計(jì)中,模塊劃分的原則是:模塊內(nèi)具有高內(nèi)聚度,模塊間具有低耦合度。內(nèi)聚性:是一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度的度量。耦合性:是模塊間互相連接的緊密程度的度量。一個(gè)設(shè)計(jì)良好的軟件系統(tǒng)應(yīng)具有高內(nèi)聚、低耦合的特征。第三章 軟件工程3、概要設(shè)計(jì)3.1 概要設(shè)計(jì)的任務(wù)軟件概要設(shè)計(jì)的基本任務(wù)是:1) 設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu) 2) 數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計(jì)3) 編寫概要設(shè)計(jì)文檔4) 概要設(shè)

15、計(jì)文檔評(píng)審 常用的軟件結(jié)構(gòu)設(shè)計(jì)工具是結(jié)構(gòu)圖,也稱程序結(jié)構(gòu)圖。 程序結(jié)構(gòu)圖的基本圖符如右圖所示:3.2 面向數(shù)據(jù)流的設(shè)計(jì)方法 面向數(shù)據(jù)流的設(shè)計(jì)方法定義了一些不同的映射方法,利用這些方法可以把數(shù)據(jù)流圖變換成結(jié)構(gòu)圖表示軟件的結(jié)構(gòu)。第三章 軟件工程數(shù)據(jù)流的類型:變換型和事務(wù)型。(1)變換型:變換型數(shù)據(jù)處理問題的工作過程大致分為三步,即取得數(shù)據(jù)、變換數(shù)據(jù)和輸出數(shù)據(jù)。變換型系統(tǒng)結(jié)構(gòu)圖由輸入、中心變換、輸出三部分組成。第三章 軟件工程(2)事務(wù)型:事務(wù)型數(shù)據(jù)處理問題的工作機(jī)理是接受一項(xiàng)事務(wù),根據(jù)事務(wù)處理的特點(diǎn)和性質(zhì),選擇分派一個(gè)適當(dāng)?shù)奶幚韱卧缓蠼o出結(jié)果。第三章 軟件工程面向數(shù)據(jù)流設(shè)計(jì)方法的實(shí)施要點(diǎn)與設(shè)計(jì)

16、過程(了解即可)第1步:分析、確認(rèn)數(shù)據(jù)流圖的類型,區(qū)分是事務(wù)型還是變換型。第2步:說明數(shù)據(jù)流的邊界。第3步:把數(shù)據(jù)流圖映射為程序結(jié)構(gòu)。第4步:根據(jù)設(shè)計(jì)準(zhǔn)則對(duì)產(chǎn)生的結(jié)構(gòu)進(jìn)行細(xì)化和求精。第三章 軟件工程3.3 概要設(shè)計(jì)的準(zhǔn)則 提高模塊獨(dú)立性。 模塊規(guī)模適中。 深度、寬度、扇出和扇入適當(dāng) 使模塊的作用域在該模塊的控制域內(nèi)。應(yīng)減少模塊的接口和界面的復(fù)雜性。設(shè)計(jì)成單入口、單出口的模塊。設(shè)計(jì)功能可預(yù)測(cè)的模塊。第三章 軟件工程4、詳細(xì)設(shè)計(jì) 詳細(xì)設(shè)計(jì)也稱過程設(shè)計(jì)。 詳細(xì)設(shè)計(jì)是為軟件結(jié)構(gòu)圖中的每一個(gè)模塊確定實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用某種選定的表達(dá)工具表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。其目的是確定怎樣來具體實(shí)現(xiàn)所要求的系

17、統(tǒng)。 詳細(xì)設(shè)計(jì)的任務(wù)是確定實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),不同于編碼或編程。第三章 軟件工程常見的過程設(shè)計(jì)工具有:圖形工具:程序流程圖,N-S,PAD,HIPO。表格工具:判定表。語言工具:PDL(偽碼)。第三章 軟件工程在程序流程圖中常用的圖形符號(hào)如圖所示:第三章 軟件工程結(jié)構(gòu)化程序設(shè)計(jì)限制流程圖只能使用五種基本控制結(jié)構(gòu),如圖所示。 例如,下面是簡單托運(yùn)貨物運(yùn)費(fèi)計(jì)算的問題。設(shè)貨物重量x,客戶信息y,輸入x、y后,計(jì)算運(yùn)費(fèi)的具體要求是:如果015(設(shè)為條件2),則用公式2計(jì)算后,循環(huán)3次完成同樣的“記賬”和“輸出”操作,然后程序結(jié)束。該問題程序的程序流程圖描述如圖第三章 軟件工程 1973年Nossi

18、和Shneiderman提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,通常把這種圖稱為NS圖。五種基本結(jié)構(gòu)的NS 圖如圖所示。下面是求某數(shù)是否是素?cái)?shù)的問題,該問題的NS圖描述如圖所示: PAD是問題分析圖(Problem Analysis Diagram)的英文編寫。它是繼流程圖和方框圖之后,又一種主要用于描述軟件詳細(xì)設(shè)計(jì)的圖形表示工具。與方框圖一樣,PAD也只能描述結(jié)構(gòu)化程序允許使用的幾種基本結(jié)構(gòu)。第三章 軟件工程PAD有以下特征:結(jié)構(gòu)清晰,結(jié)構(gòu)化程度高;易于閱讀;最左端的縱線是程序主干線,對(duì)應(yīng)程序的第一層結(jié)構(gòu);每增加一層PAD圖向右擴(kuò)展一條縱線,故程序的縱線數(shù)等于程序的層次數(shù);程序執(zhí)行從PAD最左

19、端主干線上端結(jié)點(diǎn)開始,自上而下、自左向右依次執(zhí)行,程序圖止于最左端主干線。第三章 軟件工程 過程設(shè)計(jì)語言(PDL)也稱為結(jié)構(gòu)化的英語和偽碼,它是一種混合語言,采用英語的詞匯和結(jié)構(gòu)化程序設(shè)計(jì)語言語法,類似編程語言。第三章 軟件工程4、軟件測(cè)試4.1軟件測(cè)試的基礎(chǔ)1.什么是軟件測(cè)試 軟件測(cè)試是在軟件投入生產(chǎn)性運(yùn)行之前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說明和編碼的最終復(fù)審,是軟件質(zhì)量保證的關(guān)鍵步驟。如果給軟件測(cè)試下定義的話,可以這樣講:軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。第三章 軟件工程2. 軟件測(cè)試的目的和準(zhǔn)則(1)軟件測(cè)試的目的: 測(cè)試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯(cuò)誤; 一個(gè)好的測(cè)試用例在于能發(fā)現(xiàn)

20、至今未發(fā)現(xiàn)的錯(cuò)誤; 一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。 盡可能地多發(fā)現(xiàn)程序中的錯(cuò)誤,不能也不可能證明程序沒有錯(cuò)誤第三章 軟件工程(2)軟件測(cè)試的準(zhǔn)則: 所有測(cè)試都應(yīng)追溯到需求; 嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性; 充分注意測(cè)試中的群集現(xiàn)象; 程序員應(yīng)避免檢查自己的程序; 窮舉測(cè)試不可能; 妥善保存測(cè)試計(jì)劃、測(cè)試用例、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便。第三章 軟件工程4.2 軟件測(cè)試技術(shù)與方法 軟件測(cè)試的方法和技術(shù)是多種多樣的。 若從是否需要執(zhí)行被測(cè)軟件的角度,可以分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試方法。 若按照功能劃分可以分為白盒測(cè)試和黑盒測(cè)試方法。第三章 軟件工程一、靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)

21、試(一) 靜態(tài)測(cè)試方法靜態(tài)測(cè)試一般指人工評(píng)審軟件文檔或程序,以便發(fā)現(xiàn)錯(cuò)誤。靜態(tài)測(cè)試包括:代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等。(二)動(dòng)態(tài)測(cè)試方法 動(dòng)態(tài)測(cè)試是在樣板測(cè)試數(shù)據(jù)上執(zhí)行程序并分析輸出以發(fā)現(xiàn)錯(cuò)誤的過程。所以動(dòng)態(tài)測(cè)試包括三部分:生成測(cè)試數(shù)據(jù)、執(zhí)行程序與驗(yàn)證的輸出結(jié)果。第三章 軟件工程(一)白盒測(cè)試(看得見程序內(nèi)部,因此是測(cè)試內(nèi)部結(jié)構(gòu)和流程)(1)白盒測(cè)試白盒測(cè)試方法也稱為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。它是根據(jù)軟件產(chǎn)品的內(nèi)部工作過程,檢查內(nèi)部成分,以確認(rèn)每種內(nèi)部操作符合設(shè)計(jì)規(guī)格要求。(2)白盒測(cè)試的基本原則是要驗(yàn)證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。第三章 軟件工程(3)白盒測(cè)試法的測(cè)試用例是根據(jù)程序的內(nèi)

22、部邏輯來設(shè)計(jì)的,主要用軟件的單元測(cè)試。(4)白盒測(cè)試的主要方法有邏輯覆蓋、基本路徑測(cè)試等。 邏輯覆蓋泛指一系列以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的測(cè)試用例設(shè)計(jì)技術(shù)。通常所指的程序中的邏輯表示有判斷、分支和條件等幾種表示方式。 基本路徑測(cè)試的思想和步驟是,根據(jù)軟件過程性描述中的控制流程確定程序的的環(huán)路復(fù)雜性度量,用此度量定義基本路徑集合,并由此導(dǎo)出一組測(cè)試用例,對(duì)每一條獨(dú)立執(zhí)行路徑進(jìn)行測(cè)試。第三章 軟件工程(二)黑盒測(cè)試(看得見程序外部,因此是測(cè)試外部功能與特性) 就軟件測(cè)試來講,軟件的黑盒測(cè)試意味著測(cè)試要根據(jù)軟件的外部特性進(jìn)行。也就是說,這種方法是把測(cè)試對(duì)象看作一個(gè)黑盒子,測(cè)試人員完全不考慮程序內(nèi)部的

23、邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。第三章 軟件工程 黑盒測(cè)試不關(guān)心程序內(nèi)部的邏輯,只是根據(jù)程序的功能說明來設(shè)計(jì)測(cè)試用例,主要方法有等價(jià)類劃分法、邊界值分析法、錯(cuò)誤推測(cè)法和因果圖等,主要用于軟件的確認(rèn)測(cè)試。第三章 軟件工程 等價(jià)類劃分法。這是一種典型的黑盒測(cè)試方法,它是將程序的所有可能的輸入數(shù)據(jù)劃分成若干部分(及若干等價(jià)類),然后從每個(gè)等價(jià)類中選取數(shù)據(jù)作為測(cè)試用例。 邊界值分析法。它是對(duì)各種輸入、輸出范圍的邊界情況設(shè)計(jì)測(cè)試用例的方法。實(shí)踐證明,程序往往在處理邊緣情況時(shí)出錯(cuò),因而檢查邊緣情況的測(cè)試用例查錯(cuò)率較高。邊緣情況是指輸入等價(jià)類或輸出等價(jià)類的

24、邊界值。 錯(cuò)誤推測(cè)法。人們可以靠經(jīng)驗(yàn)和直覺推測(cè)程序中可能存在的各種錯(cuò)誤,從而有針對(duì)性地編寫檢查這些錯(cuò)誤的用例。 第三章 軟件工程4.3 軟件測(cè)試的實(shí)施 軟件測(cè)試過程分4個(gè)步驟,即單元測(cè)試、集成測(cè)試、驗(yàn)收測(cè)試(確認(rèn)測(cè)試)和系統(tǒng)測(cè)試。1. 單元測(cè)試 單元測(cè)試是對(duì)軟件設(shè)計(jì)的最小單位模塊(程序單元)進(jìn)行正確性檢驗(yàn)的測(cè)試。單元測(cè)試的目的是發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種錯(cuò)誤。 單元測(cè)試的依據(jù)是詳細(xì)設(shè)計(jì)說明書和源程序。第三章 軟件工程2. 集成測(cè)試 集成測(cè)試是測(cè)試和組裝軟件的過程。它是把模塊在按照設(shè)計(jì)要求組裝起來的同時(shí)進(jìn)行測(cè)試,主要目的是發(fā)現(xiàn)與接口有關(guān)的錯(cuò)誤。 集成測(cè)試的依據(jù)是概要設(shè)計(jì)說明書。第三章 軟件工程

25、3. 確認(rèn)測(cè)試 確認(rèn)測(cè)試的任務(wù)是驗(yàn)證軟件的有效性,即驗(yàn)證軟件的功能和性能及其他特性是否與用戶的要求一致。 確認(rèn)測(cè)試的主要依據(jù)是軟件需求規(guī)格說明書。 確認(rèn)測(cè)試主要運(yùn)用黑盒測(cè)試法。 第三章 軟件工程4. 系統(tǒng)測(cè)試 系統(tǒng)測(cè)試是將通過測(cè)試確認(rèn)的軟件,作為整個(gè)基于計(jì)算機(jī)系統(tǒng)的一個(gè)元素,與計(jì)算機(jī)硬件、外設(shè)、支持軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素組合在一起,在實(shí)際運(yùn)行(使用)環(huán)境下對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的集成測(cè)試和確認(rèn)測(cè)試。 系統(tǒng)測(cè)試的測(cè)試用例應(yīng)根據(jù)需求分析規(guī)格說明來設(shè)計(jì),其目的在于通過與系統(tǒng)的需求定義進(jìn)行比較,發(fā)現(xiàn)軟件與系統(tǒng)定義不符合或與之矛盾的地方第三章 軟件工程5、程序的調(diào)試5.1程序調(diào)試的基本概念 在對(duì)

26、程序進(jìn)行了成功的測(cè)試之后將進(jìn)入程序調(diào)試(通常稱Debug,即排錯(cuò))。 程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。它與軟件測(cè)試不同,軟件測(cè)試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。先要發(fā)現(xiàn)軟件的錯(cuò)誤,然后借助于一定的調(diào)試工具去執(zhí)行找出軟件錯(cuò)誤的具體位置。 軟件測(cè)試貫穿整個(gè)軟件生命期,調(diào)試主要在開發(fā)階段。第三章 軟件工程程序調(diào)試的原則(了解即可)(1)確定錯(cuò)誤的性質(zhì)和位置時(shí)的注意事項(xiàng):分析思考與錯(cuò)誤征兆有關(guān)的信息;避開死胡同;只把調(diào)試工具當(dāng)作輔助手段來使用;避免用試探法,最多只能把它當(dāng)作最后手段。第三章 軟件工程(2)修改錯(cuò)誤的原則在出現(xiàn)錯(cuò)誤的地方,很可能還有別的錯(cuò)誤;修改錯(cuò)誤的一個(gè)常見失誤是只修改了這個(gè)錯(cuò)誤

27、的征兆或這個(gè)錯(cuò)誤的表現(xiàn),而沒有修改錯(cuò)誤本身;注意修正一個(gè)錯(cuò)誤的同時(shí)有可能會(huì)引入新的錯(cuò)誤;修改錯(cuò)誤的過程將迫使人們暫時(shí)回到程序設(shè)計(jì)階段;修改源代碼程序,不要改變目標(biāo)代碼第三章 軟件工程5.2 軟件的調(diào)試方法 1. 強(qiáng)行排錯(cuò)法 作為傳統(tǒng)的調(diào)試方法,其過程可概括為,設(shè)置斷點(diǎn)、程序暫停、觀察程序狀態(tài)、繼續(xù)運(yùn)行程序是目前使用較多、效率較低的調(diào)試方法。涉及的調(diào)試技術(shù)主要是設(shè)置斷點(diǎn)和監(jiān)視表達(dá)式。例如:通過內(nèi)存全部打印來排錯(cuò);在程序特定部位設(shè)置打印語句,即斷點(diǎn)法;自動(dòng)調(diào)試工具。第三章 軟件工程2. 回溯法 該方法適合于小規(guī)模程序的排錯(cuò)。即一旦發(fā)現(xiàn)了錯(cuò)誤,先分析錯(cuò)誤征兆,確定最先發(fā)現(xiàn)“癥狀”的位置。然后,從發(fā)現(xiàn)“癥狀”的地方開始,沿程序的控制流程,逆向跟蹤源程序代碼,直到找到錯(cuò)誤根源或確定錯(cuò)誤產(chǎn)生的范圍。第三章 軟件工程3. 原因排除法 原因排除法是通過演繹和歸納,以及二分法來實(shí)現(xiàn)的。 演繹法是一種從一般原理或前提出發(fā),經(jīng)過排除和精化的過程來推導(dǎo)出結(jié)論的思考方法。 歸納法是一種從特殊推斷出一般的系統(tǒng)化思考方法。其基本思想是從一些線索著手,通過分析尋找到潛在的原因,從而找出錯(cuò)誤。第三章 軟件工程 二分法實(shí)現(xiàn)的基本思想是,如果已知每個(gè)變量在程序中若干個(gè)關(guān)鍵點(diǎn)的正確值,則可以使用定值語句(如賦值語句、輸入語句等)在程序中的某點(diǎn)附近給這些變量賦正確值,然后運(yùn)行程序并檢查程序的輸出。第三章

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論