版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高新企業(yè)培訓(xùn)課件
- 贛南衛(wèi)生健康職業(yè)學(xué)院《建筑設(shè)計基礎(chǔ)一》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛南師范大學(xué)《學(xué)校社會工作》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛東學(xué)院《IP路由與交換技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 《醫(yī)院銷售技巧培訓(xùn)》課件
- 七年級道德與法治上冊第一單元成長的節(jié)拍第三課發(fā)現(xiàn)自己第2框做更好的自己說課稿新人教版
- 三年級科學(xué)上冊第六單元人與大地17砂和黏土教案首師大版
- 科學(xué)課件圖片小學(xué)生
- 三年級下學(xué)期班主任工作參考計劃
- 大數(shù)據(jù)時代會計從業(yè)人員素質(zhì)提升策略分析
- 2022年11月山東省臨沂市工會招考28名社會工作專業(yè)人才筆試參考題庫附帶答案解析
- JJF 1636-2017交流電阻箱校準(zhǔn)規(guī)范
- GB/T 40537-2021航天產(chǎn)品裕度設(shè)計指南
- GB/T 12599-2002金屬覆蓋層錫電鍍層技術(shù)規(guī)范和試驗方法
- GB/T 10988-2009光學(xué)系統(tǒng)雜(散)光測量方法
- 政協(xié)個人簡歷模板12篇
- 節(jié)能減排獎懲制度(5篇)
- 部編六年級語文上冊 讀音易錯字
- 低壓用電客戶電能計量裝置典型設(shè)計
- 桑樹栽培技術(shù)課件
- 精編-人教版八年級上冊物理-第四章光現(xiàn)象全單元課件設(shè)計(5課時)
評論
0/150
提交評論