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

下載本文檔

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

文檔簡介

全國計(jì)算機(jī)等級考試

公共基礎(chǔ)知識主講人:劉槐德軟件工程基礎(chǔ)

一軟件危機(jī)與軟件工程

1、軟件的相關(guān)概念

計(jì)算機(jī)軟件是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。軟件的特點(diǎn)包括:軟件是一種邏輯實(shí)體;具有抽象性;軟件的生產(chǎn)與硬件不同,它沒有明顯的制作過程;

軟件在運(yùn)行、使用期間不存在磨損、老化問題;

軟件的開發(fā)、運(yùn)行對計(jì)算機(jī)系統(tǒng)具有依賴性,受計(jì)算機(jī)系統(tǒng)的限制,這導(dǎo)致了軟件移植的問題;

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

軟件開發(fā)涉及諸多的社會因素。軟件分類:軟件按功能分為應(yīng)用軟件、系統(tǒng)軟件、支撐軟件(或工具軟件)。

軟件發(fā)展的趨勢程序設(shè)計(jì)階段,約為50至60年代硬件通用,軟件專用;程序規(guī)模小,編寫者和使用者為同一人(同組人)。程序系統(tǒng)階段,約為60至70年代出現(xiàn)“軟件作坊”、產(chǎn)品軟件;“個(gè)體化”開發(fā)方法。軟件工程階段,約為70年代以后軟件開發(fā)成為一門新興的工程學(xué)科——軟件工程。2、軟件危機(jī)與軟件工程

所謂軟件危機(jī)是泛指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。軟件危機(jī)可以歸結(jié)為成本、質(zhì)量、生產(chǎn)率等問題。軟件工程源自軟件危機(jī)。

軟件工程是應(yīng)用于計(jì)算機(jī)軟件的定義、開發(fā)和維護(hù)的一整套方法、工具、文檔、實(shí)踐標(biāo)準(zhǔn)和工序。即將軟件產(chǎn)品看作是一個(gè)工程產(chǎn)品來處理。中心思想:把軟件當(dāng)作一種工業(yè)產(chǎn)品,要求“采用工程化的原理和方法對軟件進(jìn)行計(jì)劃、開發(fā)和維護(hù)”。這樣做的目的,不僅是為了實(shí)現(xiàn)按預(yù)期的進(jìn)度和經(jīng)費(fèi)完成軟件生產(chǎn)計(jì)劃,也是為了提高軟件的生產(chǎn)率和可靠性。軟件工程—一種層次化技術(shù)工具方法過程軟件工程三個(gè)要素:方法、工具、過程軟件工程過程包含4種基本活動:

(1)P(Plan)——軟件規(guī)格說明。規(guī)定軟件的功能及其運(yùn)行時(shí)的限制。(2)D(Do)——軟件開發(fā)。產(chǎn)生滿足規(guī)格說明的軟件。(3)C(Check)——軟件確認(rèn)。確認(rèn)軟件能夠滿足用戶提出的要求。

(4)A(Action)——軟件演進(jìn)。為滿足客戶的變更要求,軟件必須在使用的過程中演進(jìn)。軟件生命周期:軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程。

軟件生命周期三個(gè)階段:軟件定義軟件開發(fā)運(yùn)行維護(hù)3、軟件生命周期軟件生命周期的主要活動階段

如下圖:

可行性研究初步項(xiàng)目計(jì)劃需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)實(shí)現(xiàn)測試維護(hù)使用退役定義階段開發(fā)階段維護(hù)階段4、軟件工程的目標(biāo)和與原則(1)軟件工程目標(biāo):在給定成本、進(jìn)度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品。(2)軟件工程需要達(dá)到的基本目標(biāo)應(yīng)是:付出較低的開發(fā)成本;達(dá)到要求的軟件功能;取得較好的軟件性能;開發(fā)的軟件易于移植;需要較低的維護(hù)費(fèi)用;能按時(shí)完成開發(fā),及時(shí)交付使用。(3)軟件工程原則:抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗(yàn)證性。5軟件工程的內(nèi)容內(nèi)容軟件開發(fā)技術(shù)軟件開發(fā)方法學(xué)基于瀑布模型的結(jié)構(gòu)化生命周期方法基于動態(tài)需求的快速原型法基于結(jié)構(gòu)的面向?qū)ο蟮能浖_發(fā)方法軟件工具用來開發(fā)軟件的軟件軟件工程環(huán)境支持軟件開發(fā)的環(huán)境,軟件工具及其相互間關(guān)系的總和軟件工程管理軟件管理人力管理、進(jìn)度安排、質(zhì)量保證、資源管理軟件工程經(jīng)濟(jì)學(xué)以經(jīng)濟(jì)學(xué)的觀點(diǎn)研究開發(fā)過程中的經(jīng)濟(jì)效益。成本估算、效益分析的方法和技術(shù)6、軟件開發(fā)工具與軟件開發(fā)環(huán)境(1)軟件開發(fā)工具軟件開發(fā)工具的完善和發(fā)展將促使軟件開發(fā)方法的進(jìn)步和完善,促進(jìn)軟件開發(fā)的高速度和高質(zhì)量。軟件開發(fā)工具的發(fā)展是從單項(xiàng)工具的開發(fā)逐步向集成工具發(fā)展的,軟件開發(fā)工具為軟件工程方法提供了自動的或半自動的軟件支撐環(huán)境。(2)軟件開發(fā)環(huán)境

軟件開發(fā)環(huán)境(或稱軟件工程環(huán)境)是全面支持軟件開發(fā)全過程的軟件工具的集合。計(jì)算機(jī)輔助軟件工程(CASE,ComputerAidedSoftwareEngineering)將各種軟件工具、開發(fā)機(jī)器和一個(gè)存放開發(fā)過程信息的中心數(shù)據(jù)庫組合起來,形成軟件工程環(huán)境。它將極大降低軟件開發(fā)的技術(shù)難度并保證軟件開發(fā)的質(zhì)量。二結(jié)構(gòu)化生命周期方法1.計(jì)劃時(shí)期主要任務(wù):

是分析用戶需求、新系統(tǒng)的主要目標(biāo)、開發(fā)系統(tǒng)的可行性1)問題定義任務(wù):確定軟件系統(tǒng)的功能和要解決的問題(軟件系統(tǒng)的目標(biāo)和范圍說明)特點(diǎn):時(shí)間較短2)可行性研究:經(jīng)濟(jì)可行性:技術(shù)可行性:法律可行性:運(yùn)行可行性:方案可行性最終提交:可行性分析報(bào)告(軟件開發(fā)階段的第一個(gè)文檔)這是在軟件項(xiàng)目計(jì)劃階段應(yīng)該做的事情,包括四個(gè)方面的研究:

經(jīng)濟(jì)可行性:進(jìn)行成本∕效益分析。從經(jīng)濟(jì)角度判斷系統(tǒng)開發(fā)是否“合算”。

技術(shù)可行性:進(jìn)行技術(shù)風(fēng)險(xiǎn)評價(jià)。從開發(fā)者的技術(shù)實(shí)力、以往工作基礎(chǔ)、問題的復(fù)雜性等出發(fā),判斷系統(tǒng)開發(fā)在時(shí)間、費(fèi)用等限制條件下成功的可能性。

法律可行性:確定系統(tǒng)開發(fā)可能導(dǎo)致的任何侵權(quán)、妨礙和責(zé)任。

方案的選擇:評價(jià)系統(tǒng)或產(chǎn)品開發(fā)的幾個(gè)可能的候選方案。最后給出結(jié)論意見。3)軟件計(jì)劃

i任務(wù) 分析和估算 分析 功能的界限(應(yīng)包括哪些,不含哪些功能) 估算 開發(fā)的資源、費(fèi)用、進(jìn)度等進(jìn)行定量估計(jì)

ii資源 人力資源:技術(shù)人員:分析設(shè)計(jì)人員、編碼測試人員、管理人員 軟件資源:支持軟件、應(yīng)用軟件硬件資源:開發(fā)系統(tǒng)的硬件設(shè)備、新系統(tǒng)的硬件設(shè)備描述資源(具體規(guī)格),資源的起始時(shí)間和終止時(shí)間

iii進(jìn)度安排 限時(shí)進(jìn)度安排——用戶 自定義進(jìn)度安排——公司4)需求分析:弄清用戶對軟件系統(tǒng)的全部需求并用需求說明書的形式準(zhǔn)確地表達(dá)出來。當(dāng)采用結(jié)構(gòu)化分析方法時(shí),需求說明通常由數(shù)據(jù)流圖、數(shù)據(jù)字典和加工說明等一整套文檔組成。需求分析的任務(wù)任務(wù):需求分析的任務(wù)就是導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型,解決“做什么”的問題。軟件需求分析的目標(biāo)是深入描述軟件的功能和性能,確定軟件設(shè)計(jì)的約束和軟件同其它系統(tǒng)元素的接口細(xì)節(jié),定義軟件的其它有效性需求。需求分析階段研究的對象是軟件項(xiàng)目的用戶要求。一方面,必須全面理解用戶的各項(xiàng)要求,但又不能全盤接受所有的要求,另一方面,要準(zhǔn)確地表達(dá)被接受的用戶要求。只有經(jīng)過確切描述的軟件需求才能成為軟件設(shè)計(jì)的基礎(chǔ)。特點(diǎn):準(zhǔn)確性和一致性。是連接計(jì)劃時(shí)期和開發(fā)時(shí)期的橋梁,也是軟件設(shè)計(jì)的依據(jù)。清晰性和沒有二義性。直觀、易讀和易于修改。需求分析方法(1)結(jié)構(gòu)化需求分析方法(重點(diǎn))

(A)面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法

B)面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法

C)面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法(2)面向?qū)ο蟮姆治龇椒ā?/p>

需求分析一般分為需求獲取、需求分析、編寫需求規(guī)格說明書和需求評審四個(gè)步驟進(jìn)行。結(jié)構(gòu)化方法包括配套的結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計(jì)方法和結(jié)構(gòu)化編程方法。核心和基礎(chǔ)是結(jié)構(gòu)化程序設(shè)計(jì)理論。結(jié)構(gòu)化分析方法(SA):

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

實(shí)體—關(guān)系圖

數(shù)據(jù)詞典數(shù)據(jù)流圖數(shù)據(jù)對象描述控制規(guī)格說明加工規(guī)格說明結(jié)構(gòu)化分析方法SA核心是數(shù)據(jù)詞典,它描述了所有的在目標(biāo)系統(tǒng)中使用的和生成的數(shù)據(jù)對象。圍繞著這個(gè)核心的有三種圖:實(shí)體—關(guān)系圖(ERD)描述數(shù)據(jù)對象及數(shù)據(jù)對象之間的關(guān)系;數(shù)據(jù)流圖(DFD)描述數(shù)據(jù)在系統(tǒng)中如何被傳送或變換,以及描述如何對數(shù)據(jù)流進(jìn)行變換的功能(子功能);狀態(tài)—遷移圖(STD)描述系統(tǒng)對外部事件如何響應(yīng),如何動作。ERD用于數(shù)據(jù)建模,DFD用于功能建模,STD用于行為建模。一)數(shù)據(jù)流圖(DFD):軟件系統(tǒng)邏輯模型的一種圖形表示1.特點(diǎn):直觀2.?dāng)?shù)據(jù)流圖的基本符號二)數(shù)據(jù)字典1·定義:分析模型中包含了對數(shù)據(jù)對象、功能和控制的表示。在每一種表示中,數(shù)據(jù)對象和控制項(xiàng)都扮演一定的角色。為表示每個(gè)數(shù)據(jù)對象和控制項(xiàng)的特性,建立了數(shù)據(jù)詞典。數(shù)據(jù)詞典精確地、嚴(yán)格地定義了每一個(gè)與系統(tǒng)相關(guān)的數(shù)據(jù)元素,并以字典式順序?qū)⑺鼈兘M織起來,使得用戶和分析員對所有的輸入、輸出、存儲成分和中間計(jì)算有共同的理解。數(shù)據(jù)字典的作用是對數(shù)據(jù)流圖中出現(xiàn)的被命名的圖形元素的確切解釋2·詞條描述在數(shù)據(jù)詞典的每一個(gè)詞條中應(yīng)包含以下信息:①名稱:數(shù)據(jù)對象或控制項(xiàng)、數(shù)據(jù)存儲或外部實(shí)體的名字。②別名或編號。③分類:數(shù)據(jù)對象?加工?數(shù)據(jù)流?數(shù)據(jù)文件?外部實(shí)體?控制項(xiàng)(事件∕狀態(tài))?④描述:描述內(nèi)容或數(shù)據(jù)結(jié)構(gòu)等。⑤何處使用:使用該詞條(數(shù)據(jù)或控制項(xiàng))的加工。3·內(nèi)容描述 在數(shù)據(jù)詞典的編制中,分析員最常用的描述內(nèi)容或數(shù)據(jù)結(jié)構(gòu)的符號如表2.1所示。

4·加工:加工規(guī)格說明用來說明DFD中的數(shù)據(jù)加工的加工細(xì)節(jié)。加工規(guī)格說明描述了數(shù)據(jù)加工的輸入,實(shí)現(xiàn)加工的算法以及產(chǎn)生的輸出。加工規(guī)格說明指明了加工(功能)的約束和限制,與加工相關(guān)的性能要求,以及影響加工的實(shí)現(xiàn)方式的設(shè)計(jì)約束。注意,寫加工規(guī)格說明的主要目的是要表達(dá)“做什么”,而不是“怎樣做”。應(yīng)描述數(shù)據(jù)加工實(shí)現(xiàn)加工的策略而不是實(shí)現(xiàn)加工的細(xì)節(jié)。目前用于寫加工規(guī)格說明的工具有結(jié)構(gòu)化語言、判定表和判定樹。三)加工規(guī)格化說明工具a.結(jié)構(gòu)化語言:自然語言加上結(jié)構(gòu)化形式化的語言。是一種介于自然語言和程序設(shè)計(jì)語言之間的語言。b.判定樹是判定表的圖形表示。c.判定表采用表格化的形式,適于表達(dá)含有復(fù)雜判斷的加工邏輯。d.加工說明卡片加工說明可以像字典條目一樣記載在卡片上2.軟件設(shè)計(jì)

1)總體設(shè)計(jì):主要任務(wù)是建立軟件的總體結(jié)構(gòu),畫出有模塊組成的軟件結(jié)構(gòu)圖或?qū)哟螆D。又稱結(jié)構(gòu)設(shè)計(jì)。

2)詳細(xì)設(shè)計(jì):針對單個(gè)模塊的設(shè)計(jì),目的是確定模塊內(nèi)部的過程結(jié)構(gòu)。要求為每一個(gè)模塊提供一個(gè)模塊過程性描述。詳細(xì)說明實(shí)現(xiàn)該功能的算法和數(shù)據(jù)結(jié)構(gòu),又稱算法設(shè)計(jì)。

需求分析主要解決“做什么”的問題,而軟件設(shè)計(jì)主要解決“怎么做”的問題。軟件設(shè)計(jì)主要內(nèi)容包括:軟件結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)、過程設(shè)計(jì)。(按技術(shù)觀點(diǎn)劃分)軟件設(shè)計(jì)分兩步完成,即概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。(按工程管理角度劃分)1、軟件設(shè)計(jì)的基礎(chǔ)軟件設(shè)計(jì)的基本原理包括:抽象、模塊化、信息隱蔽和模塊獨(dú)立化。模塊的耦合性和內(nèi)聚性是衡量軟件的模塊獨(dú)立性的兩個(gè)定性指標(biāo)。內(nèi)聚性:是一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度的度量。耦合性:是模塊間互相連接的緊密程度的度量。一個(gè)設(shè)計(jì)良好的軟件系統(tǒng)應(yīng)具有高內(nèi)聚、低耦合的特征。結(jié)構(gòu)化設(shè)計(jì)方法從系統(tǒng)設(shè)計(jì)的角度出發(fā),軟件設(shè)計(jì)方法可以分為三大類。第一類是根據(jù)系統(tǒng)的數(shù)據(jù)流進(jìn)行設(shè)計(jì),稱為面向數(shù)據(jù)流的設(shè)計(jì)或者過程驅(qū)動的設(shè)計(jì),以結(jié)構(gòu)化設(shè)計(jì)方法為代表。第二類是根據(jù)系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì),稱為面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)或者數(shù)據(jù)驅(qū)動的設(shè)計(jì),以LCP(程序邏輯構(gòu)造)方法、Jackson系統(tǒng)開發(fā)方法和數(shù)據(jù)結(jié)構(gòu)化系統(tǒng)開發(fā)(DSSD)方法為代表。第三類是根據(jù)數(shù)據(jù)、類和對象進(jìn)行設(shè)計(jì)即面向?qū)ο蟮脑O(shè)計(jì)。結(jié)構(gòu)化設(shè)計(jì)方法是基于模塊化、自頂向下細(xì)化、結(jié)構(gòu)化程序設(shè)計(jì)等程序設(shè)計(jì)技術(shù)基礎(chǔ)上發(fā)展起來的。2、總體設(shè)計(jì)(概要設(shè)計(jì))和詳細(xì)設(shè)計(jì)

(1)總體設(shè)計(jì)(概要設(shè)計(jì))軟件概要設(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è)計(jì)文檔評審。

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

程序結(jié)構(gòu)圖的有關(guān)術(shù)語深度:表示控制的層數(shù)。上級模塊、從屬模塊:上、下兩層模塊a和b,且有a調(diào)用b,則a是上級模塊,b是從屬模塊。寬度:整體控制跨度(最大模塊數(shù)的層)的表示。扇入:調(diào)用一個(gè)給定模塊的模塊個(gè)數(shù)。扇出:一個(gè)模塊直接調(diào)用的其他模塊數(shù)。原子模塊:樹中位于葉子結(jié)點(diǎn)的模塊。結(jié)構(gòu)圖的基本形式:基本形式、順序形式、重復(fù)形式、選擇形式。

面向數(shù)據(jù)流的設(shè)計(jì)方法:面向數(shù)據(jù)流的設(shè)計(jì)就是將數(shù)據(jù)流圖變換成結(jié)構(gòu)圖。

典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。

變換型系統(tǒng)結(jié)構(gòu)圖由輸入、中心變換、輸出三部分組成。

事務(wù)型數(shù)據(jù)流的特點(diǎn)是:接受一項(xiàng)事務(wù),根據(jù)事務(wù)處理的特點(diǎn)和性質(zhì),選擇分派一個(gè)適當(dāng)?shù)奶幚韱卧缓蠼o出結(jié)果。

(2)詳細(xì)設(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é)。詳細(xì)設(shè)計(jì)的任務(wù)是確定實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),不同于編碼或編程。

常用的過程設(shè)計(jì)(即詳細(xì)設(shè)計(jì))工具有以下幾種:圖形工具:程序流程圖、N-S(方盒圖)、PAD(問題分析圖)和HIPO(層次圖+輸入/處理/輸出圖)。表格工具:判定表。語言工具:PDL(偽碼):過程設(shè)計(jì)語言,它是用正文形式表示數(shù)據(jù)和處理過程的設(shè)計(jì)工具。4、軟件測試

1、軟件測試定義:使用人工或自動手段來運(yùn)行或測定某個(gè)系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。

軟件測試的目的:盡可能地多發(fā)現(xiàn)程序中的錯(cuò)誤,不能也不可能證明程序沒有錯(cuò)誤。

2、軟件測試方法:靜態(tài)測試和動態(tài)測試。

靜態(tài)測試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量。不實(shí)際運(yùn)行軟件,主要通過人工進(jìn)行。

動態(tài)測試:是基于計(jì)算機(jī)的測試,主要包括白盒測試方法和黑盒測試方法。

(1)白盒測試白盒測試方法也稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試。它是根據(jù)軟件產(chǎn)品的內(nèi)部工作過程,檢查內(nèi)部成分,以確認(rèn)每種內(nèi)部操作符合設(shè)計(jì)規(guī)格要求。白盒測試的基本原則:保證所測模塊中每一獨(dú)立路徑至少執(zhí)行一次;保證所測模塊所有判斷的每一分支至少執(zhí)行一次;保證所測模塊每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次;驗(yàn)證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。白盒測試法的測試用例是根據(jù)程序的內(nèi)部邏輯來設(shè)計(jì)的,主要用軟件的單元測試,主要方法有邏輯覆蓋、基本路徑測試等。(2)黑盒測試黑盒測試方法也稱為功能測試或數(shù)據(jù)驅(qū)動測試。黑盒測試是對軟件已經(jīng)實(shí)現(xiàn)的功能是否滿足需求進(jìn)行測試和驗(yàn)證。黑盒測試主要診斷功能不對或遺漏、接口錯(cuò)誤、數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫訪問錯(cuò)誤、性能錯(cuò)誤、初始化和終止條件錯(cuò)誤。主要方法有等價(jià)類劃分法、邊界值分析法、錯(cuò)誤推測法等。黑盒測試是程序功能的測試,主要用軟件的確認(rèn)測試。

3、軟件測試過程軟件測試過程一般按4個(gè)步驟進(jìn)行:單元測試集成測試確認(rèn)測試系統(tǒng)測試(1)單元測試單元測試是對軟件設(shè)計(jì)的最小單位——模塊(程序單元)進(jìn)行正確性檢測的測試。單元測試的目的是發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種錯(cuò)誤。(1)單元測試單元測試的依據(jù)是詳細(xì)設(shè)計(jì)說明書和源程序。單元測試的技術(shù)可以采用靜態(tài)分析和動態(tài)測試。對動態(tài)測試通常以白盒測試為主,輔之以黑盒測試。在進(jìn)行單元測試時(shí),要用一些輔助模塊去模擬與被測模塊相聯(lián)系的其他模塊,即為被測模塊設(shè)計(jì)和搭建驅(qū)動模塊和樁模塊。驅(qū)動模塊相當(dāng)于被測模塊的主程序,它接收測試數(shù)據(jù),并傳給被測模塊,輸出實(shí)際測試結(jié)果;樁模塊是模擬其他被調(diào)用模塊,不必將子模塊的所有功能帶入。(2)集成測試集成測試是測試和組裝軟件的過程。它是把模塊在按照設(shè)計(jì)要求組裝起來的同時(shí)進(jìn)行測試,主要目的是發(fā)現(xiàn)與接口有關(guān)的錯(cuò)誤。集成測試的依據(jù)是總體設(shè)計(jì)說明書。集成測試所涉及的內(nèi)容包括:軟件單元的接口測試全局?jǐn)?shù)據(jù)結(jié)構(gòu)測試邊界條件和非法輸入的測試等(3)確認(rèn)測試確認(rèn)測試的任務(wù)是驗(yàn)證軟件的功能和性能及其他特性是否滿足需求規(guī)格說明中確定的各種需求,以及軟件配置是否完全、正確。(4)系統(tǒng)測試系統(tǒng)測試是將通過確認(rèn)測試的軟件,作為整個(gè)基于計(jì)算機(jī)系統(tǒng)的一個(gè)元素,與計(jì)算機(jī)硬件、外設(shè)、支持軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素組合在一起,在實(shí)際運(yùn)行(使用)環(huán)境下對計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的集成測試和確認(rèn)測試。

5、程序的調(diào)試程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤,主要在開發(fā)階段進(jìn)行。(注意與軟件測試區(qū)分)程序調(diào)試的基本步驟:(1)錯(cuò)誤定位;(2)修改設(shè)計(jì)和代碼,以排除錯(cuò)誤;(3)進(jìn)行回歸測試,防止引進(jìn)新的錯(cuò)誤。

軟件調(diào)試可分為靜態(tài)調(diào)試和動態(tài)調(diào)試。靜態(tài)調(diào)試主要是指通過人的思維來分析源程序代碼和排錯(cuò),是主要的調(diào)試手段,而動態(tài)調(diào)試是輔助靜態(tài)調(diào)試。對軟件主要的調(diào)試方法可以采用:(1)強(qiáng)行排錯(cuò)法;(2)回溯法;(3)原因排除法。6軟件的維護(hù)基本概念軟件維護(hù)的任務(wù):改正錯(cuò)誤和缺陷改進(jìn)設(shè)計(jì)和適應(yīng)新的環(huán)境增加新的應(yīng)用范圍維護(hù)的分類改正性維護(hù)診斷和改正錯(cuò)誤的過程。

適應(yīng)性維護(hù)是為了和變化了的環(huán)境適當(dāng)?shù)嘏浜隙M(jìn)行的修改軟件的活動,是既必要又經(jīng)常的維護(hù)活動。

完善性維護(hù)用戶提出的一般性的改進(jìn)意見。

預(yù)防性維護(hù)為了改進(jìn)未來的可維護(hù)性和可靠性,或?yàn)榱私o未來的改進(jìn)奠定更好的基礎(chǔ)而修改軟件。例題講解軟件生命周期中所花費(fèi)用最多的階段是

A)詳細(xì)設(shè)計(jì) B)軟件編碼C)軟件測試D)軟件維護(hù)下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是

A)便于用戶、開發(fā)人員進(jìn)行理解和交流

B)反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)

C)作為確認(rèn)測試和驗(yàn)收的依據(jù)

D)便于開發(fā)人員進(jì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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論