軟件工程學(xué)習(xí)資料_第1頁
軟件工程學(xué)習(xí)資料_第2頁
軟件工程學(xué)習(xí)資料_第3頁
軟件工程學(xué)習(xí)資料_第4頁
軟件工程學(xué)習(xí)資料_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

目錄

第1章軟件工程概述..................................................2

1.軟件具有如下特點(diǎn):........................................................................................................2

2.軟件危機(jī)..................................................................3

3.軟件工程的定義............................................................4

4.軟件工程的目標(biāo)和內(nèi)容.....................................................4

5.軟件工程的原則............................................................6

6.軟件過程..................................................................7

7.軟件生命周期..............................................................7

第2章需求分析.....................................................10

1.概述.....................................................................10

2.需求分析階段的工作.......................................................10

3.需求分析方法.............................................................11

4.結(jié)構(gòu)化分析方法...........................................................12

第3章結(jié)構(gòu)化設(shè)計(jì)方法...............................................13

1.軟件設(shè)計(jì)的基礎(chǔ)............................................................13

2軟件設(shè)計(jì)的基本原理和原則..................................................15

第4章概要設(shè)計(jì).....................................................17

1.概要設(shè)計(jì)的任務(wù)...........................................................17

2.結(jié)構(gòu)圖...................................................................18

3.面向數(shù)據(jù)流的設(shè)計(jì)方法....................................................20

4.面向數(shù)據(jù)流的結(jié)構(gòu)化設(shè)計(jì)過程..............................................22

5.結(jié)構(gòu)化設(shè)計(jì)的準(zhǔn)則........................................................22

第5章詳細(xì)設(shè)計(jì).....................................................23

第6章軟件測試.....................................................24

L軟件測試的目的...........................................................24

2.軟件測試的準(zhǔn)則...........................................................25

3.軟件測試方法.............................................................26

4.白盒測試的測試用例設(shè)計(jì)..................................................27

5.黑盒測試的測試用例設(shè)計(jì)..................................................27

6.軟件測試的實(shí)施...........................................................29

第7章程序的調(diào)試...................................................32

1.程序調(diào)試的基本概念.......................................................32

2.軟件調(diào)試的方法...........................................................33

1

第1章軟件工程概述

L軟件具有如下特點(diǎn):

⑴軟件是一種邏輯實(shí)體,具有抽象性

軟件區(qū)別于一般的、看的見摸得著的、屬于物理實(shí)體的工程對象,

人們只能看見它的存儲介質(zhì),而尢法看到它本身的形態(tài)。只有運(yùn)用邏

輯思維才能把握軟件的功能和特性。

⑵軟件沒有明顯的制作過程

硬件研制成功后,在重復(fù)制造時,要進(jìn)行質(zhì)量控制,才能保證產(chǎn)

品合格;而軟件一旦研制成功,就可以得到大量的、成本極低的,并

且完整精確的副本c因此,軟件的質(zhì)量控制必須著重于軟件開發(fā)。

⑶軟件在使用期間不存在磨損、老化問題

軟件價(jià)值的損失方式是很特殊的,軟件會為了適應(yīng)硬件、環(huán)境以

及需求的變化而進(jìn)行修改,而這些修改不可避免地引入錯誤,導(dǎo)致軟

件失效率升高,從而使得軟件退化。當(dāng)修改的成本變得難以接受時,

軟件就會被拋棄。

⑷對硬件和環(huán)境具有依賴性

軟件的開發(fā)、運(yùn)行對計(jì)算機(jī)硬件和環(huán)境具有不同程度的依賴性,

這給軟件的移植帶來了新的問題。

⑸軟件復(fù)雜性高,成本昂貴

軟件涉及人類社會的各行各業(yè)、方方面面,軟件開發(fā)常常涉及其

他領(lǐng)域的專業(yè)知識c軟件開發(fā)需要投入大量、高強(qiáng)度的腦力勞動,成

本高,風(fēng)險(xiǎn)大。現(xiàn)在軟件的成本已大大地超過了硬件的成本。

2

⑹軟件開發(fā)涉及諸多的社會因素

軟件除了本身具有的復(fù)雜性以外,在開發(fā)過程中,涉及的社會因

素也是非常復(fù)雜的C

下列描述中正確的是()

A)桂序就是軟件

B)軟件開發(fā)不受計(jì)算機(jī)系統(tǒng)的限制

C)軟件既是邏輯實(shí)體,又是物理實(shí)體

D)軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合

2,軟件危機(jī)

軟件危機(jī)泛指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系

列嚴(yán)重問題。這些問題絕不僅僅是不能正常運(yùn)行的軟件才具有的,實(shí)

際上,幾乎所有軟件都不同程度地存在這些問題。

具體地說,在軟件開發(fā)和維護(hù)過程中,軟件危機(jī)主要表現(xiàn)在以下

幾個方面:

(1)不能滿足軟件需求的增長。經(jīng)常會有用戶對系統(tǒng)不滿意的情況

出現(xiàn)。

(2)軟件開發(fā)的成本和進(jìn)度無法控制。開發(fā)成本過高以及開發(fā)周期

過長的情況經(jīng)常發(fā)生。

(3)軟件質(zhì)量難以保證。

(4)軟件可維護(hù)程度低或者不可維護(hù)。

(5)軟件的成本不斷提高。

(6)軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。

3

總之,可以將軟件危機(jī)歸結(jié)為成本、質(zhì)量、生產(chǎn)率等問題。

下面描述中,不屬于軟件危機(jī)表現(xiàn)的是0

A)軟件過程不規(guī)范

B)軟件開發(fā)生產(chǎn)率低

C)軟件質(zhì)量難以控制

D)軟件成本不斷提高

3.軟件工程的定義

軟件工程概念的出現(xiàn)源自軟件危機(jī)。通過認(rèn)真研究消除軟件危機(jī)

的途徑,逐漸形成了一門新興的工程學(xué)科——計(jì)算機(jī)軟件工程學(xué)(簡

稱為軟件工程)。

國家標(biāo)準(zhǔn)(GB)中指出:軟件工程是指應(yīng)用于計(jì)算機(jī)軟件的定義、

開發(fā)和維護(hù)的一整套方法、工具、文檔、實(shí)踐標(biāo)準(zhǔn)和工序。

軟件工程包含3個要素:方法、工具和過程。

方法:方法是完成軟件開發(fā)各項(xiàng)任務(wù)的技術(shù)手段。

工具:工具支持軟件的開發(fā)、管理、文檔生成。

過程:過程支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理。

下面不屬于軟件工程的3個要素是()

A)工具B)過程C)方法D)環(huán)境

4,軟件工程的目標(biāo)和內(nèi)容

軟件工程的目標(biāo)是:在給定成本、進(jìn)度的前提下,開發(fā)出具有有

效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植

性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品。為了實(shí)現(xiàn)其目標(biāo),

4

軟件工程提出了工程化的思想。

工程是對技術(shù)(或社會)實(shí)體的分析、設(shè)計(jì)、建造、驗(yàn)證和管理。

軟件工程從管理和技術(shù)兩方面指導(dǎo)軟件開發(fā)。它們各自包含的內(nèi)容如

下圖所示。

「軟件開發(fā)方法學(xué)一U的是使軟件的開發(fā)規(guī)范化和I.程化,以克服

Y期的下[作坊生產(chǎn)時的隨意性和作現(xiàn)能性

軟件開J開發(fā)過程

發(fā)技術(shù))開發(fā)工八

I軟件I:程環(huán)境

包括人員組織、進(jìn)度安排、質(zhì)瞅保證、

/軟件管理學(xué)一

配置管理和項(xiàng)目計(jì)劃等

由件工J

程管理〈軟件Ib經(jīng)濟(jì)學(xué)——用經(jīng)濟(jì)學(xué)的林本原理來研究軟件開發(fā)中的經(jīng)濟(jì)

效益問題.包括成本的估算、成本效益分析等

L.w、血/從個體心理、人類行為、組織行為和企業(yè)

“欠仃心理字一文化等角度來研究軟件管理和軟件]:科

圖3.2軟件匚程的理論和技術(shù)性研究

軟件工程研究內(nèi)容:

軟件開發(fā)模型。如:瀑布模型、增量模型、迭代模型。

軟件開發(fā)方法。如:面向過程方法、面向數(shù)據(jù)方法、面向?qū)ο蠓椒ā?/p>

目前使用最廣泛的軟件工程方法學(xué)是結(jié)構(gòu)化方法學(xué)和面向?qū)ο?/p>

方法學(xué)。結(jié)構(gòu)化方法學(xué)也稱為傳統(tǒng)方法學(xué),它采用結(jié)構(gòu)化方法來完成

軟件開發(fā)的各項(xiàng)任務(wù),并使用適當(dāng)?shù)能浖ぞ呋蜍浖こ汰h(huán)境來支持

結(jié)構(gòu)化方法的運(yùn)用它包括結(jié)構(gòu)化分析結(jié)構(gòu)

c(StructuredAnalysis)s

化設(shè)計(jì)(StructuredDesign)和結(jié)構(gòu)化程序設(shè)計(jì)(Structured

Programming)三部分組成。結(jié)構(gòu)化方法的基本指導(dǎo)思想是自頂向下,

逐步求精,它的基本原則是抽象與分解。

軟件支持過程。如:工具、

CASERosePowerDesigner0

軟件管理過程。如:IS09000、CMM、軟件企業(yè)文化。

5

例如,要開發(fā)一個軟件系統(tǒng)(如圖書館信息系統(tǒng)),為了完成這

項(xiàng)任務(wù),首先要選擇軟件開發(fā)模型,確定開發(fā)方法、準(zhǔn)備開發(fā)工具、

設(shè)計(jì)開發(fā)環(huán)境和運(yùn)行環(huán)境,然后進(jìn)行需求分析、設(shè)計(jì)、編程、測試、

試運(yùn)行、正式運(yùn)行、驗(yàn)收和交付,最后是系統(tǒng)維護(hù)或系統(tǒng)升級換代。

這樣就按照所選擇的開發(fā)模型,走完了軟件的一個生命周期,這一系

列的軟件開發(fā)過程和管理過程,就是軟件工程。

下列關(guān)于軟件工程的描述中正確的是0

A)軟件工程只是解決軟件項(xiàng)目的管理問題。

B)軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題。

C)軟件工程的主要思想是強(qiáng)調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化

原則。

D)軟件工程只是解決軟件開發(fā)中的技術(shù)問題。

5.軟件工程的原則

軟件工程發(fā)展到現(xiàn)在,已經(jīng)總結(jié)出若干基本原則,所有的軟件項(xiàng)

目都應(yīng)遵循這些原則,以達(dá)到軟件工程的目標(biāo)。軟件工程原則包括抽

象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗(yàn)證

性。具體描述如表3?2所示。

表3-2軟件工程原則

軟件工程原則原則具體描述

采用分層次抽象、“頂向卜二逐層細(xì)化的辦法控制軟件開發(fā)過程的

抽象

復(fù)雜性

6

將模塊設(shè)計(jì)成“黑箱實(shí)現(xiàn)的細(xì)。隱藏在模塊內(nèi)部.不讓模塊的

信總隱蔽

使用者1'[接訪問這就是信息封裝,使用。實(shí)現(xiàn)分離的原則

模塊化模塊化石助產(chǎn)信息隱蔽和抽象.石助于我示狂雜的系統(tǒng)

翟求在一個物理模塊內(nèi)集中邏軾上相互關(guān)聯(lián)的計(jì)算機(jī)資源,保證模

局部化塊之間具行松散的泗A關(guān)系,模塊內(nèi)部具彳j較強(qiáng)的內(nèi)聚.這仃助r

控制分解的融雜性

確定性軟件開發(fā)過程中所有概念的表達(dá)應(yīng)是確定的、無歧義的、規(guī)他的

整個軟件系統(tǒng)的各個楨塊應(yīng)使川一致的概念、符號和術(shù)語;程序內(nèi)

一致性外部接口應(yīng)保持-致;軟件和硬件、操作系統(tǒng)的接口應(yīng)保持?致;

系統(tǒng)規(guī)格說明與系統(tǒng)行為應(yīng)保持一致

軟件系統(tǒng)不上?失任何幣要成分,可以完全實(shí)現(xiàn)系統(tǒng)所要求的功能;

完備性為了保證系統(tǒng)的完備性.在軟件開發(fā)和運(yùn)行過程中需要嚴(yán)格的技術(shù)

評審

開發(fā)大網(wǎng)的軟件系統(tǒng)需要對系統(tǒng)H頂向下、逐U分解系統(tǒng)分解時

可驗(yàn)證性

應(yīng)遵循系統(tǒng)易于檢作、測試、評審的原則,以確保系統(tǒng)的正確性

下面不屬于軟件設(shè)計(jì)原則的是()

A)抽象B)模塊化C)自底向上D)信息隱蔽

6.軟件過程

IS09000定義:軟件過程是把輸人轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源

和活動。

軟件工程過程是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框

架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。

軟件工程過程所進(jìn)行的基本活動主要包含4種,如表3-3所示。

表3-3軟件工程的基本活動

活動名稱含義

軟件規(guī)格說明規(guī)定軟件的功能及其運(yùn)行時的限制

軟件開發(fā)產(chǎn)生滿足規(guī)格說明的軟件

軟件確認(rèn)確認(rèn)傕夠滿足用戶提出的必求

軟件演進(jìn)為滿足客戶要求的變更,軟件必須在使用的過程中不斷演進(jìn)

下面哪個不屬于軟件工程過程的4種基本活動()

A)軟件規(guī)格說明B)軟件開發(fā)

C)軟件演進(jìn)D)軟件測試

7,軟件生命周期

7

軟件生命周期是指把軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用、要/學(xué)習(xí)提示

維護(hù)到停止使用、退役的過程。也就是說,軟件產(chǎn)T魯器舞黑舞

各階段的主要任務(wù)

品從其概念提出開始,到該軟件產(chǎn)品不能使用為止

的整個時間段都屬于軟件生命周期。

軟件生命周期分為3個時期共8個階段。

①軟件定義期:包括問題定義、可行性研究和需求分析3個階段;

②軟件開發(fā)期:包括概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)和測試4個階段;

③運(yùn)行維護(hù)期:即運(yùn)行維護(hù)階段。

軟件生命周期各個階段的活動可以有重復(fù),執(zhí)行時也可以有迭代,如

圖3-4所示。

圖3?4軟件生命周期

軟件生命周期是指()

A)軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程

B)軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測試完成的過程

C)軟件的開發(fā)過程

D)軟件的運(yùn)行維護(hù)過程

8

下列選項(xiàng)中不屬于軟件生命周期開發(fā)階段任務(wù)的是()

A)軟件測試B)概要設(shè)計(jì)C)軟件維護(hù)D)詳細(xì)設(shè)計(jì)

軟件生命周期可分為定義階段、開發(fā)階段和維護(hù)階段,詳細(xì)設(shè)計(jì)

屬于0

A)定義階段B)開發(fā)階段

C)維護(hù)階段D)上述3個階段

軟件生命周期各階段的主要任務(wù)

在圖3-4中的軟件生命周期各階段的主要任務(wù)是:

①問題定義。確定要求解決的問題是什么。

②可行性研究與計(jì)劃制定。決定該問題是否存在一個可行的解決辦

法,指定完成開發(fā)任務(wù)的實(shí)施計(jì)劃。

③需求分析。對待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)定義。

編寫軟件規(guī)格說明書及初步的用戶手冊,理交評審。

④軟件設(shè)計(jì)。通常又分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個階段,給出軟件

的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。該階段提交評審

的文檔有概要設(shè)計(jì)說明書、詳細(xì)設(shè)計(jì)說明書和測試計(jì)劃初稿。

⑤軟件實(shí)現(xiàn)。在軟件設(shè)計(jì)的基礎(chǔ)上編寫程序。該階段完成的文檔有

用戶手冊、操作手冊等面向用戶的文檔,以及為下一步作準(zhǔn)備而編

寫的單元測試計(jì)劃c

⑥軟件測試。在設(shè)計(jì)測試用例的基礎(chǔ)上,檢驗(yàn)軟件的各個組成部

分。編寫測試分析報(bào)告。

⑦運(yùn)行維護(hù)。將已交付的軟件投入運(yùn)行,同時不斷地維護(hù),進(jìn)行必

9

要而且可行的擴(kuò)充和刪改。

下列描述中正確的是()

A)軟件交付使用后還需要再進(jìn)行維護(hù)

B)軟件工具交付使用就不需要再進(jìn)行維護(hù)

C)軟件交付使用后其生命周期就結(jié)束

D)軟件維護(hù)是指修復(fù)程序中被破壞的指令

第2章需求分析

1.概述

軟件需求是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)

約束等方面的期望c需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定

義需求的過程。需求分析將創(chuàng)建所需的數(shù)據(jù)模型、功能模型和控制

模型。

需求分析的過程是開發(fā)人員與用戶共同協(xié)商,明確系統(tǒng)的全部

功能、性能以及運(yùn)行規(guī)格,并且使用軟件開發(fā)人員和用戶都能理解

的語言準(zhǔn)確地表達(dá)出來,即完成需求規(guī)格說明的過程。

2.需求分析階段的工作

概括地說,需求分析階段的工作可以分為4個小“學(xué)”示

方面:需求獲取、需求分析、編寫需求規(guī)格說明書界匕T分析階履的,

和需求評審。

⑴需求獲取

了解用戶當(dāng)前所處的情況,發(fā)現(xiàn)用戶所面臨的問題和對目標(biāo)系

統(tǒng)的基本需求;接下來應(yīng)該與用戶深入交流,對用戶的基本需求反復(fù)

10

細(xì)化逐步求精,以得出對目標(biāo)系統(tǒng)的完整、準(zhǔn)確和具體的需求。

(2)需求分析

對獲取的需求進(jìn)行分析和綜合,最終給出系統(tǒng)的解決方案和目

標(biāo)系統(tǒng)的邏輯模型C

⑶編寫需求規(guī)格說明書

需求規(guī)格說明書是需求分析的階段性成果,它可以為用戶、分

析人員和設(shè)計(jì)人員之間的交流提供方便,可以直接支持目標(biāo)系統(tǒng)的

確認(rèn),又可以作為控制軟件開發(fā)進(jìn)程的依據(jù)。

⑷需求評審

通常主要從一致性、完整性、現(xiàn)實(shí)性和有效性4個方面復(fù)審軟

件需求規(guī)格說明書C

下面不屬于軟件需求分析階段主要工作的是0

A)需求變更申請B)需求分析

C)需求評審D)需求獲取

3?需求分析方法

需求分析方法可以分為結(jié)構(gòu)化分析方法和面向?qū)ο蟮姆治龇椒?/p>

兩大類。

(1)結(jié)構(gòu)化分析方法

主要包括:面向數(shù)據(jù)流的結(jié)構(gòu)化分析(StructuredAnalysis,SA)方

法、面向數(shù)據(jù)結(jié)構(gòu)的Jackson系統(tǒng)開發(fā)(JacksonSystem

DevelopmentMethod,JSD)方法和面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)

開發(fā)(DataStructuredSystemDevelopmentMethod,DSSD)方法。

li

⑵面向?qū)ο蟮姆治觯∣bject-OrientedAnalysis,00A)方法面向?qū)?/p>

象分析是面向?qū)ο筌浖こ谭椒ǖ牡谝粋€環(huán)節(jié),包括一套概念原

則、過程步驟、表示方法、提交文檔等規(guī)范要求。

4,結(jié)構(gòu)化分析方法

DeMarco對面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法有如卜定義:

使用數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、結(jié)構(gòu)化英語、判定表

和判定樹等工具,來建立一種新的、稱為結(jié)構(gòu)化規(guī)格說明的目標(biāo)文

檔。

SA方法的實(shí)質(zhì)是著眼于數(shù)據(jù)流、自頂向下、對系統(tǒng)的功能進(jìn)行

逐層分解、以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模

型。

數(shù)據(jù)流程圖(DFD圖)是()

A)軟件概要設(shè)計(jì)的工具B)軟件詳細(xì)設(shè)計(jì)的工具

C)結(jié)構(gòu)化方法的需求分析工具D)面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ?/p>

在軟件開發(fā)中,需求分析階段可以使用的工具是()

A)N-S圖B)DFD圖C)PAD圖D)程序流程圖

數(shù)據(jù)流圖中帶有箭頭的線段表示的是()

A)控制流B)事件驅(qū)動C)模塊調(diào)用D)數(shù)據(jù)流

數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特

定的圖符構(gòu)成。下面圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符

的是()

A)控制流B)加工C)數(shù)據(jù)存儲D)源和潭

12

數(shù)據(jù)字典(DD)所定義的對象都包含于()

A)數(shù)據(jù)流圖(DFD圖)B)程序流程圖

C)軟件結(jié)構(gòu)圖D)方框圖

下列關(guān)于數(shù)據(jù)庫設(shè)計(jì)的敘述中,正確的是()

A)在需求分析階段建立數(shù)據(jù)字典

B)在概念設(shè)計(jì)階段建立數(shù)據(jù)字典

C)在邏輯設(shè)計(jì)階段建立數(shù)據(jù)字典

D)在物理設(shè)計(jì)階段建立數(shù)據(jù)字典

下面不能作為結(jié)構(gòu)化方法軟件需求分析工具的是()

A)系統(tǒng)結(jié)構(gòu)圖B)數(shù)據(jù)字典(DD)

C)數(shù)據(jù)流程圖(DFD圖)D)判定表

在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()

A)軟件集成測試計(jì)劃B)軟件詳細(xì)設(shè)計(jì)說明書

C)用戶手冊D)軟件需求規(guī)格說明書

軟件需求規(guī)格說明書的作用不包括0

A)軟件驗(yàn)收的依據(jù)

B)用戶與開發(fā)人員對軟件要做什么的共同理解

C)軟件設(shè)計(jì)的依據(jù)

D)軟件可行性研究的依據(jù)

第3章結(jié)構(gòu)化設(shè)計(jì)方法

L軟件設(shè)計(jì)的基礎(chǔ)

在需求分析階段,使用數(shù)據(jù)流圖和數(shù)據(jù)字典等工具已經(jīng)建立了

13

系統(tǒng)的邏輯模型,解決了“做什么”的問題。接下來的軟件設(shè)計(jì)階

段,是解決“怎么做”的問題。本節(jié)主要介紹軟件工程的軟件設(shè)計(jì)

階段。軟件設(shè)計(jì)可分為兩步:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。

在軟件生命周期中,能準(zhǔn)確確定軟件系統(tǒng)必須做什么和必須具備

哪些功能的階段是()

A)概要設(shè)計(jì)B)詳細(xì)設(shè)計(jì)

C)可行性分析D)需求分析

軟件設(shè)計(jì)的基本目標(biāo)是用比較抽象概括的方式確定目標(biāo)系統(tǒng)如

何完成預(yù)定的任務(wù),也就是說,軟件設(shè)計(jì)是確定系統(tǒng)的物理模型。

軟件設(shè)計(jì)是開發(fā)階段最重要的步驟。從工程管理的角度來看可

分為兩步:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。從技術(shù)觀點(diǎn)來看,軟件設(shè)計(jì)包括軟

件結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)、過程沒計(jì)4個步驟,如表3-7

所示。

表3-7軟件設(shè)計(jì)的劃分

劃分名稱含義

將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu).確定系統(tǒng)及接【1、全局?jǐn)?shù)據(jù)結(jié)構(gòu)

糊耍設(shè)it

或數(shù)據(jù)庫模式

按工程管理角度則分

確迎每個模塊的實(shí)現(xiàn)算法和用部數(shù)據(jù)結(jié)構(gòu).用適當(dāng)方法表示算法和

詳細(xì)設(shè)計(jì)

數(shù)據(jù)結(jié)構(gòu)的細(xì)H

結(jié)構(gòu)設(shè)計(jì)定義軟件系統(tǒng)各主饕部件之間的美系

數(shù)據(jù)沒什將分析時創(chuàng)建的模型轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)的定義

按技術(shù)觀點(diǎn)劃分

接U設(shè)計(jì)描述軟件內(nèi)部、軟件和協(xié)作系統(tǒng)之間以及軟件與人之間如何通信

過程設(shè)計(jì)把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述

從工程管理角度看,軟件設(shè)計(jì)一般分兩步完成,它們是()

A)概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)B)數(shù)據(jù)設(shè)計(jì)與接口設(shè)計(jì)

C)軟件結(jié)構(gòu)設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)D)過程設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)

14

2軟件設(shè)計(jì)的基本原理和原則

軟件設(shè)計(jì)過程中應(yīng)該遵循的基本原理和原則如下所述。

(1)模塊化

模塊化把軟件劃分成獨(dú)立命名且可獨(dú)立訪問的模塊,每個模塊

完成一個子功能,把這些模塊集成起來構(gòu)成一個整體,可以完成指

定的功能滿足用戶的需求。

模塊化是為了把復(fù)雜的問題自頂向下逐層分解成許多容易解決

的小問題,原來的問題也就容易解決了。模塊化使程序結(jié)構(gòu)清晰,

容易閱讀、理解、測試和調(diào)試。

在考慮模塊化的過程中,應(yīng)該避免模決劃分的數(shù)目過多或者過

少。

(2)抽象

抽象是人類在認(rèn)識復(fù)雜現(xiàn)象的過程中使用的最強(qiáng)有力的思維工

具。抽象就是抽出事物的本質(zhì)特性,將相似的方面集中和概括起

來,而暫時不考慮它們的細(xì)節(jié),暫時忽略它們之間的差異。

(3)信息隱藏

應(yīng)用模塊化原理時,自然會產(chǎn)生的一個問題是“為了得到最好

的一組模塊,應(yīng)該怎樣分解軟件二

信息隱藏原理指出:設(shè)計(jì)和確定模塊時,應(yīng)使得一個模塊內(nèi)包含

的信息(過程和數(shù)據(jù))對于不需要這些信息的模塊來說,是不能訪問

的。

⑷模塊獨(dú)立性

15

模塊獨(dú)立性含義是每個模塊完成一個相對獨(dú)立的特定子功能,

并且和其他模塊之間的關(guān)系很簡單。

模塊獨(dú)立性的高低是設(shè)計(jì)好壞的關(guān)鍵,而設(shè)計(jì)又是決定軟件質(zhì)

量的關(guān)鍵環(huán)節(jié)。模塊的獨(dú)立程度可以由兩個定性標(biāo)準(zhǔn)度量:內(nèi)聚性和

耦合性。

①耦合衡量不同模塊彼此間互相依賴(連接)的緊密程度。

②內(nèi)聚衡量一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度。

一般來說,要求模塊之間的耦合盡可能弱,即模塊盡可能獨(dú)

立,且要求模塊的內(nèi)聚程度盡可能高。內(nèi)聚性和耦合性是一個問題

的兩個方面,耦合性程度弱的模塊,其內(nèi)聚程度一定高。

軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的準(zhǔn)則是()

A)低內(nèi)聚低耦合B)高內(nèi)聚低耦合

C)低內(nèi)聚高耦合D)高內(nèi)聚高耦合

耦合性和內(nèi)聚性是對模塊獨(dú)立性度量的兩個標(biāo)準(zhǔn),下列敘述中正

確的是()

A)提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性

B)降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性

C)耦合性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度

D)內(nèi)聚性是指模塊間互相連接的緊密程度

兩個或兩個以上模塊之間關(guān)聯(lián)的緊密程度稱為()

A)耦合度B)內(nèi)聚度C)復(fù)雜度D)數(shù)據(jù)傳輸特性

在結(jié)構(gòu)化設(shè)計(jì)中,模塊劃分的原則是()

16

A)各模塊應(yīng)包括盡量多的功能

B)各模塊的規(guī)模應(yīng)盡量大

C)各模塊之間的聯(lián)系應(yīng)盡量緊密

D)模塊內(nèi)具有高內(nèi)聚度、模塊間具有低耦合度

第4章概要設(shè)計(jì)

L概要設(shè)計(jì)的任務(wù)

概要設(shè)計(jì)又稱總體設(shè)計(jì),軟件概要設(shè)計(jì)的基本任務(wù)如下所述。

(1)設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu)

為了實(shí)現(xiàn)目標(biāo)系統(tǒng),先進(jìn)行軟件結(jié)構(gòu)設(shè)計(jì),具體過程如圖3-6所

按功能劃分模塊

確定旬個模塊功能I

確定模塊調(diào)用關(guān)系

確定模塊之間接”

評估模塊結(jié)構(gòu)質(zhì)照

3-6軟件系統(tǒng)結(jié)構(gòu)

設(shè)計(jì)過程

(2)數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計(jì)

數(shù)據(jù)設(shè)計(jì)是實(shí)現(xiàn)需求定義和規(guī)格說明中提出的數(shù)據(jù)對象的邏輯表

不。

⑶編寫概要設(shè)計(jì)文當(dāng)

概要設(shè)計(jì)階段的文檔有概要設(shè)計(jì)說明書、數(shù)據(jù)庫設(shè)計(jì)說明書和集成

測試計(jì)劃等。

(4)概要設(shè)計(jì)文檔評審

在文檔編寫完成后,要對設(shè)計(jì)部分是否完整地實(shí)現(xiàn)了需求中規(guī)定的

17

功能、性能等要求,設(shè)計(jì)方案的可行性,關(guān)鍵的處理及內(nèi)外部接口

定義的正確性、有效性,各部分之間的一致性等進(jìn)行評審似免在以

后的設(shè)計(jì)中出現(xiàn)大的問題而返工。

綜上所述,概要設(shè)計(jì)的主要任務(wù)可以分為兩部分,如圖3-7所示。

設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu)

(設(shè)計(jì)

[設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫

概要設(shè)計(jì),

[編。概要設(shè)計(jì)文檔

【文檔

I評審

圖3-7概要設(shè)計(jì)的任務(wù)

2.結(jié)構(gòu)圖

在結(jié)構(gòu)化設(shè)計(jì)方法中,常用的結(jié)構(gòu)設(shè)計(jì)工具是結(jié)構(gòu)圖(Stucture

Chart,SC),也稱為程序結(jié)構(gòu)圖。結(jié)構(gòu)圖的基本圖符及含義如表3-

10所示。

表3-10結(jié)構(gòu)圖基本圖符及含義

概念含義圖符

一個矩形代表?個模塊.矩形內(nèi)注明模塊的名字或主?■■

模塊一般模塊

要功能

調(diào)用關(guān)系矩形之間的脩頭(或直線)表示模塊的利用關(guān)系-------調(diào)用關(guān)系

用帶注耗的箭頭表示模塊調(diào)用過程中來mi傳遞的信息

如果心中進(jìn)一步標(biāo)明傳遞的信息是數(shù)據(jù)信息還是控制---------A數(shù)據(jù)信息

信息

信息,則可用帶實(shí)心網(wǎng)的箭頭表示是控制信息.空心?--------?控制信息

圈表示數(shù)搟信息

根據(jù)結(jié)構(gòu)化設(shè)計(jì)思想,結(jié)構(gòu)圖構(gòu)成的基本形LULML±J

Jt/\0

式有3種:順序形式、選擇形式和重復(fù)形

EEEE

式。⑶.(0

圖3-8結(jié)構(gòu)圖的圖形表示

圖3-8(a)是最基本的調(diào)用形式—順序形

式。此外還有一些附加的符號,可以表示模塊的選擇調(diào)用或循環(huán)調(diào)

用。

圖3-8(b)表示當(dāng)模塊M中某個判定為真時調(diào)用模塊A,為假時調(diào)用模

18

塊B。

圖3-8⑹表示模塊M循環(huán)調(diào)用模

塊A。結(jié)構(gòu)圖有4種經(jīng)常使用的

模塊類型:傳入模塊、傳出模塊、

變換模塊和協(xié)調(diào)模塊。其表示形

式如圖3-9所示,含義如表3-圖3-9結(jié)構(gòu)圖4種模塊類型

11所不。

表3?11結(jié)構(gòu)圖模塊類型及含義

協(xié)網(wǎng)模塊時所有嚇屬模塊進(jìn)行協(xié)謝和管理

從下級模塊取得數(shù)據(jù),經(jīng)處理再將K傳

傳入模塊

送紿上級快塊

從上級模塊取得數(shù)據(jù),進(jìn)行特定的處理.

變換模塊

轉(zhuǎn)換成其他形式.再傳送給上級模塊

從上級模塊取得數(shù)據(jù).經(jīng)處理再將此佐

傳出模塊

送給下屬模塊

軟件的結(jié)構(gòu)是一種層次化的表示,它指出了軟件的各個模塊之間的

關(guān)系,如圖3-10所不。

圖3.10軟件結(jié)構(gòu)

圖3-10的結(jié)構(gòu)圖中涉及幾個術(shù)語,現(xiàn)簡述如表3-12所示。

*3-12結(jié)構(gòu)圖術(shù)語

1???他MJG他怏塊的K!欣

從舊模塊被另一個慢快一州的模城

軻中位于葉子鋁點(diǎn)的模塊.也就是沒〃從M

堵點(diǎn)的模塊

Wtt表示控制的以數(shù)

寬度U大模塊數(shù)的小的打M的度

WA兩川個吩定校塊的懵塊個數(shù)

AM由一個模塊在接網(wǎng)用的其偷模塊收

19

對軟件系統(tǒng)總體結(jié)構(gòu)圖描述正確的是()。

A、從屬模塊一定是原子模塊

B、扇入是一個模塊直接調(diào)用的其他模塊數(shù)

C、結(jié)構(gòu)圖是描述軟件系統(tǒng)功能的

D、深度等于控制的層數(shù)

某系統(tǒng)總體結(jié)構(gòu)如下圖所示該系統(tǒng)結(jié)構(gòu)圖的寬度是()o

A、2B、3C、4Ds5

某系統(tǒng)總體結(jié)構(gòu)如下圖所示,該系統(tǒng)結(jié)構(gòu)圖的深度是()。

As1B、2C、3D、4

3.面向數(shù)據(jù)流的設(shè)計(jì)方法

在需求分析階段,用SA方法產(chǎn)生了數(shù)據(jù)流圖。面向數(shù)據(jù)流的結(jié)構(gòu)化

設(shè)計(jì)(SD),能夠方便地將數(shù)據(jù)流圖DFD轉(zhuǎn)換成程序結(jié)構(gòu)圖。DFD從

系統(tǒng)的輸入數(shù)據(jù)流到系統(tǒng)的輸出數(shù)據(jù)流的一連串連續(xù)加工形成了一

20

條信息流。下面首先介紹數(shù)據(jù)流圖的不同類型,然后介紹針對不同

的類型所作的處理C

⑴數(shù)據(jù)流圖的類型

數(shù)據(jù)流圖的信息流可分為兩種類型:變換流和事務(wù)流。相應(yīng)地,數(shù)據(jù)

流圖有兩種典型的結(jié)構(gòu)形式:變換型和事務(wù)型。

①變換型。信息沿輸入通路進(jìn)入系統(tǒng),同時由外部形式變換成內(nèi)部

形式,然后通過變換中心(也叫主加工),經(jīng)加工處理以后再沿輸出

通路變換成外部形式離開軟件系統(tǒng)。當(dāng)數(shù)據(jù)流圖具有這些特征時,

這種信息流就稱為變換流,這種數(shù)據(jù)流圖,稱為變換型數(shù)據(jù)流圖。

變換型數(shù)據(jù)流圖可以明顯地分成輸入、變疾中心、輸出3大部分,

如圖3-11所示。

②事務(wù)型。信息沿著輸入通路到達(dá)一個事務(wù)中心,事務(wù)中心根據(jù)輸

入信息(稱為事務(wù))的類型在若干個處理序列(稱為活動流)中選擇

一個來執(zhí)行,這種信息流稱為事物流,這種數(shù)據(jù)流圖,稱為事務(wù)型

數(shù)據(jù)流圖。事務(wù)型數(shù)據(jù)流圖有明顯的事務(wù)中心,各活動流以事物中

心為起點(diǎn)呈輻射狀流出,如圖3-12所示。

21

4.面向數(shù)據(jù)流的結(jié)構(gòu)化設(shè)計(jì)過程

步驟1確認(rèn)數(shù)據(jù)流圖的類型(是事務(wù)型還是變換型)

步驟2說明數(shù)據(jù)流的邊界。

步驟3把數(shù)據(jù)流圖映射為結(jié)構(gòu)圖。根據(jù)數(shù)據(jù)流圖的類型進(jìn)行事務(wù)分

析或變換分析。

步驟4根據(jù)下面介紹的設(shè)計(jì)準(zhǔn)則對產(chǎn)生的結(jié)構(gòu)進(jìn)行優(yōu)化。

5.結(jié)構(gòu)化設(shè)計(jì)的準(zhǔn)則

大量的實(shí)踐表明,以下的設(shè)計(jì)準(zhǔn)則可以借鑒為設(shè)計(jì)的指導(dǎo)和對軟件

結(jié)構(gòu)圖進(jìn)行優(yōu)化的條件。

①提高模塊獨(dú)立性c模塊獨(dú)立性是結(jié)構(gòu)設(shè)計(jì)好壞的最重要標(biāo)準(zhǔn)。設(shè)

計(jì)出軟件的初步結(jié)構(gòu)以后,應(yīng)該分析這個結(jié)構(gòu),通過模塊分解或合

并,力求降低耦合提高內(nèi)聚。

②模塊規(guī)模應(yīng)該適中。過大的模塊往往是因?yàn)榉纸獠怀浞郑荒K過

小,則開銷大于有效操作,而且模塊數(shù)目近多將使系統(tǒng)接口復(fù)雜。

③深度、寬度、扇出和扇入都應(yīng)適當(dāng)。深度表示軟件結(jié)構(gòu)中控制的

層數(shù),如果層數(shù)過多則應(yīng)該考慮是否有許多管理模塊過于簡單了,

要考慮能否適當(dāng)合并。

如果寬度過大說明系統(tǒng)的控制過于集中。

扇出過大意味著模塊過分復(fù)雜,需要控制和協(xié)調(diào)過多的下級模塊扇

出過小時可以把下級模塊進(jìn)一步分解成若干個子功能模塊,或者合

并到它的上級模塊中去。

扇入越大則共享該模塊的上級模塊數(shù)目越多,這是有好處的,但

22

是,不能犧牲模塊的獨(dú)立性單純追求高扇入。

大量實(shí)踐表明,設(shè)計(jì)得很好的軟件結(jié)構(gòu)通常頂層扇出比較高,中層

扇出較少,底層模塊有高扇入。

④模塊的作用域應(yīng)該在控制域之內(nèi)。在一個設(shè)計(jì)得很好的系統(tǒng)中,

所有受判定影響的模塊應(yīng)該都從屬于作出判定的那個模塊,最好局

限于作出判定的那個模塊本身及它的直屬下級模塊。

⑤降低模塊之間接口的復(fù)雜程度。應(yīng)該仔細(xì)設(shè)計(jì)模塊接口,使得信

息傳遞簡單并且和模塊的功能一致。

⑥設(shè)計(jì)單入口單出口的模塊,不要使模塊間出現(xiàn)內(nèi)容耦合。

⑦模塊功能應(yīng)該可以預(yù)測。如果一個模塊可以當(dāng)作一個黑盒,也就

是說,只要輸入的數(shù)據(jù)相同就產(chǎn)生同樣的輸出,這個模塊的功能就

是可以預(yù)測的。

第5章詳細(xì)設(shè)計(jì)

詳細(xì)設(shè)計(jì)的任務(wù),是為軟件結(jié)構(gòu)圖中的每一個模塊12北靠

確定實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用某種選定的表達(dá)工具表示算法和數(shù)

據(jù)結(jié)構(gòu)的細(xì)節(jié)。

常用的過程設(shè)計(jì)工具如下所述。

?圖形工具:程序流程圖、N-S圖、PAD圖、HIPO.

表格工具:判定表。

,語言工具:PDL(偽碼)。

在軟件設(shè)計(jì)階段不使用()

A、DFD圖(數(shù)據(jù)流程圖)

23

B、PAD圖

C、程序流程圖

D、判定表

第6章軟件測試3^^學(xué)”家

軟件測試就是在軟件投入運(yùn)行之前,盡可能多地”皿|

發(fā)現(xiàn)軟件中的錯誤c軟件測試是保證軟件質(zhì)量、可靠性的關(guān)鍵步

驟。它是對軟件規(guī)格說明、設(shè)計(jì)和編碼的最后復(fù)審。通常,軟件測

試的工作量往往占軟件開發(fā)總工作量的4。%以上。

SA學(xué)習(xí)提爾

【熟記】軟件測試的目的

L軟件測試的目的

GrenfordJ.Myers給出了軟件測試的目的。

⑴測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程。

⑵好的測試用例(testcase)很可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤。

⑶一次成功的測試是指發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤。

測試的目的是發(fā)現(xiàn)軟件中的錯誤,但是,暴露錯誤并不是軟件測試

的最終目的,測試的根本目的是盡可能多地發(fā)現(xiàn)并排除軟件中隱藏

的錯誤。

軟件測試的目的是()

A)評估軟件可靠性B)發(fā)現(xiàn)并改正程序中的錯誤

C)改正程序中的錯誤D)發(fā)現(xiàn)程序中的錯誤

下列對于軟件測試的描述中正確的是()

24

A)軟件測試的目的是證明程序是否正確

B)軟件測試的目的是使程序運(yùn)行結(jié)果正確

C)軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤

D)軟件測試的目的是使程序符合結(jié)構(gòu)化原則

2.軟件測試的準(zhǔn)則

根據(jù)上述軟件測試的目的,為了能設(shè)計(jì)出有效的測試方案,以及好

的測試用例,軟件測試人員必須深入理解,并正確運(yùn)用以下軟件測

試的基本準(zhǔn)則。

⑴所有測試都應(yīng)追溯到用戶需求。

⑵在測試之前制定測試計(jì)劃,并嚴(yán)格執(zhí)行。

(3)充分注意測試中的群集現(xiàn)象。

⑷避免由程序的編寫者測試自己的程序。

(5)不可能進(jìn)行窮舉測試。

(6)妥善保存測試計(jì)劃、測試用例、出錯統(tǒng)計(jì)和最終分析報(bào)告,為

維護(hù)提供方便。

下列描述中正確的是0

A)軟件測試的主要目的是發(fā)現(xiàn)程序中的錯誤

B)軟件測試的主要目的是確定程序中錯誤的位置

C)為了提高軟件測試的效率,最好由程序編制者自己來完成軟件

測試的工作

D)軟件測試是證明軟件沒有錯誤

25

3.軟件測試方法

軟件測試具有多種方法,根據(jù)軟件是否需要被執(zhí)行,可以分為靜態(tài)測

試和動態(tài)測試。如果按照功能劃分,可以分為白盒測試和黑盒測

試。

(1)靜態(tài)測試

包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等。

其中代碼檢查分為代碼審查、代碼走查、桌面檢查、靜態(tài)分析等具

體形式。

(2)動態(tài)測試

靜態(tài)測試不實(shí)際運(yùn)行軟件,主要通過人工進(jìn)行分析。動態(tài)測試就是

通常所說的上機(jī)測試,通過運(yùn)行軟件來檢驗(yàn)軟件中的動態(tài)行為和運(yùn)

行結(jié)果的正確性。

動態(tài)測試的關(guān)鍵是設(shè)計(jì)高效、合理的測試用例。測試用例就是為測

試設(shè)計(jì)的數(shù)據(jù),由測試輸入數(shù)據(jù)和預(yù)期的輸出結(jié)果兩部分組成。測

試用例的設(shè)計(jì)方法一般分為兩類:黑盒測試方法和白盒測試方法。

Q)白盒測試

白盒測試是把程序看成裝在一只透明的白盒子里,測試者完全了解

程序的結(jié)構(gòu)和處理過程。它根據(jù)程序的內(nèi)部邏輯來設(shè)計(jì)測試用例,

檢查程序中的邏輯通路是否都按預(yù)定的要求正確地工作。

(2)黑盒測試

黑盒測試是把程序看成一只黑盒子,測試者完全不了解,或不考慮

程序的結(jié)構(gòu)和處理過程。它根據(jù)規(guī)格說明書的功能來設(shè)計(jì)測試用

26

例,檢查程序的功能是否符合規(guī)格說明的要求。

4?白盒測試的測試用例設(shè)計(jì)

白盒測試又稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試。它允許測試人員利用程

序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息來設(shè)計(jì)或選擇測試用例,對程序所有

的邏輯路徑進(jìn)行測試。白盒測試是在程序內(nèi)部

進(jìn)行,主要用于完成軟件內(nèi)部操作的驗(yàn)證。

白盒測試的主要技術(shù)有邏輯覆蓋測試、基本路徑測試等

邏輯覆蓋泛指一系列以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的測試用例設(shè)計(jì)

技術(shù)。程序中的邏輯表示主要有判斷、分支、條件3種表示方式。

基本路徑測試的思路和步驟是:根據(jù)軟件過程性描述中的控制流程

確定程序的環(huán)路復(fù)雜性度量,用此度量定義基本路徑集合,并由此

導(dǎo)出一組測試用例對每一條獨(dú)立執(zhí)行路徑進(jìn)行測試。

?LA學(xué)習(xí)提示

【M3」JK1T■4的手■

技術(shù)

(3M]黑盒涌試的測試用

5.黑盒測試的測試用例設(shè)計(jì)則設(shè)計(jì)

黑盒測試方法又稱功能測試或數(shù)據(jù)驅(qū)動測試,著重測試軟件功能。白

盒測試在測試過程的早期階段進(jìn)行,而黑盒測試主要用于軟件的確

認(rèn)測試。

黑盒測試完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和處理過程,黑盒測試是

在軟件接口處進(jìn)行,檢查和驗(yàn)證程序的功能是否符合需求規(guī)格說明

書的功能說明。

常用的黑盒測試方法和技術(shù)有:等價(jià)類劃分法、邊界值分析法、錯誤

推測法和因果圖等C

27

(1)等價(jià)類劃分法

等價(jià)類劃分是一種常用的黑盒測試方法,這種技術(shù)的方法是先把程

序的所有可能的輸入劃分成若干個等價(jià)類,然后根據(jù)等價(jià)類選取相

應(yīng)的測試用例。每個等價(jià)類中各個輸入數(shù)據(jù)對發(fā)現(xiàn)程序中錯誤的幾

率兒乎是相同的。因此,從每個等價(jià)類中只取一組數(shù)據(jù)作為測試數(shù)

據(jù),這樣選取的測試數(shù)據(jù)最有代表性,最可能發(fā)現(xiàn)程序中的錯誤,

并且大大減少了需要的測試數(shù)據(jù)的數(shù)量。

(2)邊界值分析法

邊界值分析法是對各種輸入、輸出范圍的邊界情況設(shè)計(jì)測試用例的

方法。

大量的實(shí)踐表明,程序在處理邊界值時容易出錯,因此設(shè)計(jì)一些測

試用例,使程序運(yùn)行在邊界情況附近,這樣揭露程序中錯誤的可能

性就更大。

選取的測試數(shù)據(jù)應(yīng)該剛好等于、小于和大于邊界值。也就是說,按

照邊界值分析法,應(yīng)該選取剛好等于、稍小于和稍大于等價(jià)類邊界

值的數(shù)據(jù)作為測試數(shù)據(jù),而不是選取每個等價(jià)類內(nèi)的典型值或任意

值作為測試數(shù)據(jù)。

通常設(shè)計(jì)測試方案E寸總是把等價(jià)劃分和邊界值分析法結(jié)合使用。

(3)錯誤推測法

錯誤推測法是一種憑直覺和經(jīng)驗(yàn)推測某些可能存在的錯誤,從而針

對這些可能存在的錯誤設(shè)計(jì)測試用例的方法。這種方法沒有機(jī)械的

執(zhí)行過程,主要依靠直覺和經(jīng)驗(yàn)。

28

錯誤推測法針對性強(qiáng),可以直接切入可能的錯誤,直接定位,是一

種非常實(shí)用、有效的方法,但是需要非常豐富的經(jīng)驗(yàn)。

下面屬于白盒測試方法的是()

A)等價(jià)類劃分法B)邏輯覆蓋

C)邊界值分析法D)錯誤推測法

在黑盒測試方法中,設(shè)計(jì)測試用例的主要根據(jù)是()

A)程序內(nèi)部邏輯B)程序外部功能

C)程序數(shù)據(jù)結(jié)構(gòu)D)程序流程圖

6,軟件測試的實(shí)施

軟件測試的實(shí)施過程主要有4個步驟:單元測試、集成測試、確認(rèn)測

試(驗(yàn)收測試)和系統(tǒng)測試。

(1)單元測試

單元測試也稱模塊測試,模塊是軟件設(shè)計(jì)的最小單位,單元測試是

對模塊進(jìn)行正確性的檢驗(yàn),以期盡早發(fā)現(xiàn)各模塊內(nèi)部可能存在的各

種錯誤。

通常單元測試在編碼階段進(jìn)行,單元測試的依據(jù)除了源程序以外還

有詳細(xì)設(shè)計(jì)說明書c單元測試可以采用靜態(tài)測試或者動態(tài)測試。動

態(tài)測試通常以白盒測試法為主,測試其結(jié)構(gòu),以黑盒測試法為輔,測

試其功能。

單元測試是針對單個模

溫馨提示

  • 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

提交評論