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

下載本文檔

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

文檔簡(jiǎn)介

1、第3章 軟件工程基礎(chǔ)課件制作:鄭軼課件制作:鄭軼(2009)本章目錄3.1 軟件工程基本概念軟件工程基本概念3.2 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法3.3 結(jié)構(gòu)化設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)方法3.4 軟件測(cè)試軟件測(cè)試3.5 程序的調(diào)試程序的調(diào)試重點(diǎn)難點(diǎn)重點(diǎn)難點(diǎn) 3.1 軟件工程基本概念1. 軟件的相關(guān)概念軟件的相關(guān)概念計(jì)算機(jī)軟件是包括計(jì)算機(jī)軟件是包括程序程序、數(shù)據(jù)數(shù)據(jù)及及相關(guān)文檔相關(guān)文檔的完整的完整集合。集合。 概概 念念含含 義義軟件軟件程序和數(shù)據(jù)程序和數(shù)據(jù)+文檔文檔程序程序軟件開發(fā)人員依據(jù)用戶需求開發(fā)的,用某種程序設(shè)計(jì)軟件開發(fā)人員依據(jù)用戶需求開發(fā)的,用某種程序設(shè)計(jì)語言描述的,能夠在計(jì)算機(jī)執(zhí)行的語句序列

2、語言描述的,能夠在計(jì)算機(jī)執(zhí)行的語句序列數(shù)據(jù)數(shù)據(jù)依程序能夠正常操縱信息的數(shù)據(jù)結(jié)構(gòu)依程序能夠正常操縱信息的數(shù)據(jù)結(jié)構(gòu)文檔文檔與程序開發(fā)、維護(hù)和使用有關(guān)的資料與程序開發(fā)、維護(hù)和使用有關(guān)的資料軟件的特點(diǎn)1)軟件是一種)軟件是一種邏輯邏輯實(shí)體,而不是物理實(shí)體,具有抽象性實(shí)體,而不是物理實(shí)體,具有抽象性 ;2)軟件的生產(chǎn)與硬件不同,它沒有明顯的制作過程;)軟件的生產(chǎn)與硬件不同,它沒有明顯的制作過程;3)軟件在運(yùn)行、使用期間不存在磨損、老化問題;)軟件在運(yùn)行、使用期間不存在磨損、老化問題;4)軟件的開發(fā)、運(yùn)行對(duì)計(jì)算機(jī)系統(tǒng)具有依賴性,受計(jì)算)軟件的開發(fā)、運(yùn)行對(duì)計(jì)算機(jī)系統(tǒng)具有依賴性,受計(jì)算機(jī)系統(tǒng)的限制,這導(dǎo)致了軟

3、件移植的問題;機(jī)系統(tǒng)的限制,這導(dǎo)致了軟件移植的問題;5)軟件復(fù)雜性高,成本昂貴;)軟件復(fù)雜性高,成本昂貴;6)軟件開發(fā)涉及諸多的社會(huì)因素)軟件開發(fā)涉及諸多的社會(huì)因素 。 軟件的分類按按功能功能劃分:劃分:n系統(tǒng)軟件:系統(tǒng)軟件:管理計(jì)算機(jī)資源,使計(jì)算機(jī)使用效率更高管理計(jì)算機(jī)資源,使計(jì)算機(jī)使用效率更高,為用戶提供各種服務(wù)的軟件。,為用戶提供各種服務(wù)的軟件。n如,操縱系統(tǒng)如,操縱系統(tǒng)(OS)、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、編譯程序、匯、編譯程序、匯編程序和網(wǎng)絡(luò)軟件等。編程序和網(wǎng)絡(luò)軟件等。n應(yīng)用軟件:應(yīng)用軟件:為了應(yīng)用于特定的領(lǐng)域而開發(fā)的軟件。為了應(yīng)用于特定的領(lǐng)域而開發(fā)的軟件。n如,如,

4、Office系列、系列、QQ、FlashGet等。等。n支撐軟件:支撐軟件:介于以上兩者之間,協(xié)助用戶開發(fā)軟件的介于以上兩者之間,協(xié)助用戶開發(fā)軟件的工具型軟件。工具型軟件。n如,如, Visual C+、Visual Basic 、 Dephi、PowerBuilder等。等。2.軟件危機(jī)n軟件工程源自軟件工程源自軟件危機(jī)軟件危機(jī)。n所謂所謂軟件危機(jī)軟件危機(jī)是泛指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中是泛指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。所遇到的一系列嚴(yán)重問題。n問題產(chǎn)生的根本原因有兩種:?jiǎn)栴}產(chǎn)生的根本原因有兩種:n軟件本身的特點(diǎn),如復(fù)雜性高、規(guī)模龐大等;軟件本身的特點(diǎn),如復(fù)雜性

5、高、規(guī)模龐大等;n人們對(duì)軟件開發(fā)和維護(hù)的許多錯(cuò)誤認(rèn)識(shí)和做法,再加上對(duì)軟件人們對(duì)軟件開發(fā)和維護(hù)的許多錯(cuò)誤認(rèn)識(shí)和做法,再加上對(duì)軟件的特性認(rèn)識(shí)不足。的特性認(rèn)識(shí)不足。n軟件開發(fā)與維護(hù)的方法不正確是產(chǎn)生軟件危機(jī)的主要原軟件開發(fā)與維護(hù)的方法不正確是產(chǎn)生軟件危機(jī)的主要原因。因。 軟件危機(jī)主要表現(xiàn)在n軟件需求的增長(zhǎng)得不到滿足。軟件需求的增長(zhǎng)得不到滿足。n軟件開發(fā)成本和進(jìn)度無法控制。軟件開發(fā)成本和進(jìn)度無法控制。n軟件質(zhì)量難以保證。軟件質(zhì)量難以保證。n軟件不可維護(hù)或維護(hù)程度非常低。軟件不可維護(hù)或維護(hù)程度非常低。n軟件的成本不斷提高。軟件的成本不斷提高。n軟件開發(fā)生產(chǎn)率的提高跟不上硬件的發(fā)展和應(yīng)用需求軟件開發(fā)生產(chǎn)率

6、的提高跟不上硬件的發(fā)展和應(yīng)用需求的增長(zhǎng)。的增長(zhǎng)。 3.軟件工程n軟件工程軟件工程是應(yīng)用于計(jì)算機(jī)軟件的定義、開發(fā)和維護(hù)的是應(yīng)用于計(jì)算機(jī)軟件的定義、開發(fā)和維護(hù)的一整套方法、工具、文檔、實(shí)踐標(biāo)準(zhǔn)和工序。一整套方法、工具、文檔、實(shí)踐標(biāo)準(zhǔn)和工序。n軟件工程的主要思想是將軟件工程的主要思想是將工程化工程化原則運(yùn)用到軟件開發(fā)原則運(yùn)用到軟件開發(fā)過程,它包括過程,它包括3個(gè)要素:個(gè)要素:方法方法、工具工具和和過程過程。n方法是完成軟件工程項(xiàng)目的技術(shù)手段,即提供方法是完成軟件工程項(xiàng)目的技術(shù)手段,即提供“如如何做何做”的技術(shù);的技術(shù);n工具支持軟件的開發(fā)、管理、文檔生成;工具支持軟件的開發(fā)、管理、文檔生成;n過程支

7、持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制、管理,在過過程支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制、管理,在過程中將軟件工程的方法和工具綜合起來程中將軟件工程的方法和工具綜合起來 。 軟件工程的目標(biāo)和研究?jī)?nèi)容n軟件工程的目標(biāo)是:軟件工程的目標(biāo)是:在給定成本、進(jìn)度的前提下,開發(fā)出具有有效性在給定成本、進(jìn)度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用戶需性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品。求的產(chǎn)品。n軟件工程所包含的研究?jī)?nèi)容概括為以下兩點(diǎn):軟件工程所包含的研究?jī)?nèi)容概括為以下兩點(diǎn):n軟件開發(fā)技

8、術(shù)軟件開發(fā)技術(shù):主要有軟件開發(fā)方法學(xué)、開發(fā)過程、軟件工:主要有軟件開發(fā)方法學(xué)、開發(fā)過程、軟件工具、軟件工程環(huán)境。具、軟件工程環(huán)境。n軟件工程管理軟件工程管理:主要有軟件管理、軟件工程經(jīng)濟(jì)學(xué)、軟件心:主要有軟件管理、軟件工程經(jīng)濟(jì)學(xué)、軟件心理學(xué)。理學(xué)。軟件工程的原則(一)軟件工程原則:抽象、信息隱蔽、模塊化、局部化軟件工程原則:抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗(yàn)證性。、確定性、一致性、完備性和可驗(yàn)證性。 n抽象:抽象:采用分層次抽象、自頂向下、逐層細(xì)化的辦法控采用分層次抽象、自頂向下、逐層細(xì)化的辦法控制軟件開發(fā)過程的復(fù)雜性。制軟件開發(fā)過程的復(fù)雜性。n信息隱蔽:信息隱蔽:將

9、模塊設(shè)計(jì)為將模塊設(shè)計(jì)為“黑箱黑箱”,實(shí)現(xiàn)細(xì)節(jié)隱藏在模,實(shí)現(xiàn)細(xì)節(jié)隱藏在模塊內(nèi)部,不讓模塊的使用者直接訪問。即信息封裝。塊內(nèi)部,不讓模塊的使用者直接訪問。即信息封裝。n模塊化:模塊化:有助于信息的隱蔽和抽象,有助于表示復(fù)雜的有助于信息的隱蔽和抽象,有助于表示復(fù)雜的系統(tǒng)。系統(tǒng)。n局部化:局部化:要求在一個(gè)物理模塊內(nèi)集中邏輯上相互關(guān)聯(lián)的要求在一個(gè)物理模塊內(nèi)集中邏輯上相互關(guān)聯(lián)的計(jì)算機(jī)資源,保證模塊之間有松散的耦合關(guān)系,模塊內(nèi)計(jì)算機(jī)資源,保證模塊之間有松散的耦合關(guān)系,模塊內(nèi)部具有較強(qiáng)的內(nèi)聚,這有助于控制分解的復(fù)雜性。部具有較強(qiáng)的內(nèi)聚,這有助于控制分解的復(fù)雜性。軟件工程的原則(二)n確定性:確定性:軟件開發(fā)

10、過程中所有概念的表達(dá)應(yīng)是確定的軟件開發(fā)過程中所有概念的表達(dá)應(yīng)是確定的、無歧義的、規(guī)范的。、無歧義的、規(guī)范的。n一致性:一致性:整個(gè)軟件系統(tǒng)的各個(gè)模塊應(yīng)使用一致的概念整個(gè)軟件系統(tǒng)的各個(gè)模塊應(yīng)使用一致的概念、符號(hào)和術(shù)語;程序內(nèi)外部接口應(yīng)保持一致,系統(tǒng)規(guī)、符號(hào)和術(shù)語;程序內(nèi)外部接口應(yīng)保持一致,系統(tǒng)規(guī)格說明與系統(tǒng)行為應(yīng)保持一致。格說明與系統(tǒng)行為應(yīng)保持一致。n完備性:完備性:軟件系統(tǒng)不丟失任何重要成分,完全實(shí)現(xiàn)系軟件系統(tǒng)不丟失任何重要成分,完全實(shí)現(xiàn)系統(tǒng)所需的功能。統(tǒng)所需的功能。n可驗(yàn)證性:可驗(yàn)證性:開發(fā)大型軟件系統(tǒng)需要對(duì)系統(tǒng)自頂向下逐開發(fā)大型軟件系統(tǒng)需要對(duì)系統(tǒng)自頂向下逐層分解。系統(tǒng)分解應(yīng)遵循容易檢查、測(cè)

11、評(píng)、評(píng)審的原層分解。系統(tǒng)分解應(yīng)遵循容易檢查、測(cè)評(píng)、評(píng)審的原則,以確保系統(tǒng)的正確性。則,以確保系統(tǒng)的正確性。4.軟件工作過程軟件工程過程軟件工程過程是把是把輸入輸入轉(zhuǎn)化為轉(zhuǎn)化為輸出輸出的一組彼此相的一組彼此相關(guān)的資源和活動(dòng)。關(guān)的資源和活動(dòng)。活動(dòng)活動(dòng)資源資源軟軟件件工工程程過過程程用戶用戶要求要求輸入輸入輸出輸出軟件軟件產(chǎn)品產(chǎn)品 主要包含主要包含4種基本活動(dòng):種基本活動(dòng):軟件規(guī)格說明、軟件開軟件規(guī)格說明、軟件開發(fā)、軟件確認(rèn)、軟件演進(jìn)。發(fā)、軟件確認(rèn)、軟件演進(jìn)。5.軟件生命周期n軟件生命周期軟件生命周期:軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維:軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程。護(hù)到停止使用退役

12、的過程。n軟件生命周期分為軟件生命周期分為3個(gè)時(shí)期共個(gè)時(shí)期共8個(gè)階段:個(gè)階段:(熟記)(熟記)n軟件定義軟件定義:包括問題定義、可行性研究、需求分析;:包括問題定義、可行性研究、需求分析;n軟件開發(fā)軟件開發(fā):包括概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試;:包括概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試;n軟件運(yùn)行維護(hù)軟件運(yùn)行維護(hù):即運(yùn)行維護(hù)階段。:即運(yùn)行維護(hù)階段。n軟件生命周期各個(gè)階段的活動(dòng)可以有重復(fù),執(zhí)行軟件生命周期各個(gè)階段的活動(dòng)可以有重復(fù),執(zhí)行時(shí)也可以有迭代。時(shí)也可以有迭代。n* 軟件生命周期中所花費(fèi)最多的階段是軟件生命周期中所花費(fèi)最多的階段是軟件運(yùn)軟件運(yùn)行維護(hù)階段行維護(hù)階段。 問題定義問題定義可行性研究可行性

13、研究需求分析需求分析概要設(shè)計(jì)概要設(shè)計(jì)詳細(xì)定義詳細(xì)定義實(shí)現(xiàn)實(shí)現(xiàn)測(cè)試測(cè)試使用和維護(hù)使用和維護(hù)退役退役軟件定義期軟件定義期軟件開發(fā)期軟件開發(fā)期軟件維護(hù)期軟件維護(hù)期6.軟件開發(fā)工具與開發(fā)環(huán)境n軟件開發(fā)工具軟件開發(fā)工具n軟件開發(fā)工具的產(chǎn)生、發(fā)展和完善促進(jìn)了軟件的開發(fā)速度和軟件開發(fā)工具的產(chǎn)生、發(fā)展和完善促進(jìn)了軟件的開發(fā)速度和質(zhì)量的提高。質(zhì)量的提高。n包括需求分析工具、設(shè)計(jì)工具、編碼工具、排錯(cuò)工具、測(cè)試包括需求分析工具、設(shè)計(jì)工具、編碼工具、排錯(cuò)工具、測(cè)試工具等。工具等。n軟件開發(fā)環(huán)境軟件開發(fā)環(huán)境n軟件開發(fā)環(huán)境是全面支持軟件開發(fā)全過程的軟件工具集合。軟件開發(fā)環(huán)境是全面支持軟件開發(fā)全過程的軟件工具集合。這些軟件

14、工具按照一定的方法或模式組合起來,支持軟件生這些軟件工具按照一定的方法或模式組合起來,支持軟件生命周期的各個(gè)階段和各項(xiàng)任務(wù)的完成。命周期的各個(gè)階段和各項(xiàng)任務(wù)的完成。n計(jì)算機(jī)輔助軟件工程計(jì)算機(jī)輔助軟件工程(CASE):將各種軟件工具、開發(fā)機(jī)器和:將各種軟件工具、開發(fā)機(jī)器和一個(gè)存放過程信息的中心數(shù)據(jù)庫組合起來,形成軟件工程環(huán)一個(gè)存放過程信息的中心數(shù)據(jù)庫組合起來,形成軟件工程環(huán)境。境。3.2 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法n目前使用最廣泛的軟件工程方法學(xué)是結(jié)構(gòu)化方法學(xué)和目前使用最廣泛的軟件工程方法學(xué)是結(jié)構(gòu)化方法學(xué)和面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蠓椒▽W(xué)。n結(jié)構(gòu)化方法的核心和基礎(chǔ)是結(jié)構(gòu)化程序設(shè)計(jì)理論。結(jié)構(gòu)化方法

15、的核心和基礎(chǔ)是結(jié)構(gòu)化程序設(shè)計(jì)理論。3.2.1 需求分析n需求分析需求分析是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。能、設(shè)計(jì)約束等方面的期望。n需求分析的需求分析的任務(wù)任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求是發(fā)現(xiàn)需求、求精、建模和定義需求的過程。的過程。n需求分析將創(chuàng)建所需的需求分析將創(chuàng)建所需的數(shù)據(jù)模型、功能模型和控制模數(shù)據(jù)模型、功能模型和控制模型型。n* 需求分析的任務(wù)就是導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型,解需求分析的任務(wù)就是導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型,解決決“做什么做什么”的問題。的問題。n* 需求分析一般分為需求獲取、需求分析、編寫需求需求分析一

16、般分為需求獲取、需求分析、編寫需求規(guī)格說明書和需求評(píng)審四個(gè)步驟進(jìn)行。規(guī)格說明書和需求評(píng)審四個(gè)步驟進(jìn)行。(熟記)(熟記)3.2.2需求分析方法n需求分析方法分為兩類:需求分析方法分為兩類:n結(jié)構(gòu)化需求分析方法結(jié)構(gòu)化需求分析方法n面向?qū)ο蟮姆治龇椒ǎ嫦驅(qū)ο蟮姆治龇椒ǎ∣OA,Object-Oriental Analysis Method) n從需求分析建模的特性來劃分,還可分為靜態(tài)分析方從需求分析建模的特性來劃分,還可分為靜態(tài)分析方法和動(dòng)態(tài)分析方法。法和動(dòng)態(tài)分析方法。3.2.3結(jié)構(gòu)化分析方法n結(jié)構(gòu)化分析方法是結(jié)構(gòu)化程序設(shè)計(jì)理論在軟件需求分結(jié)構(gòu)化分析方法是結(jié)構(gòu)化程序設(shè)計(jì)理論在軟件需求分析階段的應(yīng)用

17、。析階段的應(yīng)用。n結(jié)構(gòu)化分析結(jié)構(gòu)化分析就是使用數(shù)據(jù)流圖(就是使用數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典()、數(shù)據(jù)字典(DD)、結(jié)構(gòu)化英語、判定表和判定樹的工具,來建立)、結(jié)構(gòu)化英語、判定表和判定樹的工具,來建立一種新的、稱為結(jié)構(gòu)化規(guī)格說明的目標(biāo)文件。一種新的、稱為結(jié)構(gòu)化規(guī)格說明的目標(biāo)文件。n結(jié)構(gòu)化分析方法的結(jié)構(gòu)化分析方法的實(shí)質(zhì)實(shí)質(zhì):著眼于數(shù)據(jù)流,:著眼于數(shù)據(jù)流,自頂向下自頂向下,逐層分解逐層分解,建立系統(tǒng)建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。字典為主要工具,建立系統(tǒng)的邏輯模型。結(jié)構(gòu)化分析的常用工具1. 數(shù)據(jù)流圖(數(shù)據(jù)流圖(DFD):):以圖形

18、的方式描繪數(shù)據(jù)在系統(tǒng)以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動(dòng)和處理的過程,它反映了系統(tǒng)必須完成的中流動(dòng)和處理的過程,它反映了系統(tǒng)必須完成的邏輯功能,是結(jié)構(gòu)化分析方法中用于表示系統(tǒng)邏邏輯功能,是結(jié)構(gòu)化分析方法中用于表示系統(tǒng)邏輯模型的一種工具。輯模型的一種工具。 辦理取款手續(xù)的數(shù)據(jù)流圖辦理取款手續(xù)的數(shù)據(jù)流圖數(shù)據(jù)流圖的基本圖形元素n加工(轉(zhuǎn)換):輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出。加工(轉(zhuǎn)換):輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出。n數(shù)據(jù)流:沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名數(shù)據(jù)流:沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名。n存儲(chǔ)文件(數(shù)據(jù)源):表示處理過程中存放各種數(shù)據(jù)的文件。存儲(chǔ)文件(數(shù)據(jù)源):表示

19、處理過程中存放各種數(shù)據(jù)的文件。n源,潭:表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實(shí)體。源,潭:表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實(shí)體。加工數(shù)據(jù)流存儲(chǔ)文件源、潭2.數(shù)據(jù)字典n數(shù)據(jù)字典(數(shù)據(jù)字典(DD):):對(duì)所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一對(duì)所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個(gè)有組織的列表,以及精確的、嚴(yán)格的定義,使得用個(gè)有組織的列表,以及精確的、嚴(yán)格的定義,使得用戶和系統(tǒng)分析員對(duì)于輸入、輸出、存儲(chǔ)成分和中間計(jì)戶和系統(tǒng)分析員對(duì)于輸入、輸出、存儲(chǔ)成分和中間計(jì)算結(jié)果有共同的理解。算結(jié)果有共同的理解。n* 數(shù)據(jù)字典的作用是對(duì)數(shù)據(jù)流圖中出現(xiàn)的被命名的圖數(shù)據(jù)字典的作用是對(duì)數(shù)據(jù)流圖中出現(xiàn)的被命名的圖形元素的確切解釋。形元素

20、的確切解釋。n* 數(shù)據(jù)字典是結(jié)構(gòu)化分析方法的核心。數(shù)據(jù)字典是結(jié)構(gòu)化分析方法的核心。3.軟件需求規(guī)格說明書(SRS)n軟件需求規(guī)格說明書是需求分析階段的軟件需求規(guī)格說明書是需求分析階段的最后成果最后成果,通,通過建立完整的信息描述、詳細(xì)的功能和行為描述、性過建立完整的信息描述、詳細(xì)的功能和行為描述、性能需求和設(shè)計(jì)約束的說明、合適的驗(yàn)收標(biāo)準(zhǔn),給出對(duì)能需求和設(shè)計(jì)約束的說明、合適的驗(yàn)收標(biāo)準(zhǔn),給出對(duì)目標(biāo)軟件的各種需求。目標(biāo)軟件的各種需求。n軟件需求規(guī)格說明書應(yīng)具有以下特點(diǎn):正確性、無歧軟件需求規(guī)格說明書應(yīng)具有以下特點(diǎn):正確性、無歧義性、完整性、可驗(yàn)證性、一致性、可理解性、可修義性、完整性、可驗(yàn)證性、一致

21、性、可理解性、可修改性、可追蹤性。改性、可追蹤性。3.3 結(jié)構(gòu)化設(shè)計(jì)方法3.3.1 基本概念基本概念n* 需求分析主要解決需求分析主要解決“做什么做什么”的問題,而軟件設(shè)計(jì)的問題,而軟件設(shè)計(jì)主要解決主要解決“怎么做怎么做”的問題。的問題。n一旦軟件需求確定之后,就進(jìn)入開發(fā)階段。開發(fā)階段一旦軟件需求確定之后,就進(jìn)入開發(fā)階段。開發(fā)階段由三個(gè)互相關(guān)聯(lián)的步驟組成:設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試。由三個(gè)互相關(guān)聯(lián)的步驟組成:設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試。n軟件設(shè)計(jì)是開發(fā)階段最重要的步驟。軟件設(shè)計(jì)是開發(fā)階段最重要的步驟。n按工程管理角度可分為兩步:按工程管理角度可分為兩步:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。n從技術(shù)觀點(diǎn)來看,軟件

22、設(shè)計(jì)包括軟件從技術(shù)觀點(diǎn)來看,軟件設(shè)計(jì)包括軟件結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)、過程設(shè)計(jì)設(shè)計(jì)、接口設(shè)計(jì)、過程設(shè)計(jì)。軟件設(shè)計(jì)的基本原理n軟件設(shè)計(jì)的基本原理包括:軟件設(shè)計(jì)的基本原理包括:1)抽象)抽象2)模塊化)模塊化3)信息隱蔽)信息隱蔽4)模塊獨(dú)立性:軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的)模塊獨(dú)立性:軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他的模塊的接口是簡(jiǎn)單的。子功能,而和軟件系統(tǒng)中其他的模塊的接口是簡(jiǎn)單的。* 模塊分解的主要指導(dǎo)思想是模塊分解的主要指導(dǎo)思想是信息隱蔽信息隱蔽和和模塊獨(dú)立性模塊獨(dú)立性。n模塊的模塊的耦合性耦合性和和內(nèi)聚性內(nèi)聚性是衡量軟件的模

23、塊獨(dú)立性的兩是衡量軟件的模塊獨(dú)立性的兩個(gè)定性指標(biāo)。一個(gè)設(shè)計(jì)良好的軟件系統(tǒng)應(yīng)具有個(gè)定性指標(biāo)。一個(gè)設(shè)計(jì)良好的軟件系統(tǒng)應(yīng)具有高內(nèi)聚高內(nèi)聚、低耦合、低耦合的特征。的特征。 3.3.2概要設(shè)計(jì)n概要設(shè)計(jì)又稱總體設(shè)計(jì)。概要設(shè)計(jì)又稱總體設(shè)計(jì)。n軟件概要設(shè)計(jì)的基本任務(wù)軟件概要設(shè)計(jì)的基本任務(wù)是:是:(熟記)(熟記)1)設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu);)設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu);2)數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計(jì);)數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計(jì);3)編寫概要設(shè)計(jì)文檔;)編寫概要設(shè)計(jì)文檔;4)概要設(shè)計(jì)文檔評(píng)審。)概要設(shè)計(jì)文檔評(píng)審。概要概要設(shè)計(jì)設(shè)計(jì)設(shè)計(jì)設(shè)計(jì)文檔文檔設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu)設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫編寫概要設(shè)計(jì)文檔編寫概

24、要設(shè)計(jì)文檔評(píng)審評(píng)審概要設(shè)計(jì)說明書概要設(shè)計(jì)說明書:就是根據(jù)需求分析階段產(chǎn)生的圖書管:就是根據(jù)需求分析階段產(chǎn)生的圖書管理系統(tǒng)的需求規(guī)格,擬定相應(yīng)的系統(tǒng)說明書,建立管理理系統(tǒng)的需求規(guī)格,擬定相應(yīng)的系統(tǒng)說明書,建立管理系統(tǒng)的總體結(jié)構(gòu)。此份文檔將確定系統(tǒng)中每個(gè)程序是由系統(tǒng)的總體結(jié)構(gòu)。此份文檔將確定系統(tǒng)中每個(gè)程序是由哪些模塊組成,及各個(gè)模塊的功能;確定模塊相互間的哪些模塊組成,及各個(gè)模塊的功能;確定模塊相互間的關(guān)系;設(shè)計(jì)全局?jǐn)?shù)據(jù)庫和數(shù)據(jù)結(jié)構(gòu);制定測(cè)試計(jì)劃;審關(guān)系;設(shè)計(jì)全局?jǐn)?shù)據(jù)庫和數(shù)據(jù)結(jié)構(gòu);制定測(cè)試計(jì)劃;審核和復(fù)審。核和復(fù)審。結(jié)構(gòu)圖(一)n常用的軟件結(jié)構(gòu)設(shè)計(jì)工具是結(jié)構(gòu)圖常用的軟件結(jié)構(gòu)設(shè)計(jì)工具是結(jié)構(gòu)圖(SC,

25、Stucture Chart),也稱程序結(jié)構(gòu)圖。,也稱程序結(jié)構(gòu)圖。n模塊用一個(gè)矩形表示;箭頭(或直線)表示模塊間的模塊用一個(gè)矩形表示;箭頭(或直線)表示模塊間的調(diào)用關(guān)系;用帶注釋的箭頭表示模塊調(diào)用過程中來回調(diào)用關(guān)系;用帶注釋的箭頭表示模塊調(diào)用過程中來回傳遞的信息。還可用帶實(shí)心圓的箭頭表示傳遞的是控傳遞的信息。還可用帶實(shí)心圓的箭頭表示傳遞的是控制信息,空心圓箭心表示傳遞的是數(shù)據(jù)信息。制信息,空心圓箭心表示傳遞的是數(shù)據(jù)信息。 一般模塊一般模塊數(shù)據(jù)信息數(shù)據(jù)信息控制信息控制信息結(jié)構(gòu)圖(二)n經(jīng)常使用的結(jié)構(gòu)圖有四種模塊類型,分別是:經(jīng)常使用的結(jié)構(gòu)圖有四種模塊類型,分別是:n傳入模塊:傳入模塊:從下屬模塊

26、取得數(shù)據(jù),經(jīng)處理再將其傳送給上級(jí)從下屬模塊取得數(shù)據(jù),經(jīng)處理再將其傳送給上級(jí)模塊。模塊。n傳出模塊:傳出模塊:從上級(jí)模塊取得數(shù)據(jù),經(jīng)處理再將其傳送給下屬從上級(jí)模塊取得數(shù)據(jù),經(jīng)處理再將其傳送給下屬模塊。模塊。n變換模塊:變換模塊:從上級(jí)模塊取得數(shù)據(jù),進(jìn)行特定的處理,轉(zhuǎn)換成從上級(jí)模塊取得數(shù)據(jù),進(jìn)行特定的處理,轉(zhuǎn)換成其他形式,再傳送給上級(jí)模塊。其他形式,再傳送給上級(jí)模塊。n協(xié)調(diào)模塊:協(xié)調(diào)模塊:對(duì)所有下屬模塊進(jìn)行協(xié)調(diào)和管理的模塊。對(duì)所有下屬模塊進(jìn)行協(xié)調(diào)和管理的模塊。程序結(jié)構(gòu)圖的例圖及有關(guān)術(shù)語 n深度:表示控制的層深度:表示控制的層數(shù)。數(shù)。n寬度:整體控制跨度寬度:整體控制跨度(最大模塊數(shù)的層)(最大模塊

27、數(shù)的層)的表示。的表示。n扇入:調(diào)用一個(gè)給定扇入:調(diào)用一個(gè)給定模塊的模塊個(gè)數(shù)。模塊的模塊個(gè)數(shù)。n扇出:一個(gè)模塊直接扇出:一個(gè)模塊直接調(diào)用的其他模塊數(shù)。調(diào)用的其他模塊數(shù)。面向數(shù)據(jù)流的設(shè)計(jì)方法n面向數(shù)據(jù)流的設(shè)計(jì)方法定義了一些不同的映射方法,面向數(shù)據(jù)流的設(shè)計(jì)方法定義了一些不同的映射方法,利用這些方法可以利用這些方法可以把數(shù)據(jù)流圖(把數(shù)據(jù)流圖(DFD)變換成結(jié)構(gòu)圖)變換成結(jié)構(gòu)圖(SC)表示軟件的結(jié)構(gòu)。表示軟件的結(jié)構(gòu)。n數(shù)據(jù)流的類型可以分為兩種類型:數(shù)據(jù)流的類型可以分為兩種類型:變換型變換型和和事務(wù)型事務(wù)型。n變換型:變換型數(shù)據(jù)處理問題的工作過程大致分為三步,即變換型:變換型數(shù)據(jù)處理問題的工作過程大致分

28、為三步,即取得數(shù)據(jù)、變換數(shù)據(jù)和輸出數(shù)據(jù)。變換型系統(tǒng)結(jié)構(gòu)圖由輸入取得數(shù)據(jù)、變換數(shù)據(jù)和輸出數(shù)據(jù)。變換型系統(tǒng)結(jié)構(gòu)圖由輸入、變換中心、輸出三部分組成。、變換中心、輸出三部分組成。n事務(wù)型:事務(wù)型數(shù)據(jù)處理問題的工作機(jī)理是接受一項(xiàng)事務(wù),事務(wù)型:事務(wù)型數(shù)據(jù)處理問題的工作機(jī)理是接受一項(xiàng)事務(wù),根據(jù)事務(wù)處理的特點(diǎn)和性質(zhì),選擇分派一個(gè)適當(dāng)?shù)奶幚韱卧鶕?jù)事務(wù)處理的特點(diǎn)和性質(zhì),選擇分派一個(gè)適當(dāng)?shù)奶幚韱卧?,然后給出結(jié)果。,然后給出結(jié)果。3.3.3詳細(xì)設(shè)計(jì)n詳細(xì)設(shè)計(jì)是為軟件結(jié)構(gòu)圖中的每一個(gè)模塊確定實(shí)現(xiàn)算詳細(xì)設(shè)計(jì)是為軟件結(jié)構(gòu)圖中的每一個(gè)模塊確定實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用某種選定的表達(dá)工具表示算法法和局部數(shù)據(jù)結(jié)構(gòu),用某種選定的

29、表達(dá)工具表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。n* 詳細(xì)設(shè)計(jì)的任務(wù)是確定實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),詳細(xì)設(shè)計(jì)的任務(wù)是確定實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),不同于編碼或編程。不同于編碼或編程。n常用的過程設(shè)計(jì)(即詳細(xì)設(shè)計(jì))工具有以下幾種:常用的過程設(shè)計(jì)(即詳細(xì)設(shè)計(jì))工具有以下幾種:n圖形工具:程序流程圖、圖形工具:程序流程圖、N-S(方盒圖)、(方盒圖)、PAD(問題分析圖(問題分析圖)和)和HIPO(層次圖(層次圖+輸入輸入/處理處理/輸出圖)。輸出圖)。n表格工具:判定表。表格工具:判定表。n語言工具:語言工具:PDL。1.程序流程圖n 一個(gè)加工步驟;一個(gè)加工步驟; 一個(gè)邏輯條件;一個(gè)邏輯條件; 控

30、制流。控制流。 A B A B A exp exp (a) (b) (c) 順序結(jié)構(gòu)順序結(jié)構(gòu) 選擇結(jié)構(gòu)選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) T F F T 2.N-S圖 處理處理 1 處理處理 2 處理處理 3 else 部分部分 條件條件 F T else 部分部分 case 條件條件 值值 1 值值 2 值值 n case 1 部分部分 case 2 部分部分 case n 部分部分 (a) 順序順序 (b) if-then-else 型分型型分型 (c) case 型多分支型多分支 循環(huán)條件循環(huán)條件 do-while 部分部分 repeat - until 部分部分 循環(huán)條件循環(huán)條件 子程序子程序

31、 P (d) 循環(huán)循環(huán) (e) 調(diào)用子程調(diào)用子程 P 3.PAD圖 P2 P2 P2 P2 Pn P1 while C C L1 L2 Ln X= (a) 順序順序 (b) 選擇選擇 (c) case多型分支多型分支 P P until C (d) while型循環(huán)型循環(huán) (e) until 型循環(huán)型循環(huán) P2 4.PDLnProcedure Design Language ,過程設(shè)計(jì)語言。,過程設(shè)計(jì)語言。n簡(jiǎn)稱偽碼,它是用正文形式表示數(shù)據(jù)和處理過程的設(shè)簡(jiǎn)稱偽碼,它是用正文形式表示數(shù)據(jù)和處理過程的設(shè)計(jì)工具。計(jì)工具。n基本控制結(jié)構(gòu)的常用詞匯:基本控制結(jié)構(gòu)的常用詞匯:n選擇:選擇:IF/THEN/

32、ELSE/ENDIFn循環(huán):循環(huán):DO WHILE/ENDDO, REPEAT UNTIL/ENDREPEATn分支:分支:CASE_OF/WHEN/SELECT/ENDCASE3.4 軟件測(cè)試n軟件測(cè)試軟件測(cè)試就是在軟件投入運(yùn)行之前,盡可能多地發(fā)現(xiàn)就是在軟件投入運(yùn)行之前,盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。軟件中的錯(cuò)誤。n軟件測(cè)試是保證軟件質(zhì)量、可靠性的關(guān)鍵步驟。是對(duì)軟件測(cè)試是保證軟件質(zhì)量、可靠性的關(guān)鍵步驟。是對(duì)軟件規(guī)格說明、設(shè)計(jì)和編碼的最后復(fù)審。軟件規(guī)格說明、設(shè)計(jì)和編碼的最后復(fù)審。n通常,軟件測(cè)試的工作量占軟件開發(fā)總工作量的通常,軟件測(cè)試的工作量占軟件開發(fā)總工作量的40%以上。以上。3.4.1軟件

33、測(cè)試的目的和準(zhǔn)則n軟件測(cè)試的目的軟件測(cè)試的目的n測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程。測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程。n好的測(cè)試用例能找到迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤。好的測(cè)試用例能找到迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤。n一次成功的測(cè)試是能發(fā)現(xiàn)至今為止尚未發(fā)現(xiàn)的錯(cuò)誤。一次成功的測(cè)試是能發(fā)現(xiàn)至今為止尚未發(fā)現(xiàn)的錯(cuò)誤。n* 盡可能地多發(fā)現(xiàn)程序中的錯(cuò)誤,不能也不可能證明盡可能地多發(fā)現(xiàn)程序中的錯(cuò)誤,不能也不可能證明程序沒有錯(cuò)誤。程序沒有錯(cuò)誤。軟件測(cè)試的準(zhǔn)則n所有測(cè)試都應(yīng)追溯到用戶需求。所有測(cè)試都應(yīng)追溯到用戶需求。n在測(cè)試之前制定測(cè)試計(jì)劃,并嚴(yán)格執(zhí)行。在測(cè)試之前制定測(cè)試計(jì)劃,并嚴(yán)格執(zhí)行。n充分注意測(cè)試中

34、的群集現(xiàn)象。充分注意測(cè)試中的群集現(xiàn)象。n群集現(xiàn)象群集現(xiàn)象是指在測(cè)試中發(fā)現(xiàn)缺陷越多的地方,存在的未被發(fā)是指在測(cè)試中發(fā)現(xiàn)缺陷越多的地方,存在的未被發(fā)現(xiàn)的缺陷也就越多。現(xiàn)的缺陷也就越多。 n避免由程序的編寫者測(cè)試自己的程序。避免由程序的編寫者測(cè)試自己的程序。n不可能進(jìn)行窮舉測(cè)試。不可能進(jìn)行窮舉測(cè)試。n妥善保存測(cè)試計(jì)劃、測(cè)試用例、出錯(cuò)統(tǒng)計(jì)和最終分析妥善保存測(cè)試計(jì)劃、測(cè)試用例、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便。報(bào)告,為維護(hù)提供方便。3.4.2軟件測(cè)試方法n依據(jù)軟件是否需要執(zhí)行,分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。依據(jù)軟件是否需要執(zhí)行,分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。n依據(jù)功能劃分,分為白盒測(cè)試和黑盒測(cè)試。依據(jù)功能劃分

35、,分為白盒測(cè)試和黑盒測(cè)試。n靜態(tài)測(cè)試:靜態(tài)測(cè)試:包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量。度量。不實(shí)際運(yùn)行軟件,主要通過人工進(jìn)行不實(shí)際運(yùn)行軟件,主要通過人工進(jìn)行。n動(dòng)態(tài)測(cè)試:動(dòng)態(tài)測(cè)試:又稱上機(jī)測(cè)試,主要包括又稱上機(jī)測(cè)試,主要包括白盒測(cè)試白盒測(cè)試方法和方法和黑盒測(cè)試黑盒測(cè)試方法。方法。 3.4.3白盒測(cè)試n白盒測(cè)試是把程序看成裝在一只透明的白盒子里,測(cè)白盒測(cè)試是把程序看成裝在一只透明的白盒子里,測(cè)試者完全了解程序的結(jié)構(gòu)和處理過程。試者完全了解程序的結(jié)構(gòu)和處理過程。n白盒測(cè)試方法也稱為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。它允白盒測(cè)試方法也稱為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。它允許測(cè)

36、試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息來設(shè)許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息來設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序的邏輯路徑進(jìn)行測(cè)試。計(jì)或選擇測(cè)試用例,對(duì)程序的邏輯路徑進(jìn)行測(cè)試。n它在程序內(nèi)部進(jìn)行,主要用于完成軟件內(nèi)部操縱的驗(yàn)它在程序內(nèi)部進(jìn)行,主要用于完成軟件內(nèi)部操縱的驗(yàn)證。證。白盒測(cè)試的基本原則n保證所測(cè)模塊中每一獨(dú)立路徑至少執(zhí)行一次;保證所保證所測(cè)模塊中每一獨(dú)立路徑至少執(zhí)行一次;保證所測(cè)模塊所有判斷的每一分支至少執(zhí)行一次;保證所測(cè)測(cè)模塊所有判斷的每一分支至少執(zhí)行一次;保證所測(cè)模塊每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行模塊每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次;驗(yàn)證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)

37、的有效性。一次;驗(yàn)證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。n白盒測(cè)試的主要技術(shù)有白盒測(cè)試的主要技術(shù)有邏輯覆蓋測(cè)試、基本路徑測(cè)試邏輯覆蓋測(cè)試、基本路徑測(cè)試等。等。1.邏輯覆蓋測(cè)試n邏輯覆蓋泛指一系列以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的測(cè)試用例設(shè)邏輯覆蓋泛指一系列以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的測(cè)試用例設(shè)計(jì)技術(shù)。通常程序中的邏輯表示有判斷、分支、條件等幾種表示計(jì)技術(shù)。通常程序中的邏輯表示有判斷、分支、條件等幾種表示方法。方法。 n語句覆蓋:語句覆蓋:選擇足夠的測(cè)試用例,使得程序中每一個(gè)語句至少都能選擇足夠的測(cè)試用例,使得程序中每一個(gè)語句至少都能被執(zhí)行一次。被執(zhí)行一次。n路徑覆蓋:路徑覆蓋:執(zhí)行足夠的測(cè)試用例,使程序中所有

38、的可能的路徑都至執(zhí)行足夠的測(cè)試用例,使程序中所有的可能的路徑都至少經(jīng)歷一次。少經(jīng)歷一次。n判定覆蓋:判定覆蓋:使設(shè)計(jì)的測(cè)試用例保證程序中每個(gè)判斷的每個(gè)取值分支使設(shè)計(jì)的測(cè)試用例保證程序中每個(gè)判斷的每個(gè)取值分支(T或或F)至少經(jīng)歷一次。)至少經(jīng)歷一次。n條件覆蓋:條件覆蓋:設(shè)計(jì)的測(cè)試用例保證程序中每個(gè)判斷的每個(gè)條件的可能設(shè)計(jì)的測(cè)試用例保證程序中每個(gè)判斷的每個(gè)條件的可能取值至少執(zhí)行一次。取值至少執(zhí)行一次。n判斷判斷-條件覆蓋:條件覆蓋:設(shè)計(jì)足夠的測(cè)試用例,使判斷中每個(gè)條件的所有可設(shè)計(jì)足夠的測(cè)試用例,使判斷中每個(gè)條件的所有可能取值至少執(zhí)行一次,同時(shí)每個(gè)判斷的所有可能取值分支至少執(zhí)行能取值至少執(zhí)行一次,

39、同時(shí)每個(gè)判斷的所有可能取值分支至少執(zhí)行一次。一次。n* 邏輯覆蓋的強(qiáng)度依次是:語句覆蓋邏輯覆蓋的強(qiáng)度依次是:語句覆蓋路徑覆蓋路徑覆蓋判定覆蓋判定覆蓋條件條件覆蓋覆蓋判斷判斷-條件覆蓋。條件覆蓋。2.基本路徑測(cè)試n其思想和步驟是:其思想和步驟是:根據(jù)軟件過程性描述中的控制流程確定程序的環(huán)根據(jù)軟件過程性描述中的控制流程確定程序的環(huán)路復(fù)雜性度量,用此度量定義基本路徑集合,并由此路復(fù)雜性度量,用此度量定義基本路徑集合,并由此導(dǎo)出一組測(cè)試用例,對(duì)每一條獨(dú)立執(zhí)行路徑進(jìn)行測(cè)試導(dǎo)出一組測(cè)試用例,對(duì)每一條獨(dú)立執(zhí)行路徑進(jìn)行測(cè)試。n環(huán)路復(fù)雜度環(huán)路復(fù)雜度=程序流程圖中的判斷框個(gè)數(shù)程序流程圖中的判斷框個(gè)數(shù)+13.4.3

40、黑盒測(cè)試n* 白盒測(cè)試在測(cè)試過程的早期階段進(jìn)行,而黑盒測(cè)試白盒測(cè)試在測(cè)試過程的早期階段進(jìn)行,而黑盒測(cè)試主要用于軟件的主要用于軟件的確認(rèn)測(cè)試確認(rèn)測(cè)試。n黑盒測(cè)試是把程序看成一只黑盒子,測(cè)試者完全不了黑盒測(cè)試是把程序看成一只黑盒子,測(cè)試者完全不了解,或不考慮程序的結(jié)構(gòu)和處理過程。解,或不考慮程序的結(jié)構(gòu)和處理過程。n黑盒測(cè)試方法也稱為功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試。黑盒黑盒測(cè)試方法也稱為功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試。黑盒測(cè)試是對(duì)軟件已經(jīng)實(shí)現(xiàn)的功能測(cè)試是對(duì)軟件已經(jīng)實(shí)現(xiàn)的功能是否滿足需求(需求規(guī)是否滿足需求(需求規(guī)格說明書)格說明書)進(jìn)行測(cè)試和驗(yàn)證。進(jìn)行測(cè)試和驗(yàn)證。n黑盒測(cè)試不關(guān)心程序內(nèi)部的邏輯,只是根據(jù)黑盒測(cè)試不關(guān)

41、心程序內(nèi)部的邏輯,只是根據(jù)程序的功程序的功能說明能說明來設(shè)計(jì)測(cè)試用例。來設(shè)計(jì)測(cè)試用例。n* 主要方法有主要方法有等價(jià)類劃分法、邊界值分析法、錯(cuò)誤推等價(jià)類劃分法、邊界值分析法、錯(cuò)誤推測(cè)法測(cè)法等。等。常用黑盒測(cè)試方法n等價(jià)類劃分法:等價(jià)類劃分法:這是一種典型的黑盒測(cè)試方法,它是這是一種典型的黑盒測(cè)試方法,它是將程序的所有可能的輸入數(shù)據(jù)劃分成若干部分(及若將程序的所有可能的輸入數(shù)據(jù)劃分成若干部分(及若干等價(jià)類),然后從每個(gè)等價(jià)類中選取數(shù)據(jù)作為測(cè)試干等價(jià)類),然后從每個(gè)等價(jià)類中選取數(shù)據(jù)作為測(cè)試用例。用例。n邊界值分析法:邊界值分析法:它是對(duì)各種輸入、輸出范圍的邊界情它是對(duì)各種輸入、輸出范圍的邊界情況設(shè)

42、計(jì)測(cè)試用例的方法。況設(shè)計(jì)測(cè)試用例的方法。n錯(cuò)誤推測(cè)法:錯(cuò)誤推測(cè)法:人們可以靠經(jīng)驗(yàn)和直覺推測(cè)程序中可能人們可以靠經(jīng)驗(yàn)和直覺推測(cè)程序中可能存在的各種錯(cuò)誤,從而有針對(duì)性地編寫檢查這些錯(cuò)誤存在的各種錯(cuò)誤,從而有針對(duì)性地編寫檢查這些錯(cuò)誤的用例。的用例。 3.4.5軟件測(cè)試的實(shí)施n軟件測(cè)試過程一般按軟件測(cè)試過程一般按4個(gè)步驟進(jìn)行:個(gè)步驟進(jìn)行:?jiǎn)卧獪y(cè)試、集成測(cè)單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。 (熟記)(熟記)1.單元測(cè)試單元測(cè)試n單元測(cè)試是對(duì)軟件設(shè)計(jì)的最小單位單元測(cè)試是對(duì)軟件設(shè)計(jì)的最小單位模塊(程序單模塊(程序單元)進(jìn)行正確性檢測(cè)的測(cè)試,目的是發(fā)現(xiàn)各模塊內(nèi)部元)進(jìn)行正確性檢測(cè)的

43、測(cè)試,目的是發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種錯(cuò)誤。在可能存在的各種錯(cuò)誤。在編碼階段編碼階段進(jìn)行。進(jìn)行。n單元測(cè)試根據(jù)單元測(cè)試根據(jù)程序的內(nèi)部結(jié)構(gòu)程序的內(nèi)部結(jié)構(gòu)來設(shè)計(jì)測(cè)試用例,其依來設(shè)計(jì)測(cè)試用例,其依據(jù)是據(jù)是詳細(xì)設(shè)計(jì)說明書和源程序詳細(xì)設(shè)計(jì)說明書和源程序。單元測(cè)試的技術(shù)可以。單元測(cè)試的技術(shù)可以采用靜態(tài)分析和動(dòng)態(tài)測(cè)試。對(duì)動(dòng)態(tài)測(cè)試通常以采用靜態(tài)分析和動(dòng)態(tài)測(cè)試。對(duì)動(dòng)態(tài)測(cè)試通常以白盒測(cè)白盒測(cè)試試為主,輔之以黑盒測(cè)試。為主,輔之以黑盒測(cè)試。單元測(cè)試n單元測(cè)試的內(nèi)容包括:模塊接口測(cè)試、局部數(shù)據(jù)結(jié)構(gòu)單元測(cè)試的內(nèi)容包括:模塊接口測(cè)試、局部數(shù)據(jù)結(jié)構(gòu)測(cè)試、錯(cuò)誤處理測(cè)試和邊界測(cè)試。測(cè)試、錯(cuò)誤處理測(cè)試和邊界測(cè)試。n* 在進(jìn)行單

44、元測(cè)試時(shí),要用一些輔助模塊去模擬與被在進(jìn)行單元測(cè)試時(shí),要用一些輔助模塊去模擬與被測(cè)模塊相聯(lián)系的其他模塊,即為被測(cè)模塊設(shè)計(jì)和搭建測(cè)模塊相聯(lián)系的其他模塊,即為被測(cè)模塊設(shè)計(jì)和搭建驅(qū)動(dòng)模塊和樁模塊。驅(qū)動(dòng)模塊和樁模塊。n驅(qū)動(dòng)模塊相當(dāng)于被測(cè)模塊的主程序,驅(qū)動(dòng)模塊相當(dāng)于被測(cè)模塊的主程序,它接收測(cè)試數(shù)據(jù),并傳給被測(cè)模塊,它接收測(cè)試數(shù)據(jù),并傳給被測(cè)模塊,輸出實(shí)際測(cè)試結(jié)果;輸出實(shí)際測(cè)試結(jié)果;n樁模塊是模擬其他被調(diào)用模塊,不樁模塊是模擬其他被調(diào)用模塊,不必將子模塊的所有功能帶入。必將子模塊的所有功能帶入。驅(qū)動(dòng)模塊驅(qū)動(dòng)模塊被測(cè)模塊被測(cè)模塊樁模塊樁模塊1 1樁模塊樁模塊2 2樁模塊樁模塊3 32.集成測(cè)試n集成測(cè)試是測(cè)

45、試和組裝軟件的過程,它是把模塊在按集成測(cè)試是測(cè)試和組裝軟件的過程,它是把模塊在按照設(shè)計(jì)要求組裝起來的同時(shí)進(jìn)行測(cè)試,主要目的是發(fā)照設(shè)計(jì)要求組裝起來的同時(shí)進(jìn)行測(cè)試,主要目的是發(fā)現(xiàn)與現(xiàn)與接口有關(guān)接口有關(guān)的錯(cuò)誤。的錯(cuò)誤。n集成測(cè)試主要發(fā)現(xiàn)設(shè)計(jì)階段產(chǎn)生的錯(cuò)誤,其依據(jù)是集成測(cè)試主要發(fā)現(xiàn)設(shè)計(jì)階段產(chǎn)生的錯(cuò)誤,其依據(jù)是概概要設(shè)計(jì)說明書要設(shè)計(jì)說明書。通常采用黑盒測(cè)試。通常采用黑盒測(cè)試。n集成測(cè)試所涉及的內(nèi)容包括:集成測(cè)試所涉及的內(nèi)容包括:軟件單元的接口測(cè)試、軟件單元的接口測(cè)試、全局?jǐn)?shù)據(jù)結(jié)構(gòu)測(cè)試、邊界條件全局?jǐn)?shù)據(jù)結(jié)構(gòu)測(cè)試、邊界條件和和非法輸入的測(cè)試非法輸入的測(cè)試等。等。集成測(cè)試n集成測(cè)試通常采用兩種方式:集成測(cè)試通

46、常采用兩種方式:n非增量方式組裝:非增量方式組裝:也稱為一次性組裝方式。首先對(duì)每個(gè)模塊也稱為一次性組裝方式。首先對(duì)每個(gè)模塊分別進(jìn)行模塊測(cè)試,然后再把所有模塊組裝在一起進(jìn)行測(cè)試分別進(jìn)行模塊測(cè)試,然后再把所有模塊組裝在一起進(jìn)行測(cè)試,最終得到要求的軟件系統(tǒng)。,最終得到要求的軟件系統(tǒng)。n增量方式組裝:增量方式組裝:又稱漸增式集成方式。首先對(duì)一個(gè)個(gè)模塊進(jìn)又稱漸增式集成方式。首先對(duì)一個(gè)個(gè)模塊進(jìn)行模塊測(cè)試,然后將這些模塊逐步組裝成較大的系統(tǒng),在組行模塊測(cè)試,然后將這些模塊逐步組裝成較大的系統(tǒng),在組裝的過程中邊連接邊測(cè)試,以發(fā)現(xiàn)連接過程中產(chǎn)生的問題。裝的過程中邊連接邊測(cè)試,以發(fā)現(xiàn)連接過程中產(chǎn)生的問題。最后通過

47、增殖逐步組裝成要求的軟件系統(tǒng)。增量方式組裝又最后通過增殖逐步組裝成要求的軟件系統(tǒng)。增量方式組裝又包括自頂向下、自底向上、自頂向下與自底向上相結(jié)合等三包括自頂向下、自底向上、自頂向下與自底向上相結(jié)合等三種方式。種方式。3.確認(rèn)測(cè)試n確認(rèn)測(cè)試的任務(wù)是驗(yàn)證確認(rèn)測(cè)試的任務(wù)是驗(yàn)證軟件的有效性軟件的有效性,即驗(yàn)證軟件的,即驗(yàn)證軟件的功能和性能及其他特性是否與用戶的要求一致。功能和性能及其他特性是否與用戶的要求一致。n確認(rèn)測(cè)試的主要依據(jù)是確認(rèn)測(cè)試的主要依據(jù)是軟件需求規(guī)格說明書軟件需求規(guī)格說明書。n確認(rèn)測(cè)試主要運(yùn)用確認(rèn)測(cè)試主要運(yùn)用黑盒測(cè)試法黑盒測(cè)試法。4.系統(tǒng)測(cè)試n系統(tǒng)測(cè)試的目的在于通過與系統(tǒng)的需求定義進(jìn)行比較系統(tǒng)測(cè)試的目的在于通過與系統(tǒng)的需求定義進(jìn)行比較,發(fā)現(xiàn)軟件與系統(tǒng)定義不符合或與之矛盾的地方。,發(fā)現(xiàn)軟件與系統(tǒng)定義不符合或與之矛盾的地方。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)論