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

下載本文檔

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

文檔簡介

1、軟件工程基礎(chǔ)1 軟件工程基礎(chǔ)2 第3章 軟件工程基礎(chǔ)軟件工程基礎(chǔ) 軟件工程基礎(chǔ)3 3.1 軟件工程基本概念軟件工程基本概念 1、軟件的相關(guān)概念、軟件的相關(guān)概念 計算機(jī)軟件是包括計算機(jī)軟件是包括程序程序、數(shù)據(jù)數(shù)據(jù)及及相關(guān)文檔相關(guān)文檔的完的完 整集合。整集合。 軟件的特點(diǎn)包括:軟件的特點(diǎn)包括: 軟件是一種軟件是一種邏輯實體邏輯實體; 軟件的生產(chǎn)與硬件不同,它沒有明顯的制作軟件的生產(chǎn)與硬件不同,它沒有明顯的制作 過程;過程; 軟件在運(yùn)行、使用期間不存在磨損、老化問軟件在運(yùn)行、使用期間不存在磨損、老化問 題;題; 軟件工程基礎(chǔ)4 軟件的開發(fā)、運(yùn)行對計算機(jī)系統(tǒng)具有依賴性,受軟件的開發(fā)、運(yùn)行對計算機(jī)系統(tǒng)具

2、有依賴性,受 計算機(jī)系統(tǒng)的限制,這導(dǎo)致了軟件移植的問題;計算機(jī)系統(tǒng)的限制,這導(dǎo)致了軟件移植的問題; 軟件復(fù)雜性高,成本昂貴;軟件復(fù)雜性高,成本昂貴; 軟件開發(fā)涉及諸多的社會因素。軟件開發(fā)涉及諸多的社會因素。 軟件分類:軟件分類: 軟件按功能分為軟件按功能分為應(yīng)用軟件應(yīng)用軟件、系統(tǒng)軟件系統(tǒng)軟件、支撐軟件支撐軟件 (或(或工具軟件工具軟件)。)。 軟件工程基礎(chǔ)5 2、軟件危機(jī)與軟件工程、軟件危機(jī)與軟件工程 所謂所謂軟件危機(jī)軟件危機(jī)是泛指在計算機(jī)軟件的開發(fā)和維護(hù)是泛指在計算機(jī)軟件的開發(fā)和維護(hù) 過程中所遇到的一系列過程中所遇到的一系列嚴(yán)重問題嚴(yán)重問題。軟件危機(jī)可以。軟件危機(jī)可以 歸結(jié)為成本、質(zhì)量、生產(chǎn)

3、率等問題。歸結(jié)為成本、質(zhì)量、生產(chǎn)率等問題。 軟件工程源自軟件危機(jī)。軟件工程源自軟件危機(jī)。 軟件工程軟件工程是應(yīng)用于計算機(jī)軟件的是應(yīng)用于計算機(jī)軟件的定義定義、開發(fā)開發(fā)和和維維 護(hù)護(hù)的一整套方法、工具、文檔、實踐標(biāo)準(zhǔn)和工序。的一整套方法、工具、文檔、實踐標(biāo)準(zhǔn)和工序。 軟件工程基礎(chǔ)6 軟件工程的主要思想軟件工程的主要思想是將工程化原則運(yùn)用到軟件開是將工程化原則運(yùn)用到軟件開 發(fā)過程,它包括發(fā)過程,它包括3個要素:個要素:方法方法、工具工具和和過程過程。 軟件工程過程包含軟件工程過程包含4種種基本活動基本活動: (1)P(Plan)軟件規(guī)格說明。規(guī)定軟件的軟件規(guī)格說明。規(guī)定軟件的 功能及其運(yùn)行時的限制。

4、功能及其運(yùn)行時的限制。 (2)D(Do)軟件開發(fā)。產(chǎn)生滿足規(guī)格說明的軟件開發(fā)。產(chǎn)生滿足規(guī)格說明的 軟件。軟件。 (3)C(Check)軟件確認(rèn)。確認(rèn)軟件能夠滿軟件確認(rèn)。確認(rèn)軟件能夠滿 足用戶提出的要求。足用戶提出的要求。 (4)A(Action)軟件演進(jìn)。為滿足客戶的軟件演進(jìn)。為滿足客戶的 變更要求,軟件必須在使用的過程中演進(jìn)。變更要求,軟件必須在使用的過程中演進(jìn)。 軟件工程基礎(chǔ)7 軟件生命周期軟件生命周期:軟件產(chǎn)品從提出、實現(xiàn)、:軟件產(chǎn)品從提出、實現(xiàn)、 使用維護(hù)到停止使用退役的過程。使用維護(hù)到停止使用退役的過程。 軟件生命周期三個階段:軟件生命周期三個階段: 軟件定義軟件定義 軟件開發(fā)軟件開

5、發(fā) 運(yùn)行維護(hù)運(yùn)行維護(hù) 3、軟件生命周期、軟件生命周期 軟件工程基礎(chǔ)8 軟件生命周期的主要活動階段軟件生命周期的主要活動階段 如下圖:如下圖: 可行性研究可行性研究 初步項目計劃初步項目計劃 需求分析需求分析 概要設(shè)計概要設(shè)計 詳細(xì)設(shè)計詳細(xì)設(shè)計 實現(xiàn)實現(xiàn) 測試測試 維護(hù)維護(hù) 使用使用 退役退役 定義定義 階段 開發(fā)開發(fā) 階段 維護(hù)維護(hù) 階段 軟件工程基礎(chǔ)9 4、軟件工程的目標(biāo)和與原則、軟件工程的目標(biāo)和與原則 (1)軟件工程目標(biāo)軟件工程目標(biāo):在給定成本、進(jìn)度的前提下,開發(fā)出:在給定成本、進(jìn)度的前提下,開發(fā)出 具有有效性、可靠性、可理解性、可維護(hù)性、可重用性、具有有效性、可靠性、可理解性、可維護(hù)性、

6、可重用性、 可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用 戶需求的產(chǎn)品。戶需求的產(chǎn)品。 (2)軟件工程需要達(dá)到的基本目標(biāo)應(yīng)是軟件工程需要達(dá)到的基本目標(biāo)應(yīng)是:付出較低的開發(fā):付出較低的開發(fā) 成本;達(dá)到要求的軟件功能;取得較好的軟件性能;開成本;達(dá)到要求的軟件功能;取得較好的軟件性能;開 發(fā)的軟件易于移植;需要較低的維護(hù)費(fèi)用;能按時完成發(fā)的軟件易于移植;需要較低的維護(hù)費(fèi)用;能按時完成 開發(fā),及時交付使用。開發(fā),及時交付使用。 (3)軟件工程原則軟件工程原則:抽象抽象、信息隱蔽信息隱蔽、模塊化模塊化、局部化局部化、 確定性確定性、一致性一致性、完備

7、性完備性和和可驗證性可驗證性。 軟件工程基礎(chǔ)10 5、軟件開發(fā)工具與軟件開發(fā)環(huán)境、軟件開發(fā)工具與軟件開發(fā)環(huán)境 (1)軟件開發(fā)工具軟件開發(fā)工具 軟件開發(fā)工具的完善和發(fā)展將促使軟件開發(fā)方法的進(jìn)步和軟件開發(fā)工具的完善和發(fā)展將促使軟件開發(fā)方法的進(jìn)步和 完善,促進(jìn)軟件開發(fā)的高速度和高質(zhì)量。軟件開發(fā)工具完善,促進(jìn)軟件開發(fā)的高速度和高質(zhì)量。軟件開發(fā)工具 的發(fā)展是從單項工具的開發(fā)逐步向集成工具發(fā)展的,軟的發(fā)展是從單項工具的開發(fā)逐步向集成工具發(fā)展的,軟 件開發(fā)工具為軟件工程方法提供了自動的或半自動的軟件開發(fā)工具為軟件工程方法提供了自動的或半自動的軟 件支撐環(huán)境。件支撐環(huán)境。 (2)軟件開發(fā)環(huán)境)軟件開發(fā)環(huán)境 軟

8、件開發(fā)環(huán)境(或稱軟件工程環(huán)境)是全面支持軟件開發(fā)軟件開發(fā)環(huán)境(或稱軟件工程環(huán)境)是全面支持軟件開發(fā) 全過程的軟件工具的集合。全過程的軟件工具的集合。 計算機(jī)輔助軟件工程(計算機(jī)輔助軟件工程(CASE,Computer Aided Software Engineering)將各種軟件工具、開發(fā)機(jī)器和將各種軟件工具、開發(fā)機(jī)器和 一個存放開發(fā)過程信息的中心數(shù)據(jù)庫組合起來,形成軟一個存放開發(fā)過程信息的中心數(shù)據(jù)庫組合起來,形成軟 件工程環(huán)境。它將極大降低軟件開發(fā)的技術(shù)難度并保證件工程環(huán)境。它將極大降低軟件開發(fā)的技術(shù)難度并保證 軟件開發(fā)的質(zhì)量。軟件開發(fā)的質(zhì)量。 軟件工程基礎(chǔ)11 3.2 結(jié)構(gòu)化分析方法結(jié)構(gòu)

9、化分析方法 結(jié)構(gòu)化方法的結(jié)構(gòu)化方法的核心核心和和基礎(chǔ)基礎(chǔ)是是結(jié)構(gòu)化程序設(shè)計理論結(jié)構(gòu)化程序設(shè)計理論。 1、需求分析 需求分析方法有:需求分析方法有: (1)結(jié)構(gòu)化需求分析方法;)結(jié)構(gòu)化需求分析方法; (2)面向?qū)ο蟮姆治龇椒?。)面向?qū)ο蟮姆治龇椒ā?需求分析的需求分析的任務(wù)任務(wù)就是導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型,解就是導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型,解 決決“做什么做什么”的問題。的問題。 需求分析一般分為需求分析一般分為需求獲取需求獲取、需求分析需求分析、編寫需求編寫需求 規(guī)格說明書規(guī)格說明書和和需求評審需求評審四個步驟進(jìn)行。四個步驟進(jìn)行。 軟件工程基礎(chǔ)12 2 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法 結(jié)構(gòu)化分析方法是

10、結(jié)構(gòu)化程序設(shè)計理論在結(jié)構(gòu)化分析方法是結(jié)構(gòu)化程序設(shè)計理論在軟件需求軟件需求 分析階段分析階段的應(yīng)用。的應(yīng)用。 結(jié)構(gòu)化分析方法的結(jié)構(gòu)化分析方法的實質(zhì)實質(zhì):著眼于數(shù)據(jù)流,:著眼于數(shù)據(jù)流,自頂向下,自頂向下, 逐層分解逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和 數(shù)據(jù)字典為主要工具,建立系統(tǒng)的數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型邏輯模型。 結(jié)構(gòu)化分析的結(jié)構(gòu)化分析的常用工具常用工具: (1)數(shù)據(jù)流圖;)數(shù)據(jù)流圖; (2)數(shù)據(jù)字典;)數(shù)據(jù)字典; (3)判定樹;)判定樹; (4)判定表。)判定表。 軟件工程基礎(chǔ)13 2 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法 數(shù)據(jù)流圖數(shù)據(jù)流圖:描述數(shù)

11、據(jù)處理過程的工具,是需求理:描述數(shù)據(jù)處理過程的工具,是需求理 解的邏輯模型的圖形表示,它直接支持系統(tǒng)功能解的邏輯模型的圖形表示,它直接支持系統(tǒng)功能 建模。建模。 下圖是數(shù)據(jù)流圖的基本圖形元素:下圖是數(shù)據(jù)流圖的基本圖形元素: 加工數(shù)據(jù)流存儲文件源、潭 軟件工程基礎(chǔ)14 數(shù)據(jù)流圖數(shù)據(jù)流圖 下圖是一個數(shù)據(jù)流圖的示例:下圖是一個數(shù)據(jù)流圖的示例: 軟件工程基礎(chǔ)15 數(shù)據(jù)字典:數(shù)據(jù)字典: 對所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個有組織的列對所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個有組織的列 表,以及精確的、嚴(yán)格的定義,使得用戶和系統(tǒng)表,以及精確的、嚴(yán)格的定義,使得用戶和系統(tǒng) 分析員對于輸入、輸出、存儲成分和中間計算結(jié)分析員

12、對于輸入、輸出、存儲成分和中間計算結(jié) 果有共同的理解。果有共同的理解。 數(shù)據(jù)字典的作用數(shù)據(jù)字典的作用是對數(shù)據(jù)流圖中出現(xiàn)的被命名的圖是對數(shù)據(jù)流圖中出現(xiàn)的被命名的圖 形元素的確切解釋。形元素的確切解釋。 數(shù)據(jù)字典是結(jié)構(gòu)化分析方法的數(shù)據(jù)字典是結(jié)構(gòu)化分析方法的核心核心。 軟件工程基礎(chǔ)16 判定樹:判定樹:從問題定義的文字描述中分清哪些是判從問題定義的文字描述中分清哪些是判 定的條件,哪些是判定的結(jié)論,根據(jù)描述材料中定的條件,哪些是判定的結(jié)論,根據(jù)描述材料中 的連接詞找出判定條件之間的從屬關(guān)系、并列關(guān)的連接詞找出判定條件之間的從屬關(guān)系、并列關(guān) 系、選擇關(guān)系,根據(jù)它們構(gòu)造判定樹。系、選擇關(guān)系,根據(jù)它們構(gòu)造

13、判定樹。 判定表:判定表:與判定樹相似,當(dāng)數(shù)據(jù)流圖中的加工要與判定樹相似,當(dāng)數(shù)據(jù)流圖中的加工要 依賴于多個邏輯條件的取值,即完成該加工的一依賴于多個邏輯條件的取值,即完成該加工的一 組動作是由于某一組條件取值的組合而引發(fā)的,組動作是由于某一組條件取值的組合而引發(fā)的, 使用判定表描述比較適宜。使用判定表描述比較適宜。 軟件工程基礎(chǔ)17 3、軟件需求規(guī)格說明書 軟件需求規(guī)格說明書是軟件需求規(guī)格說明書是需求分析階段的最后成需求分析階段的最后成 果果,是軟件開發(fā)中的重要文檔之一。,是軟件開發(fā)中的重要文檔之一。 軟件需求規(guī)格說明書的軟件需求規(guī)格說明書的特點(diǎn):特點(diǎn): (1)正確性;)正確性; (2)無歧義

14、性;)無歧義性; (3)完整性;)完整性; (4)可驗證性;)可驗證性; (5)一致性;)一致性; (6)可理解性;)可理解性; (7)可追蹤性。)可追蹤性。 軟件工程基礎(chǔ)18 3.3 結(jié)構(gòu)化設(shè)計方法結(jié)構(gòu)化設(shè)計方法 1、軟件設(shè)計的基礎(chǔ)、軟件設(shè)計的基礎(chǔ) 需求分析需求分析主要解決主要解決“做什么做什么”的問題,而的問題,而軟件設(shè)軟件設(shè) 計計主要解決主要解決“怎么做怎么做”的問題。的問題。 軟件設(shè)計主要內(nèi)容包括:軟件設(shè)計主要內(nèi)容包括: 軟件結(jié)構(gòu)設(shè)計軟件結(jié)構(gòu)設(shè)計、數(shù)據(jù)設(shè)計數(shù)據(jù)設(shè)計、接口設(shè)計接口設(shè)計、過程設(shè)計過程設(shè)計。 (按技術(shù)觀點(diǎn)劃分)(按技術(shù)觀點(diǎn)劃分) 軟件設(shè)計分兩步完成,即軟件設(shè)計分兩步完成,即概

15、要設(shè)計概要設(shè)計和和詳細(xì)設(shè)計詳細(xì)設(shè)計。 (按工程管理角度劃分)(按工程管理角度劃分) 軟件工程基礎(chǔ)19 3.3 結(jié)構(gòu)化設(shè)計方法結(jié)構(gòu)化設(shè)計方法 1、軟件設(shè)計的基礎(chǔ)、軟件設(shè)計的基礎(chǔ) 軟件設(shè)計的基本原理包括:軟件設(shè)計的基本原理包括:抽象抽象、模塊化模塊化、信息信息 隱蔽隱蔽和和模塊獨(dú)立化模塊獨(dú)立化。 模塊的模塊的耦合性耦合性和和內(nèi)聚性內(nèi)聚性是衡量軟件的模塊獨(dú)立性是衡量軟件的模塊獨(dú)立性 的的兩個定性指標(biāo)兩個定性指標(biāo)。 內(nèi)聚性內(nèi)聚性:是一個模塊內(nèi)部各個元素間彼此結(jié)合的:是一個模塊內(nèi)部各個元素間彼此結(jié)合的 緊密程度的度量。緊密程度的度量。 耦合性耦合性:是模塊間互相連接的緊密程度的度量。:是模塊間互相連接的

16、緊密程度的度量。 一個設(shè)計良好的軟件系統(tǒng)應(yīng)具有一個設(shè)計良好的軟件系統(tǒng)應(yīng)具有高內(nèi)聚、低耦合高內(nèi)聚、低耦合 的特征。的特征。 軟件工程基礎(chǔ)20 2、總體設(shè)計(概要設(shè)計)和詳細(xì)設(shè)計、總體設(shè)計(概要設(shè)計)和詳細(xì)設(shè)計 (1)總體設(shè)計(概要設(shè)計)總體設(shè)計(概要設(shè)計) 軟件概要設(shè)計的軟件概要設(shè)計的基本任務(wù)基本任務(wù)是:是: 1)設(shè)計軟件系統(tǒng)結(jié)構(gòu);)設(shè)計軟件系統(tǒng)結(jié)構(gòu); 2)數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計;)數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計; 3)編寫概要設(shè)計文檔;)編寫概要設(shè)計文檔; 4)概要設(shè)計文檔評審。)概要設(shè)計文檔評審。 常用的軟件結(jié)構(gòu)設(shè)計工具是常用的軟件結(jié)構(gòu)設(shè)計工具是結(jié)構(gòu)圖結(jié)構(gòu)圖,也稱,也稱程序結(jié)程序結(jié) 構(gòu)圖。構(gòu)圖。 經(jīng)常使

17、用的結(jié)構(gòu)圖有四種模塊類型:經(jīng)常使用的結(jié)構(gòu)圖有四種模塊類型:傳入模塊傳入模塊、 傳出模塊傳出模塊、變換模塊變換模塊和和協(xié)調(diào)模塊協(xié)調(diào)模塊。 軟件工程基礎(chǔ)21 (1)總體設(shè)計(概要設(shè)計)總體設(shè)計(概要設(shè)計) 程序結(jié)構(gòu)圖的基本圖符:程序結(jié)構(gòu)圖的基本圖符: 模塊用一個矩形表示,箭頭表示模塊間的調(diào)用關(guān)模塊用一個矩形表示,箭頭表示模塊間的調(diào)用關(guān) 系。在結(jié)構(gòu)圖中還可以用帶注釋的箭頭表示模系。在結(jié)構(gòu)圖中還可以用帶注釋的箭頭表示模 塊調(diào)用過程中來回傳遞的信息。還可用帶實心塊調(diào)用過程中來回傳遞的信息。還可用帶實心 圓的箭頭表示傳遞的是控制信息,空心圓箭心圓的箭頭表示傳遞的是控制信息,空心圓箭心 表示傳遞的是數(shù)據(jù)信息

18、。表示傳遞的是數(shù)據(jù)信息。 一般模塊數(shù)據(jù)信息控制信息 軟件工程基礎(chǔ)22 程序結(jié)構(gòu)圖的有關(guān)術(shù)語程序結(jié)構(gòu)圖的有關(guān)術(shù)語 u深度深度:表示控制的層數(shù)。:表示控制的層數(shù)。 u上級模塊、從屬模塊上級模塊、從屬模塊:上、下兩層模塊:上、下兩層模塊a和和b,且有,且有 a調(diào)用調(diào)用b,則,則a是上級模塊,是上級模塊,b是從屬模塊。是從屬模塊。 u寬度寬度:整體控制跨度(最大模塊數(shù)的層)的表示。:整體控制跨度(最大模塊數(shù)的層)的表示。 u扇入扇入:調(diào)用一個給定模塊的模塊個數(shù)。:調(diào)用一個給定模塊的模塊個數(shù)。 u扇出扇出:一個模塊直接調(diào)用的其他模塊數(shù)。:一個模塊直接調(diào)用的其他模塊數(shù)。 u原子模塊原子模塊:樹中位于葉子結(jié)

19、點(diǎn)的模塊。:樹中位于葉子結(jié)點(diǎn)的模塊。 軟件工程基礎(chǔ)23 結(jié)構(gòu)圖的基本形式:結(jié)構(gòu)圖的基本形式:基本形式、順序形式、重復(fù)形基本形式、順序形式、重復(fù)形 式、選擇形式。式、選擇形式。 面向數(shù)據(jù)流的設(shè)計方法面向數(shù)據(jù)流的設(shè)計方法: 面向數(shù)據(jù)流的設(shè)計就是將數(shù)據(jù)流圖變換成結(jié)構(gòu)圖。面向數(shù)據(jù)流的設(shè)計就是將數(shù)據(jù)流圖變換成結(jié)構(gòu)圖。 典型的數(shù)據(jù)流類型有兩種:典型的數(shù)據(jù)流類型有兩種:變換型變換型和和事務(wù)型事務(wù)型。 變換型系統(tǒng)結(jié)構(gòu)圖由輸入、中心變換、輸出三部分變換型系統(tǒng)結(jié)構(gòu)圖由輸入、中心變換、輸出三部分 組成。組成。 事務(wù)型數(shù)據(jù)流的特點(diǎn)是:接受一項事務(wù),根據(jù)事務(wù)事務(wù)型數(shù)據(jù)流的特點(diǎn)是:接受一項事務(wù),根據(jù)事務(wù) 處理的特點(diǎn)和性質(zhì)

20、,選擇分派一個適當(dāng)?shù)奶幚韱卧?,處理的特點(diǎn)和性質(zhì),選擇分派一個適當(dāng)?shù)奶幚韱卧?然后給出結(jié)果。然后給出結(jié)果。 軟件工程基礎(chǔ)24 (2)詳細(xì)設(shè)計)詳細(xì)設(shè)計 詳細(xì)設(shè)計是為軟件結(jié)構(gòu)圖中的每一個模塊確定實現(xiàn)詳細(xì)設(shè)計是為軟件結(jié)構(gòu)圖中的每一個模塊確定實現(xiàn) 算法和局部數(shù)據(jù)結(jié)構(gòu),用某種選定的表達(dá)工具表算法和局部數(shù)據(jù)結(jié)構(gòu),用某種選定的表達(dá)工具表 示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。 詳細(xì)設(shè)計的任務(wù)詳細(xì)設(shè)計的任務(wù)是確定實現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),是確定實現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu), 不同于編碼或編程。不同于編碼或編程。 常用的過程設(shè)計(即詳細(xì)設(shè)計)工具有以下幾種:常用的過程設(shè)計(即詳細(xì)設(shè)計)工具有以下幾種: 圖形

21、工具:圖形工具:程序流程圖程序流程圖、N-S(方盒圖)、(方盒圖)、PAD (問題分析圖)(問題分析圖)和和HIPO(層次圖(層次圖+輸入輸入/處理處理/輸輸 出圖)。出圖)。 表格工具:表格工具:判定表判定表。 語言工具:語言工具:PDL(偽碼):(偽碼):過程設(shè)計語言,它是用過程設(shè)計語言,它是用 正文形式表示數(shù)據(jù)和處理過程的設(shè)計工具。正文形式表示數(shù)據(jù)和處理過程的設(shè)計工具。 軟件工程基礎(chǔ)25 3.4 軟件測試軟件測試 1、軟件測試定義:使用人工或自動手段來運(yùn)行、軟件測試定義:使用人工或自動手段來運(yùn)行 或測定某個系統(tǒng)的過程,其目的在于檢驗它是否或測定某個系統(tǒng)的過程,其目的在于檢驗它是否 滿足規(guī)

22、定的需求或是弄清預(yù)期結(jié)果與實際結(jié)果之滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實際結(jié)果之 間的差別。間的差別。 軟件測試的目的軟件測試的目的:盡可能地多:盡可能地多發(fā)現(xiàn)程序中的錯誤發(fā)現(xiàn)程序中的錯誤, 不能也不可能證明程序沒有錯誤。不能也不可能證明程序沒有錯誤。 2、軟件測試方法:、軟件測試方法:靜態(tài)測試靜態(tài)測試和和動態(tài)測試動態(tài)測試。 靜態(tài)測試靜態(tài)測試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì) 量度量。不實際運(yùn)行軟件,主要通過人工進(jìn)行。量度量。不實際運(yùn)行軟件,主要通過人工進(jìn)行。 動態(tài)測試動態(tài)測試:是基于計算機(jī)的測試,主要包括:是基于計算機(jī)的測試,主要包括白盒白盒 測試方法測試方法

23、和和黑盒測試方法黑盒測試方法。 軟件工程基礎(chǔ)26 (1)白盒測試)白盒測試 白盒測試方法白盒測試方法也稱為也稱為結(jié)構(gòu)測試結(jié)構(gòu)測試或或邏輯驅(qū)動測試邏輯驅(qū)動測試。它。它 是根據(jù)軟件產(chǎn)品的內(nèi)部工作過程,檢查內(nèi)部成分,是根據(jù)軟件產(chǎn)品的內(nèi)部工作過程,檢查內(nèi)部成分, 以確認(rèn)每種內(nèi)部操作符合設(shè)計規(guī)格要求。以確認(rèn)每種內(nèi)部操作符合設(shè)計規(guī)格要求。 白盒測試的基本原則:白盒測試的基本原則:保證所測模塊中每一獨(dú)立路保證所測模塊中每一獨(dú)立路 徑至少執(zhí)行一次;保證所測模塊所有判斷的每一徑至少執(zhí)行一次;保證所測模塊所有判斷的每一 分支至少執(zhí)行一次;保證所測模塊每一循環(huán)都在分支至少執(zhí)行一次;保證所測模塊每一循環(huán)都在 邊界條件

24、和一般條件下至少各執(zhí)行一次;驗證所邊界條件和一般條件下至少各執(zhí)行一次;驗證所 有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。 白盒測試法的測試用例白盒測試法的測試用例是根據(jù)程序的內(nèi)部邏輯來設(shè)是根據(jù)程序的內(nèi)部邏輯來設(shè) 計的,計的,主要用軟件的單元測試主要用軟件的單元測試,主要方法有主要方法有邏輯邏輯 覆蓋覆蓋、基本路徑測試基本路徑測試等。等。 軟件工程基礎(chǔ)27 (2)黑盒測試)黑盒測試 黑盒測試方法黑盒測試方法也稱為也稱為功能測試功能測試或或數(shù)據(jù)驅(qū)動測試數(shù)據(jù)驅(qū)動測試。黑。黑 盒測試是對軟件已經(jīng)實現(xiàn)的功能是否滿足需求進(jìn)盒測試是對軟件已經(jīng)實現(xiàn)的功能是否滿足需求進(jìn) 行測試和驗證。行測試和驗證。 黑盒

25、測試主要診斷功能不對或遺漏、接口錯誤、數(shù)黑盒測試主要診斷功能不對或遺漏、接口錯誤、數(shù) 據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫訪問錯誤、性能錯誤、初始據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫訪問錯誤、性能錯誤、初始 化和終止條件錯誤。化和終止條件錯誤。主要方法有主要方法有等價類劃分法等價類劃分法、 邊界值分析法邊界值分析法、錯誤推測法錯誤推測法等。等。 黑盒測試是程序功能的測試,黑盒測試是程序功能的測試,主要用軟件的確認(rèn)測主要用軟件的確認(rèn)測 試。試。 軟件工程基礎(chǔ)28 3、軟件測試過程、軟件測試過程 軟件測試過程一般按軟件測試過程一般按4個步驟進(jìn)行:個步驟進(jìn)行: 單元測試單元測試 集成測試集成測試 驗收測試(確認(rèn)測試)驗收測試(確認(rèn)測試

26、) 系統(tǒng)測試系統(tǒng)測試 (1)單元測試)單元測試 單元測試是對軟件設(shè)計的最小單位單元測試是對軟件設(shè)計的最小單位模塊(程序模塊(程序 單元)進(jìn)行正確性檢測的測試。單元)進(jìn)行正確性檢測的測試。 單元測試的目的單元測試的目的是發(fā)現(xiàn)各模塊是發(fā)現(xiàn)各模塊內(nèi)部內(nèi)部可能存在的各種可能存在的各種 錯誤。錯誤。 軟件工程基礎(chǔ)29 (1)單元測試)單元測試 單元測試的單元測試的依據(jù)是依據(jù)是詳細(xì)設(shè)計說明書和源程序詳細(xì)設(shè)計說明書和源程序。單元。單元 測試的技術(shù)可以采用靜態(tài)分析和動態(tài)測試。對動測試的技術(shù)可以采用靜態(tài)分析和動態(tài)測試。對動 態(tài)測試通常以白盒測試為主,輔之以黑盒測試。態(tài)測試通常以白盒測試為主,輔之以黑盒測試。 在

27、進(jìn)行單元測試時,要用一些輔助模塊去模擬與被在進(jìn)行單元測試時,要用一些輔助模塊去模擬與被 測模塊相聯(lián)系的其他模塊,即為被測模塊設(shè)計和測模塊相聯(lián)系的其他模塊,即為被測模塊設(shè)計和 搭建搭建驅(qū)動模塊驅(qū)動模塊和和樁模塊樁模塊。 驅(qū)動模塊驅(qū)動模塊相當(dāng)于被測模塊的主程序,它接收測試數(shù)相當(dāng)于被測模塊的主程序,它接收測試數(shù) 據(jù),并傳給被測模塊,輸出實際測試結(jié)果;據(jù),并傳給被測模塊,輸出實際測試結(jié)果; 樁模塊樁模塊是模擬其他被調(diào)用模塊,不必將子模塊的所是模擬其他被調(diào)用模塊,不必將子模塊的所 有功能帶入。有功能帶入。 軟件工程基礎(chǔ)30 (2)集成測試)集成測試 集成測試集成測試是測試和組裝軟件的過程。它是把模塊在是測試和組裝軟件的過程。它是把模塊在 按照設(shè)計要求組裝起來的同時進(jìn)行測試,按照設(shè)計要求組裝起來的同時進(jìn)行測試,主要目主要目 的是發(fā)現(xiàn)與接口有關(guān)的錯誤。的是發(fā)現(xiàn)與接口有關(guān)的

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論