軟件工程知識(軟考備考要點(diǎn))_第1頁
軟件工程知識(軟考備考要點(diǎn))_第2頁
軟件工程知識(軟考備考要點(diǎn))_第3頁
軟件工程知識(軟考備考要點(diǎn))_第4頁
軟件工程知識(軟考備考要點(diǎn))_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

軟件工程知識(軟考備考要點(diǎn)匯總)

1.1概述

軟件由計算機(jī)程序、數(shù)據(jù)及文檔組成,同時與硬件、數(shù)據(jù)庫人、過程等共同構(gòu)成計算機(jī)

系統(tǒng)。

軟件工程是1968年在德國的NATO會議上提出的,希望用工程化的原則和方法來克服

軟件危機(jī);而軟件危機(jī)就是軟件開發(fā)和維護(hù)過程中的各種問題,由于軟件開發(fā)階段缺乏好的

方法的指導(dǎo)和好的工具的輔助,而且缺少有關(guān)的文檔,使得大量的軟件難以維護(hù)。

軟件工程是指應(yīng)用計算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,以工程化的原則和方法來解決

軟件問題的工程。其目的是提高軟件生產(chǎn)率、提高軟件質(zhì)量、減低軟件成本。軟件工程包括

三個要素:方法、工具和過程。

軟件工程基本原理(7個):

n按軟件生存周期分階段指定計劃并認(rèn)真實施;

n堅持進(jìn)行階段評審;

n堅持嚴(yán)格的產(chǎn)品控制;

n使用現(xiàn)代程序設(shè)計技術(shù);

n明確責(zé)任,使得工作結(jié)果能夠得到清楚的審查;

n用人少而精;

n不斷改進(jìn)開發(fā)過程;

軟件生命周期是指由軟件定義、軟件開發(fā)和軟件維護(hù)等階段組成的全過程,反映軟件生

存期內(nèi)各種工作得組織以及各個階段如何銜接。下表歸納了軟件生存周期各個階段的任務(wù)、

參與人員和產(chǎn)生文檔。

階段任務(wù)參與人員產(chǎn)生文檔

軟件定義階段一待開發(fā)軟件要“做什么”

系統(tǒng)分析確定待開發(fā)軟件的總體要求和適用范圍,用戶、項目負(fù)責(zé)人、可合并項目計劃書中

以及與之有關(guān)的硬件、支撐軟件的要求系統(tǒng)分析員

軟件項目計確定待開發(fā)軟件的目標(biāo),對其進(jìn)行可行性用戶、項目負(fù)責(zé)人、可行性分析報告、項目

劃分析,并對資源分配、進(jìn)度安排等做出合系統(tǒng)分析員計劃書

理的計劃

需求分析確定待開發(fā)軟件的功能、性能、界面等要用戶、項目負(fù)責(zé)人、需求規(guī)格說明書

求,從而確定系統(tǒng)的邏輯模型系統(tǒng)分析員

軟件開發(fā)階段一待開發(fā)軟件“怎么做”

概要模塊分解,確定軟件的結(jié)構(gòu),模塊的功能系統(tǒng)分析員、高級程設(shè)計說明歸、數(shù)據(jù)說明

設(shè)計和模塊間的接口,以及全局?jǐn)?shù)據(jù)結(jié)構(gòu)的設(shè)序員書、模塊開發(fā)卷宗

軟件

設(shè)計

詳細(xì)設(shè)計每個模塊的實現(xiàn)細(xì)節(jié)和局部數(shù)據(jù)結(jié)高級程序員、程序員

設(shè)計構(gòu)的設(shè)計

編碼用某種程序語言為每個模塊編寫程序高級程序員、程序員程序清單

軟件測試發(fā)現(xiàn)軟件中的錯誤,并加以糾正高級程序員或系統(tǒng)分軟件測試計劃、軟件測

析員(另一部門或單試用例說明,軟件測試

位)報告

軟件維護(hù)階段一開發(fā)后交付使用的軟件的維護(hù)

軟件維護(hù)使軟件適應(yīng)外界環(huán)境的變化、實現(xiàn)功能的維護(hù)人員維護(hù)計劃、維護(hù)報告

擴(kuò)充和質(zhì)量的改善而修改軟件

生命周期法:生命周期法認(rèn)為:每一個軟件系統(tǒng)都有一定的生命周期。軟件的生命周期

是指一個軟件系統(tǒng)從其提出、調(diào)查到分析、設(shè)計和有效使用,直至被淘汰或取代的整個期間。

軟件生命周期法就是按軟件生命周期的各個階段劃分任務(wù),按一定的規(guī)則和步驟,有效地進(jìn)

行軟件開發(fā)的方法。

通常一個軟件系統(tǒng)的生命周期可分為五個階段:可行性分析、分析階段、設(shè)計階段、實

施階段、運(yùn)行與維護(hù)階段

原型法:原型法是先根據(jù)用戶的最主要要求,開發(fā)出能實現(xiàn)系統(tǒng)最基本功能的一個原型,

再根據(jù)用戶對原型使用與評價的意見,反復(fù)修改完善原型,直到等到用戶滿意的最終系統(tǒng)為

止。

原型法分4個階段:確定用戶需求;設(shè)計原型;使用、評價原型;修改、完善原型。

1.2軟件維護(hù)和軟件管理

軟件開發(fā)項目管理基礎(chǔ)知識(時間管理、成本管理、質(zhì)量管理、人力資源管理、風(fēng)險管

理等)及其常用管理工具

軟件管理工作涉及到軟件開發(fā)工作的方方面面,其直接對象包括人、財.、物,簡單地說,

人就是指軟件開發(fā)人員,財就是指項目經(jīng)費(fèi),物就是指軟件項目。也許還沒有關(guān)于這方面的

專門理論,但在工商管理領(lǐng)域已經(jīng)有十分成熟的管理學(xué)理論,他山之石,可以攻玉,所以我

們完全可以引進(jìn)到軟件項目方面的管理。

作為軟件管理人員,應(yīng)該站在高處來俯瞰整個項目,如果有不識廬山真面目的感覺就不

太好了。有了俯瞰全局的意識這一前提,采用適當(dāng)?shù)墓芾砑夹g(shù),項目開展就容易羅。軟件項

目的管理工作可以分位四個方面:軟件項目的計劃、軟件項目的組織、軟件項目的領(lǐng)導(dǎo)和

軟件項目的控制.

1軟件項目的計劃

軟件開發(fā)項目的計劃包括定義項目的目標(biāo),以及達(dá)到目標(biāo)的方法。他涉及到項目實施

的各個環(huán)節(jié),帶有全局的性質(zhì),是戰(zhàn)略性的。計劃應(yīng)力求完備,要考慮到一些未知因素和不

確定因素,考慮到可能的修改。計劃應(yīng)力求準(zhǔn)確,盡可能提高所依據(jù)的數(shù)據(jù)的可靠程度。主

要工作集中在軟件項目的估算、軟件開發(fā)成本的估算和軟件項目進(jìn)度安排。軟件項目計劃的

目標(biāo)是提供一個能使項目管理人員對資源、成本和進(jìn)度做出合理估算的框架。這些估算應(yīng)在

軟件項目開始時的一段有限時間內(nèi)作出,并隨著項目的進(jìn)展進(jìn)行更新。

2軟件項目的估算

軟件項目管理過程開始于項目的計劃,在做項目計劃時,第一項活動是估算。現(xiàn)在已經(jīng)

使用的使用技術(shù)是時間和工作量的估算。因為估算是其他項目計劃活動的基石,而且項目計

劃又未軟件工程過程提供了工作方向,所以我們不能沒有計劃就著手開發(fā),否則就會陷入盲

目性。

估算本身帶有風(fēng)險,估算資源、成本和項目進(jìn)度時需要經(jīng)驗、有用的歷史信息、足夠

的定量數(shù)據(jù)和作定量度量的勇氣。估算的精確程度受到多方面的影響。首先,項目的復(fù)雜

性對于增加軟件計劃的不確定性影響很大,復(fù)雜性越高,估算的風(fēng)險就越高。復(fù)雜性是相對

度量的,他與項目參加人員的經(jīng)驗有關(guān),比如如果讓搞MIS的項目組去搞操作系統(tǒng)設(shè)計顯

然增加了復(fù)雜性。其次,項目的規(guī)模對于估算的精確性和功效的影響也比較大,因為隨著軟

件規(guī)模的擴(kuò)大,軟件相同元素之間的相互依賴、相互影響也迅速增加,因而估算時進(jìn)行問題

分解也會變得更加困難。還有項目的結(jié)構(gòu)化程度也影響項目估算的風(fēng)險,這里的結(jié)構(gòu)性是指

功能分解的簡便性和處理信息的層次性,結(jié)構(gòu)化程度提高,進(jìn)行精確估算的能力就提高,相

應(yīng)風(fēng)險將減少。此外,歷史信息的有效性也影響估算的風(fēng)險,在對過去的項目進(jìn)行這綜合的

軟件度量之后,就可以借用來比較準(zhǔn)確地進(jìn)行估算。影響估算的因素遠(yuǎn)不止這些,比如用戶

需求的頻繁變更給估算帶來非常大的影響。

估算的依據(jù)是軟件的范圍,包括功能,性能、限制、接口和可靠性。在估算開始之前,

應(yīng)對軟件的功能進(jìn)行評價,并對其進(jìn)行適當(dāng)?shù)募?xì)化以便提供更詳細(xì)的細(xì)節(jié)。由于成本和進(jìn)度

的估算都與功能有關(guān),因此常常采用功能分解的辦法。性能的考慮主要包括處理和響應(yīng)時間

的需求。約束條件則標(biāo)識外部硬件、可用存儲和其他現(xiàn)有系統(tǒng)對軟件的限制。

另外軟件項目計劃還要完成資源估算,包括人力資源、硬件資源和軟件資源。在考慮各

種軟件開發(fā)資源時最重要的是人,必須考慮人員的技術(shù)水平、專業(yè)、人數(shù)以及在開發(fā)過程各

階段對各種人員的需要。硬件資源作為一種工具投入。軟件資源包括各種幫助開發(fā)的軟件工

具,比如編程工具、管理工具、測試工具,還有操作系統(tǒng)和數(shù)據(jù)庫等。

1.3軟件開發(fā)工具與環(huán)境(CASE)

用來輔助軟件開發(fā)、運(yùn)行、維護(hù)、管理和支持等過程中的活動的軟件稱為軟件工具,通

常也稱為CASE(計算機(jī)輔助軟件工程)工具。

整個軟件開發(fā)過程要使用很多開發(fā)工具,其中包括分析工具、設(shè)計工具、編程工具、測

試工具、維護(hù)工具等等。

軟件開發(fā)工具是指支持軟件產(chǎn)品開發(fā)的軟件系統(tǒng),它由軟件工具集和環(huán)境集成機(jī)智構(gòu)

成。工具集包括支持軟件開發(fā)相關(guān)過程、活動、任務(wù)的軟件工具;環(huán)境集成機(jī)智為工具集成

和軟件開發(fā)、維護(hù)和管理提供統(tǒng)一的支持。

軟件開發(fā)環(huán)境是把一組相關(guān)的工具集成在環(huán)境中,提供數(shù)據(jù)集成、控制集成和界面集成

等機(jī)制。其中:

0數(shù)據(jù)集成機(jī)制:提供統(tǒng)一的數(shù)據(jù)模式和數(shù)據(jù)接口規(guī)范,需要相互協(xié)同的工具通過這

種統(tǒng)一的規(guī)范交換數(shù)據(jù)。數(shù)據(jù)集成可由共享文件、共享數(shù)據(jù)結(jié)構(gòu)或共享信息庫等不同的層次;

0控制集成機(jī)制:支持各工具或各開發(fā)活動之間的通信、切換、調(diào)度和協(xié)同工作,并

且支持軟件開發(fā)過程的描述、執(zhí)行和轉(zhuǎn)接;通常消息傳送的方式實現(xiàn)控制的集成。

0界面集成機(jī)制使這些工具具有統(tǒng)一的界面風(fēng)格,從而為軟件開發(fā)、維護(hù)、管理等過

程的各項活動提供連續(xù)的、一致的全方位支持。

集成型軟件開發(fā)環(huán)境由工具集和環(huán)境集成機(jī)制組成,這種環(huán)境應(yīng)該具有開放性和可剪裁

性;

環(huán)境集成機(jī)制的核心是環(huán)境數(shù)據(jù)庫。

1.4軟件分析

可行性分析的任務(wù)是從技術(shù)上、經(jīng)濟(jì)上、使用上、法律上分析需解決的問題是否存在可

行的解。

需求分析是軟件生存周期中相當(dāng)重要的一個階段。需求分析主要是確定待開發(fā)軟件的功

能、性能、數(shù)據(jù)、界面等要求。具體有以下幾點(diǎn):

0確定軟件系統(tǒng)的綜合要求

0分析軟件系統(tǒng)的數(shù)據(jù)要求

0導(dǎo)出系統(tǒng)的邏輯模型

0修正項目開發(fā)計劃

0如有必要,可開發(fā)一個原型系統(tǒng)

需求分析的基本原則是能夠表達(dá)和理解問題的信息域和功能域;以層次化的方式進(jìn)行分

解和不斷細(xì)化;要給出系統(tǒng)的邏輯視圖和物理視圖;

描述軟件需求的方法:

功能層次模型:一般來講就是系統(tǒng)的功能圖,模塊分布圖等描述整個系統(tǒng)的功能的分布

和功能的層次結(jié)構(gòu);

數(shù)據(jù)流模型:就是以數(shù)據(jù)流為著眼點(diǎn)的分析方法得到的模型,主要通過數(shù)據(jù)在整個系統(tǒng)

的流動情況來確定系統(tǒng)的主要功能主線和流程;

控制流模型:通過了解和界定系統(tǒng)中控制線,通過控制流的走向和控制的對象來確定系

統(tǒng)的功能分布和控制與被控制的關(guān)系;

結(jié)構(gòu)化分析(SA)方法是一種面向數(shù)據(jù)流的需求分析方法,它適用于分析大型數(shù)據(jù)處理系

統(tǒng)。結(jié)構(gòu)化分析方法的基本思想是自頂向下逐層分解,這樣做可以把一個大問題分解成若干

個小問題,經(jīng)過多次逐層分解,每個最底層的問題都是足夠簡單、容易解決的,這個過程就

是分解的過程。

結(jié)構(gòu)化方法的分析結(jié)果山數(shù)據(jù)流圖DFD、數(shù)據(jù)詞典和加工邏輯說明幾個部分組成。其

中,DFD的基本成分有數(shù)據(jù)流(dataflow)、加工(process)、文件(file)和源/宿(source/sink)。

n畫數(shù)據(jù)流圖的基本步驟:自外向內(nèi)、自頂向下、逐層細(xì)化、完善求精;

n數(shù)據(jù)流圖的父圖與子圖要平衡,即輸入和輸出的數(shù)據(jù)流,致;

n數(shù)據(jù)流圖中的每個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流;

n局部的數(shù)據(jù)存儲不畫出來,只有當(dāng)局部數(shù)據(jù)存儲作為某些數(shù)據(jù)加工之間的數(shù)據(jù)接口才

畫出,這有利于信息隱蔽;

n畫數(shù)據(jù)流的時候不畫控制流,兩者的區(qū)別就是控制流中沒有數(shù)據(jù);

n一個加工的數(shù)據(jù)流與輸出流不應(yīng)該同名;

n允許一個加工有多條數(shù)據(jù)流流向另一個加工,也允許一個加工有兩個相同的輸出流向

兩個不同的加工;

n保持?jǐn)?shù)據(jù)守恒:一個加工的所有輸出數(shù)據(jù)必須能從該加工的所有的輸入流中獲得;

n在整套數(shù)據(jù)流圖中,每個文件都必須既有讀文件的數(shù)據(jù)流也有寫文件的數(shù)據(jù)流;

1.5軟件設(shè)計

軟件設(shè)計原則:軟件設(shè)計的原則對提高軟件的設(shè)計質(zhì)量有很大的幫助。

?抽象

抽象是指忽視一個主題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有

關(guān)的方面。過程抽象和數(shù)據(jù)抽象是常用的兩種主要抽象手段。

?模塊化

模塊化是指將一個待開發(fā)的軟件分解成若干個小的簡單的部分——模塊,每個模塊可獨(dú)

立地開發(fā)、測試、最后組裝成完整的軟件。這是一種復(fù)雜問題的“分而治之'’的原則。

模塊是指執(zhí)行某一特定任務(wù)的數(shù)據(jù)結(jié)構(gòu)和程序代碼。一個模塊有它的外部特征和內(nèi)部特

征。

?信息隱蔽、數(shù)據(jù)封裝

信息隱蔽是開發(fā)整體程序結(jié)構(gòu)時使用的法則,即將每個程序的成分隱蔽或封裝在一個單

一的設(shè)計模塊中,定義每一個模塊時盡可能少地顯露其內(nèi)部的處理。信息隱蔽原則對提高軟

件的可修改性、可測試性和可移植性都有重要的作用。

?模塊獨(dú)立

模塊獨(dú)立是指每個模塊完成一個相對獨(dú)立的子功能,并且與其他模塊之間的聯(lián)系簡單。

衡量模塊獨(dú)立程度的度量標(biāo)準(zhǔn)有兩個:耦合和內(nèi)聚。

耦合是指模塊之間聯(lián)系的緊密程度。耦合度越高則模塊的獨(dú)立性越差。按耦合度從低到

高依次有7種耦合方式.

0非直接耦合(獨(dú)立運(yùn)行)

0數(shù)據(jù)耦合(用參數(shù)表傳遞簡單數(shù)據(jù))

0標(biāo)記耦合(傳遞數(shù)據(jù)結(jié)構(gòu)或者一部分)

0控制耦合(傳遞的信息包括控制模塊的信息)

0外部耦合(模塊與軟件之外的環(huán)境有關(guān))

0公共耦合(多個模塊引用同一全局的數(shù)據(jù)區(qū))

0內(nèi)容耦合(訪問內(nèi)部數(shù)據(jù),代碼重疊或者多個入口)

內(nèi)聚是指模塊內(nèi)部各元素之間聯(lián)系的緊密程度內(nèi)聚度越低模塊的獨(dú)立性越差。按內(nèi)聚度

從低到高依次有7種內(nèi)聚種類。

0偶然內(nèi)聚(模塊完成的多個任務(wù),任務(wù)之間的關(guān)系松散)

0邏輯內(nèi)聚(模塊完成邏輯相關(guān)的?組任務(wù))

0瞬時內(nèi)聚(模塊的所有任務(wù)必須在同一時間間隔內(nèi)執(zhí)行)

0過程內(nèi)聚(模塊的處理元素相關(guān)而且按照特定的次序執(zhí)行)

0通信內(nèi)聚(模塊的所有元素集中在一個數(shù)據(jù)結(jié)構(gòu)區(qū)域上)

0順序內(nèi)聚(模塊的處理元素相關(guān),必須順序執(zhí)行)

0功能內(nèi)聚(模塊完成單一的功能,各個部分協(xié)調(diào)工作,而且不可缺少)

模塊分解原則:

0滿足信息隱蔽;

0盡量內(nèi)聚度高,模塊間偶合度低;

0模塊大小在(50-100語句);

0模塊調(diào)用深度不能過大;

0模塊的扇入(直接調(diào)用該模塊)應(yīng)盡量大,扇出(直接調(diào)用下級模塊數(shù))不宜過大;

0設(shè)計單入口和單出口的模塊;

0模塊的作用域應(yīng)在控制域之內(nèi):

作用域:受模塊內(nèi)一個判定影響的所有的模塊的集合;

控制域:該模塊本身和被該模塊直接或間接調(diào)用的所有的模塊的集合;

0模塊的功能應(yīng)是可以預(yù)測的,相同輸入得到相同輸出

結(jié)構(gòu)化設(shè)計方法

結(jié)構(gòu)化設(shè)計(SD)方法是一種面向數(shù)據(jù)流的設(shè)計方法,它可以與SA方法銜接。

結(jié)構(gòu)化設(shè)計采用結(jié)構(gòu)圖(SC)來描述程序的結(jié)構(gòu)。其基本成分有模塊、調(diào)用和輸入/輸出

數(shù)據(jù)。

結(jié)構(gòu)圖:

條件調(diào)用循環(huán)調(diào)用

在需求分析階段用SA方法產(chǎn)生了數(shù)據(jù)流圖(DFD)。面向數(shù)據(jù)流的設(shè)計可以方便的將

DFD轉(zhuǎn)換成程序結(jié)構(gòu)圖。DFD從系統(tǒng)的輸入數(shù)據(jù)流到系統(tǒng)的輸出數(shù)據(jù)流的?連串連續(xù)變換

形成一條信息流。DFD的信息流大體可分為兩種類型:變換流和事務(wù)流。與之時應(yīng)的也存

在兩種分析,變換分析和事務(wù)分析。變換分析是從變換流型的DFD導(dǎo)出程序結(jié)構(gòu)圖,而事

務(wù)分析則是從事務(wù)流行型的DFD導(dǎo)出程序結(jié)構(gòu)圖。

SD方法的具體設(shè)計步驟為:

0復(fù)查并精化數(shù)據(jù)流圖

0確定DFD的信息流類型

0根據(jù)信息流類型分別將變換流或事務(wù)流轉(zhuǎn)換成程序結(jié)構(gòu)圖

0根據(jù)軟件設(shè)計的原則對程序結(jié)構(gòu)圖作改進(jìn)

結(jié)構(gòu)化程序設(shè)計

結(jié)構(gòu)化程序(SP)設(shè)計采用自頂向下逐步求精的設(shè)計方法和單入口單出口的控制結(jié)構(gòu)。

結(jié)構(gòu)化程序設(shè)計的描述工具主要有圖形描述工具、語言描述工具和表格描述工具。常用

的圖形描述工具有程序流程圖、盒圖(NS圖)和問題分析圖(PAD)。典型的語言描述工具是

PDL(programdesignlanguage)。典型的及格描述工具是判定表和判定樹。

面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法也十分常用:

Jackson方法是以數(shù)據(jù)結(jié)構(gòu)為設(shè)計基礎(chǔ),設(shè)計目標(biāo)是得出對程序處理過程的描述,其設(shè)

計過程是從描繪數(shù)據(jù)結(jié)構(gòu)的Jackson圖推導(dǎo)出描繪程序結(jié)構(gòu)的Jackson圖。這種方法最適合

于詳細(xì)設(shè)計階段使用。

Jackson方法的具體設(shè)計步驟為:

0分析并確定輸入和輸出的數(shù)據(jù)的邏輯結(jié)構(gòu),并用Jackson圖表示

0找出輸入數(shù)據(jù)結(jié)構(gòu)與輸出數(shù)據(jù)結(jié)構(gòu)間有對應(yīng)關(guān)系的數(shù)據(jù)單元

0從描述數(shù)據(jù)結(jié)構(gòu)的Jackson圖導(dǎo)出描述程序結(jié)構(gòu)的Jackson圖

軟件編碼:

根據(jù)詳細(xì)設(shè)計說明書編寫程序,為開發(fā)項目選擇程序設(shè)計語言需要考慮的因素有應(yīng)用領(lǐng)

域、算法和計算的復(fù)雜性、軟件運(yùn)行環(huán)境、用戶需求、數(shù)據(jù)結(jié)構(gòu)和開發(fā)人員的水平。軟件的

設(shè)計質(zhì)量與程序設(shè)計語言的技術(shù)性能無關(guān),但在程序設(shè)計轉(zhuǎn)向程序代碼時,轉(zhuǎn)化的質(zhì)量受語

言性能的影響。

好的程序應(yīng)該具有模塊化結(jié)構(gòu),系統(tǒng)應(yīng)該有較高的模塊獨(dú)立性。

從應(yīng)用領(lǐng)域看,COBOL適合商業(yè)領(lǐng)域;FORTRAN適合科學(xué)計算;PROLOG和LISP適合

人工智能領(lǐng)域;SMALLTALK、C++、JAVA是面向?qū)ο笳Z言;C是開發(fā)系統(tǒng)的程序設(shè)計語言;

L6軟件測試

對源程序最基本的質(zhì)量要求是正確性和可靠性,此外還很注重軟件的易使用性、易維護(hù)

性和易移植性。軟件測試的工作量約占軟件開發(fā)總工作量的40%以上,其目的是盡可能多

的發(fā)現(xiàn)軟件產(chǎn)品(主要是指程序)中的錯誤和缺陷。

軟件測試是自底向匕逐步集成的過程,低一級測試為上?級測試準(zhǔn)備條件;

測試的關(guān)鍵是測試用例的設(shè)計,其方法可分為兩類。

白盒測試:

白盒測試是根據(jù)程序的內(nèi)部邏輯來設(shè)計測試用例,常用的技術(shù)是邏輯覆蓋,即考察用例

測試數(shù)據(jù)運(yùn)行被測程序時對程序邏輯的覆蓋程度。主要的覆蓋標(biāo)準(zhǔn)有6種:

I.語句覆蓋

指選擇足夠的測試用例,使被測語句的每個語句至少執(zhí)行一次。

n.判定覆蓋

指選擇足夠的測試用例,使每個判定的所有可能結(jié)果至少出現(xiàn)一次。

ni.條件覆蓋

指選擇足夠的測試用例,使判定中的每個條件的所有可能結(jié)果至少出現(xiàn)一次。

IV,判定/條件覆蓋

指選擇足夠的測試用例,使判定中的每個條件的所有可能結(jié)果至少出現(xiàn)一次,并且每個

判定中條件結(jié)果的所有可能組合也至少出現(xiàn)一次。

V.條件組合覆蓋

指選擇足夠的測試用例,使每個判定中條件結(jié)果的所有可能組合至少出現(xiàn)一次。

VI.路徑覆蓋

指選擇足夠的測試用例,使流程圖中的每條路徑至少經(jīng)過一次。

黑盒測試:

黑盒測試時根據(jù)規(guī)格說明所規(guī)定的功能來設(shè)計測試用例,它不考慮程序的內(nèi)部結(jié)構(gòu)和處

理過程。常用的黑盒測試技術(shù)有:

0等價類劃分

0邊值劃分

0錯誤猜測

軟件測試的主要步驟有單元測試、集成測試和確認(rèn)測試。

單元測試:

主要用來發(fā)現(xiàn)編碼和詳細(xì)設(shè)計中產(chǎn)生的錯誤,一般在編碼階段,采用白盒測試。

集成測試(也稱組裝測試):

主要用來發(fā)現(xiàn)設(shè)計階段產(chǎn)生的錯誤,是對各模塊組裝而成的程序進(jìn)行測試,主要檢查模

塊間的接口和通信,采用黑盒測試。

集成測試按集成方式又可分成非漸增式集成和漸增式集成,而漸增式集成又可分成自頂

向下集成和自底向上集成。

確認(rèn)測試:

檢查軟件的功能、性能和其他特征是否與用戶需求一致,它以需求規(guī)格說明書作測試為

依據(jù),采用黑盒測試

Alpha測試是在開發(fā)者的現(xiàn)場由客戶來實施的,從用戶角度和環(huán)境下進(jìn)行;

Beta測試是在開發(fā)者不在現(xiàn)場下測試,由軟件最終用戶實施;

使用各種測試方法的綜合策略:

n在任何情況下都必須使用邊界值分析方法,用這種方法設(shè)計出測試用例發(fā)現(xiàn)程序錯誤

的能力最強(qiáng);

n必要時用等價類劃分方法補(bǔ)充一些測試用例;

n用錯誤推測法再追加一些測試用例

n對照程序邏輯,檢查已有測試用例的邏輯覆蓋程度

n如果程序的功能說明中含有輸入條件的組合情況,則選用因果圖法

1.7面向?qū)ο蠹夹g(shù)

1.7.1面向?qū)ο蟮幕靖拍?/p>

面向?qū)ο?object-oriented,00)方法是以客觀世界中的對象為中心,其分析和設(shè)計思想

符合人們的思維方式,分析和設(shè)計的結(jié)果與客觀世界的實際比較接近,容易被人們所接受。

下面列舉幾個面向?qū)ο笤O(shè)計方法中的重要術(shù)語,它們構(gòu)成面向?qū)ο蟮某绦蛟O(shè)計語言的核心。

?對象(Object)

對象是和有數(shù)據(jù)及可對這些數(shù)據(jù)施加的操作結(jié)合在一起所構(gòu)成的獨(dú)立單位的總稱。一個

對象通??捎蓪ο竺?、屬性和操作三部分組成。

對象的劃分判定標(biāo)準(zhǔn):

1、子對象之間獨(dú)立性要高,即耦合度盡量達(dá)到最低,(理想的情況是達(dá)到組件化的程

度);

2、子對象相對其他劃分方法,更易于處理。所以對于復(fù)雜的大系統(tǒng),一般都要經(jīng)過多

次的嘗試,以盡量能找到較優(yōu)的劃分方案。對于比較簡單的系統(tǒng),E-R轉(zhuǎn)換也能的到較為滿

意的劃分。

?實例(Instance)

實例是由某個特定類所描述的一個對象。

?類(Class)

類是一組具有相同屬性和相同操作的對象的集合。類是面向?qū)ο蟮某绦蛟O(shè)計語言提供的

可再用軟件成分。

?方法(Method)

對象所能執(zhí)行的操作稱為方法。方法是類中定義的函數(shù),描述對象執(zhí)行操作的算法。

?消息(Message)

消息是要求某個對象執(zhí)行類中定義的某個操作的規(guī)格說明。一個消息通常包括接受對象

名、調(diào)用的操作名和適當(dāng)?shù)膮?shù)(如有必要)。

主要特點(diǎn):

?封裝性

封裝性是一種信息隱蔽技術(shù),它使系統(tǒng)分析員能夠清晰地標(biāo)明他們所提供的服務(wù)界面,

用戶和應(yīng)用程序員則只看得見對象提供的操作功能(即封裝面上的信息),看不到其中的數(shù)據(jù)

或操作代碼細(xì)節(jié)。

?多態(tài)性

多態(tài)性是指同一個操作作用于不同的對象可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果。

?繼承性

繼承是指在某個類的層次關(guān)聯(lián)中,不同的類共享屬性和操作的一種機(jī)制。一個父類可以

有多個子類。父類描述了這些子類的公共屬性和操作,子類中還可以定義其自己的屬性和操

作。如果一個子類只有唯一的一個父類,這種繼承稱為單一繼承。如果一個子類有多個父類,

可以從多個父類中繼承特性,這種繼承稱為多重繼承。

?分布式對象DistributedObject

在發(fā)布實施角度上看,對象可分為三種:本地對象,遠(yuǎn)地對象,虛擬對象。

本地對象LocalObject:指分布在同一個系統(tǒng)中的對象,互稱為本地對象

遠(yuǎn)地對象RemoteObject:指分布在不同系統(tǒng)中的對象(同?個群體系統(tǒng))。

虛擬對象VirtualObject:不同于本地和遠(yuǎn)地對象,虛擬對象不屬于真實的對象,而是

一個虛設(shè)的類型。真正的操作不在虛擬對象本身,只是遠(yuǎn)地對象在本地的映射。

本地和遠(yuǎn)地對象是相互的關(guān)系。而虛擬對象只是?一種映射,用于關(guān)聯(lián)本地和遠(yuǎn)地對象,

起到分布和負(fù)載均衡的作用。

面向?qū)ο髷?shù)據(jù)庫技術(shù):是面向?qū)ο蠹夹g(shù)和數(shù)據(jù)庫技術(shù)的有機(jī)的結(jié)合,它有著關(guān)系數(shù)據(jù)庫

沒有的優(yōu)點(diǎn)。

面向?qū)ο髷?shù)據(jù)庫(OODB)+關(guān)系數(shù)據(jù)庫(RDB)一對象-關(guān)系數(shù)據(jù)庫(ORDB)

面向?qū)ο蟮奶卣鳎侯惡屠^承性,對象及對象標(biāo)識、封裝性、信息/實現(xiàn)隱蔽、狀態(tài)保持,

消息,多態(tài)性,一般性。

u面向?qū)ο蠹夹g(shù)的出現(xiàn)正是彌補(bǔ)了前述關(guān)系模型的固有局限性。

u對象數(shù)據(jù)模型是有很強(qiáng)的描述復(fù)雜對象的能力,能包含更多的數(shù)據(jù)語義信息。

u面向?qū)ο蠓椒珊芊奖愕谋硎厩短讓ο?,因而很容易表達(dá)層次數(shù)據(jù),這點(diǎn)與RDB形

成鮮明的對比,RDB強(qiáng)迫用戶用多個關(guān)系的元組表達(dá)層次數(shù)據(jù)。

u面向?qū)ο蠓椒煞奖愕臉?gòu)造各種類型、而RDB不提供增加用戶定義數(shù)據(jù)類型的手段。

1.7.2面向?qū)ο蟮姆治龇椒?/p>

面向?qū)ο蟮南到y(tǒng)分析設(shè)計,看起來其實也很簡單,步驟大概如下:

(1)從項目開始,進(jìn)行步驟(2)。

(2)對系統(tǒng)進(jìn)行分析,如果它在一定的要求下可解決,則停止分析,進(jìn)行設(shè)計;如果它在

一定的要求下不可解決,則對

溫馨提示

  • 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

提交評論