《軟件工程8軟件質(zhì)量保證》由會(huì)員分享,可在線閱讀,更多相關(guān)《軟件工程8軟件質(zhì)量保證(43頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,第,8,章 軟件質(zhì)量保證,掌握:,軟件質(zhì)量的定義、軟件質(zhì)量的特性與度量、軟件質(zhì)量保證、軟件質(zhì)量模型、軟件復(fù)雜性的度量方法、軟件可靠性、軟件評(píng)審、容錯(cuò)軟件。,8,.1,軟件質(zhì)量概述,8.1.1,軟件質(zhì)量的定義,清華大學(xué)的鄭人杰教授認(rèn)為,軟件質(zhì)量主要反映了以下,3,方面的問(wèn)題:,(,1,)軟件需求是度量軟件質(zhì)量的基礎(chǔ),不符合需求的軟件就不具備質(zhì)量。,(,2,)在各種標(biāo)準(zhǔn)中定義了一些開發(fā)準(zhǔn)則,用來(lái)指導(dǎo)軟件人員用工程化的方法來(lái)開發(fā)軟件。如果不遵守這些開發(fā)準(zhǔn)則,軟件質(zhì)量就得不到保證。,(,3,)往往會(huì)有一些隱含的需
2、求沒有明確地提出來(lái),例如,軟件應(yīng)具備良好的可維護(hù)性。如果軟件只滿足那些精確定義了的需求,而沒有滿足這些隱含的需求,軟件質(zhì)量也不能保證。,8.1.2,軟件質(zhì)量的特性與度量,軟件測(cè)試的目的就是為了發(fā)現(xiàn)錯(cuò)誤并糾正錯(cuò)誤,可以將其總結(jié)為以下幾點(diǎn):,(,1,)測(cè)試是一個(gè)程序的執(zhí)行過(guò)程,它的目的在于發(fā)現(xiàn)錯(cuò)誤。,(,2,)一個(gè)好的測(cè)試用例極可能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤。,(,3,)一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今末發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。,1,功能性,由功能及與其指定的性質(zhì)有關(guān)的一組屬性組成,包括:,(,1,)適合性,(,2,)準(zhǔn)確性,(,3,)互用性,(,4,)依從性,(,5,)安全性,2,可靠性,由與在規(guī)定的一段時(shí)間和條
3、件下,軟件維持其性能水平的能力有關(guān)的一組屬性組成,包括:,(,1,)成熟性,(,2,)容錯(cuò)性,(,3,)易恢復(fù)性,3,易用性,由與一組規(guī)定或潛在的用戶為使用軟件所需作的努力和對(duì)這樣的使用所作的評(píng)價(jià)有關(guān)的一組屬性組成,包括:,(,1,)易理解性,(,2,)易學(xué)性,(,3,)易操作性,4,效率,在規(guī)定的條件下,軟件的性能水平與所使用資源之間存在一定的關(guān)系,與這個(gè)關(guān)系有關(guān)的一組屬性,是衡量效率的標(biāo)準(zhǔn),這些屬性包括:,(,1,)時(shí)間特性,(,2,)資源特性,5,可維護(hù)性,由與為進(jìn)行指定的修改而所需的努力有關(guān)的一組屬性組成,包括:,(,1,)易分析性,(,2,)易改變性,(,3,)穩(wěn)定性,(,4,)易測(cè)
4、試性,6,可移植性,由與軟件可從某一環(huán)境轉(zhuǎn)移到另一環(huán)境的能力有關(guān)的一組屬性組成,包括:,(,1,)適應(yīng)性,(,2,)易安裝性,(,3,)遵循性,(,4,)易替換性,8.1.3,軟件質(zhì)量保證,所謂軟件質(zhì)量保證,就是建立一套有計(jì)劃、有系統(tǒng)的方法,來(lái)向管理層保證擬定出的標(biāo)準(zhǔn)、步驟、實(shí)踐和方法能夠正確地被所有項(xiàng)目所采用。,軟件質(zhì)量保證的主要手段,是對(duì)軟件產(chǎn)品和活動(dòng)進(jìn)行評(píng)審和審計(jì),以此來(lái)驗(yàn)證軟件是合乎標(biāo)準(zhǔn)的。在軟件開發(fā)的各個(gè)階段實(shí)施的軟件質(zhì)量保證檢驗(yàn)項(xiàng)目如下:,1,需求分析階段,主要檢測(cè)開發(fā)目的、目標(biāo)值、開發(fā)量(程序、文檔)、所需資源、各階段的產(chǎn)品和作業(yè)內(nèi)容、開發(fā)體制等的合理性。,2,設(shè)計(jì)階段,檢驗(yàn)項(xiàng)目
5、包括產(chǎn)品的量(計(jì)劃量、實(shí)際量)、評(píng)審量、差錯(cuò)數(shù)、檢出差錯(cuò)的內(nèi)容、評(píng)審方法和覆蓋性、出錯(cuò)原因、處理情況及對(duì)該階段的影響、評(píng)審結(jié)束和階段結(jié)束的判斷標(biāo)準(zhǔn)等。,3,實(shí)現(xiàn)階段,檢驗(yàn)項(xiàng)目包括設(shè)計(jì)階段的所有檢驗(yàn)項(xiàng)目,另外還包括:計(jì)算機(jī)使用時(shí)間、測(cè)試環(huán)境、測(cè)試項(xiàng)目設(shè)定種類、測(cè)試用例的設(shè)計(jì)方法等。,4,驗(yàn)收階段,檢驗(yàn)項(xiàng)目主要是說(shuō)明書檢查(檢查與被檢查程序有關(guān)的用戶文檔等)和程序檢查(為了評(píng)價(jià)和保證程序質(zhì)量,采用各種黑盒測(cè)試或白盒測(cè)試手段進(jìn)行檢查)。,5,運(yùn)行維護(hù)階段,主要是掌握用戶使用產(chǎn)品的質(zhì)量情況,并反饋給開發(fā)部門。,8,.,2,軟件質(zhì)量模型,8.2.1 McCall質(zhì)量度量模型,圖,8-1 McCall,模
6、型的,3,個(gè)層次與,11,個(gè)特性,8.2.2 ISO,軟件質(zhì)量評(píng)價(jià)模型,國(guó)際標(biāo)準(zhǔn)化組織,ISO,制定的,ISO,質(zhì)量度量模型由,3,層組成,分別是:,(,1,)高層,稱為,“,軟件質(zhì)量需求評(píng)價(jià)準(zhǔn)則,”,。,(,2,)中層,稱為,“,軟件質(zhì)量設(shè)計(jì)評(píng)價(jià)準(zhǔn)則,”,。,(,3,)低層,稱為,“,軟件質(zhì)量度量評(píng)價(jià)準(zhǔn)則,”,。,ISO,認(rèn)為,應(yīng)對(duì)高層和中層建立國(guó)際標(biāo)準(zhǔn),而低層可由各使用單位視實(shí)際情況制定相關(guān)標(biāo)準(zhǔn)。同時(shí),按照,ISO,IEC9126,質(zhì)量特性國(guó)際標(biāo)準(zhǔn),第一層(即,ISO,質(zhì)量度量模型中的,“,高層,”,)稱為質(zhì)量特性,第二層(即,ISO,質(zhì)量度量模型中的,“,中層,”,)稱為質(zhì)量子特性,第三
7、層(即,ISO,質(zhì)量度量模型中的,“,低層,”,)稱為度量。該標(biāo)準(zhǔn)定義了,6,個(gè)質(zhì)量特性,即功能性、可靠性、可維護(hù)性、效率、可使用性、可移植性,并推薦了,21,個(gè)子特性,如適合性、準(zhǔn)確性、互用性、依從性、安全性、成熟性、容錯(cuò)性、可恢復(fù)性、可理解性、易學(xué)習(xí)性、操作性、時(shí)間特性、資源特性、可分析性、可變更性、穩(wěn)定性、可測(cè)試性、適應(yīng)性、可安裝性、一致性、可替換性,但不作為標(biāo)準(zhǔn)。,8,.,3,軟件復(fù)雜性,8.3.1,軟件復(fù)雜性的基本概念,軟件復(fù)雜性是指軟件的復(fù)雜程度。,(,1,)規(guī)模:即總共的指令或源程序行數(shù)。,(,2,)難度:通常由程序中出現(xiàn)的操作數(shù)的數(shù)量來(lái)表示。,(,3,)結(jié)構(gòu):通常用與程序結(jié)構(gòu)有
8、關(guān)的度量來(lái)表示。,(,4,)智能度:即算法的難易程度。,8.3.2,軟件復(fù)雜性的度量方法,軟件復(fù)雜性度量是對(duì)軟件復(fù)雜性的定量描述,是軟件復(fù)雜性分析和控制的基礎(chǔ),它針對(duì)不同對(duì)象,從不同角度選用不同方法來(lái)描述軟件的復(fù)雜性。,軟件復(fù)雜性主要表現(xiàn)在程序的復(fù)雜性。程序的復(fù)雜性主要指模塊內(nèi)程序的復(fù)雜性,它直接關(guān)系到軟件開發(fā)費(fèi)用、開發(fā)周期和軟件內(nèi)部潛伏錯(cuò)誤的多少,同時(shí)也可用于度量軟件的可理解性。,要求復(fù)雜性度量滿足以下假設(shè):,(1),軟件復(fù)雜性度量可以用來(lái)計(jì)算任何一個(gè)程序的復(fù)雜性。,(2),對(duì)于不合理的程序,如長(zhǎng)度動(dòng)態(tài)增長(zhǎng)的程序,或者對(duì)于原則上無(wú)法排錯(cuò)的程序,則不應(yīng)當(dāng)使用軟件復(fù)雜性度量進(jìn)行復(fù)雜性計(jì)算。,(3
9、),程序中指令條數(shù)、附加存儲(chǔ)量、計(jì)算時(shí)間增多不會(huì)減少程序的復(fù)雜性。,1,長(zhǎng)度度量,度量程序的復(fù)雜性,最簡(jiǎn)單的方法就是統(tǒng)計(jì)程序的源代碼行數(shù)。此方法的基本考慮是統(tǒng)計(jì)一個(gè)程序的源代碼行數(shù),并以源代碼行數(shù)作為程序復(fù)雜性的質(zhì)量。,2,Halstead,度量,Halstead,度量法通過(guò)計(jì)算程序中的運(yùn)算符和操作數(shù)的數(shù)量對(duì)程序的復(fù)雜性加以度量。設(shè),n1,表示程序中不同運(yùn)算符的個(gè)數(shù),,n2,表示程序中不同操作數(shù)的個(gè)數(shù),,N1,表示程序中實(shí)際運(yùn)算符的總數(shù),,N2,表示程序中實(shí)際操作數(shù)的總數(shù)。令,H,表示程序的預(yù)測(cè)長(zhǎng)度,,Halstead,給出,H,的計(jì)算公式為:,H=n1log2n1+n2log2n2,;令,N
10、,表示實(shí)際的程序長(zhǎng)度,其定義為:,N=N1+N2,。,3,McCabe,度量,該度量方法由,McCabe,提出,又稱為環(huán)路復(fù)雜性度量方法,其步驟是:,(,1,)將程序流程圖中的每個(gè)處理符號(hào)看作一個(gè)節(jié)點(diǎn),流程圖中的流程線看作有向弧,從而將流程圖轉(zhuǎn)換為一個(gè)有向圖。,(,2,)從圖的入口點(diǎn)到出口點(diǎn)加一條用虛線表示的有向邊,使圖成為強(qiáng)連通圖。,(,3,)定義環(huán)路復(fù)雜性的計(jì)算公式為:,V(G)=m,n+p,其中,,V(G),是有向圖,G,中的環(huán)路數(shù);,m,是圖,G,中的弧數(shù);,n,是圖,G,中的節(jié)點(diǎn)數(shù);,P,是圖,G,中的強(qiáng)連通分量。,也可簡(jiǎn)單地將環(huán)路復(fù)雜性看作有向圖中有向弧所封閉的區(qū)域個(gè)數(shù)。,例如,如
11、圖,8-2,(,a,)所示的程序流程圖對(duì)應(yīng)的有向圖如圖,8-2,(,b,)所示。因?yàn)楣?jié)點(diǎn)數(shù),n=11,,弧數(shù),m=13,,強(qiáng)連通分量,p=1,,因此,環(huán)路復(fù)雜性,V,(,G,),=3,。,圖,8-2 McCabe,復(fù)雜性度量的例子,8.3.3,軟件復(fù)雜性控制,(,1,)控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)復(fù)雜的程序較復(fù)雜。,(,2,)轉(zhuǎn)向語(yǔ)句使用不當(dāng)?shù)某绦蜉^復(fù)雜。,(,3,)非局部量較多的程序較復(fù)雜。,(,4,)按地址調(diào)用參數(shù)比按值調(diào)用參數(shù)復(fù)雜。,(,5,)模塊及過(guò)程之間聯(lián)系密切的程序較復(fù)雜。,(,6,)嵌套深度越大,程序越復(fù)雜。,(,7,)循環(huán)結(jié)構(gòu)復(fù)雜性大于選擇結(jié)構(gòu)和順序結(jié)構(gòu)的復(fù)雜性。,(,8,)寬度是軟件復(fù)
12、雜性的主要形成原因。,8,.,4,軟件可靠性,8,.4.1,軟件可靠性的定義,1,軟件故障及其特征,常用以下,3,個(gè)術(shù)語(yǔ)來(lái)描述軟件未正常運(yùn)行的情況:,(,1,)缺陷:是指軟件的內(nèi)在缺陷。,(,2,)錯(cuò)誤:缺陷在一定環(huán)境條件下暴露,導(dǎo)致系統(tǒng)運(yùn)行中出現(xiàn)可感知的不正常、不正確和不按規(guī)范執(zhí)行的狀態(tài)。,(,3,)故障:由于對(duì)錯(cuò)誤未作任何糾正,而導(dǎo)致系統(tǒng)的輸出不滿足預(yù)定的要求。,2,軟件可靠性,軟件可靠性的定義是:,“,軟件可靠性是軟件系統(tǒng)在規(guī)定的時(shí)間內(nèi)及規(guī)定的環(huán)境條件下,完成規(guī)定功能的能力,”,。,(,1,)規(guī)定的時(shí)間,(,2,)規(guī)定的環(huán)境條件,(,3,)規(guī)定的功能,8.4.2,軟件可靠性的指標(biāo),(,1
13、,)平均失效間隔時(shí)間,MTTF,:即兩次失效之間的平均操作時(shí)間。,(,2,)平均修復(fù)時(shí)間,MTTR,:即修復(fù)一個(gè)故障平均需用的時(shí)間。,(,3,)有效性:,A=,(,MTTF/,(,MTTF+MTTR,)。,(,4,)初期故障率:一般以軟件交付使用方后的,3,個(gè)月內(nèi)為初期故障期,初期故障率指軟件在初期故障期內(nèi)單位時(shí)間的故障數(shù),一般以每,100h,的故障數(shù)為單位,可以用來(lái)評(píng)價(jià)交付使用的軟件的質(zhì)量,并預(yù)測(cè)軟件可靠性何時(shí)基本穩(wěn)定。,(,5,)偶然故障率:一般以軟件交付給使用方后的,4,個(gè)月后為偶然故障期。偶然故障率指軟件在偶然故障期內(nèi)單位時(shí)間的故障數(shù),一般以每千小時(shí)的故障數(shù)為單位,它反映了軟件處于穩(wěn)定
14、狀態(tài)時(shí)的質(zhì)量。,(,6,)使用方誤用率:使用方不按照軟件規(guī)范及說(shuō)明等文件來(lái)使用軟件而造成的錯(cuò)誤叫,“,使用方誤用,”,。在總使用次數(shù)中,使用方誤用次數(shù)占的百分率叫,“,使用方誤用率,”,。造成使用方誤用的原因之一是使用方對(duì)說(shuō)明理解不深,操作不熟練,但也可能是說(shuō)明沒有講得非常清楚,引起誤解等。,(,7,)用戶提出補(bǔ)充要求數(shù):由于軟件在開發(fā)過(guò)程中未能充分滿足用戶需要,或者用戶在軟件開發(fā)時(shí)所提要求不全面,軟件開始使用后用戶又提出補(bǔ)充要求,需要生產(chǎn)方對(duì)軟件進(jìn)行修改、完善。,8.4.3,軟件可靠性模型,(,1,)隨機(jī)性分類法:根據(jù)隨機(jī)過(guò)程的假設(shè)(如過(guò)程的確定性或非確定性、馬氏過(guò)程、泊松過(guò)程等)進(jìn)行分類。
15、,(,2,)按軟件出現(xiàn)的故障數(shù)進(jìn)行分類:主要有錯(cuò)誤計(jì)數(shù)模型和非計(jì)數(shù)模型,可數(shù)性或不可數(shù)性模型。,(,3,)按模型參數(shù)的估計(jì)方法進(jìn)行分類:主要有貝葉斯方法或非貝葉斯方法,最大似然估計(jì)法或最小二乘法,另外還有線性模型等。,(,4,)按模型使用的時(shí)間方式分類:主要有日歷時(shí)間和執(zhí)行時(shí)間模型。,(,5,)按修復(fù)過(guò)程分類:主要指強(qiáng)調(diào)對(duì)軟件系統(tǒng)修復(fù)過(guò)程的一類模型,如:完全修復(fù)型的和不完全修復(fù)型的模型,完全排錯(cuò)型和不完全排錯(cuò)型的模型。,(,6,)按對(duì)軟件的內(nèi)部結(jié)構(gòu)是否了解進(jìn)行分類:可分為黑箱模型和白箱模型。主要根據(jù)對(duì)軟件內(nèi)部結(jié)構(gòu)的了解程度,以及對(duì)它們的結(jié)構(gòu)能加以利用的程度來(lái)進(jìn)行分類。,8,.,5,軟件評(píng)審,8
16、,.,5,.1,軟件評(píng)審的概念,對(duì)軟件工程來(lái)說(shuō),軟件評(píng)審是一個(gè),“,過(guò)濾器,”,。在軟件開發(fā)的各個(gè)階段都要采用評(píng)審的方法,以發(fā)現(xiàn)軟件中的缺陷,然后加以改正。,8.5.2,軟件評(píng)審的階段和內(nèi)容,1,設(shè)計(jì)質(zhì)量的評(píng)審,設(shè)計(jì)質(zhì)量的評(píng)審包括:,(1),評(píng)價(jià)軟件的規(guī)格說(shuō)明是否合乎用戶的要求,即總體設(shè)計(jì)思想和設(shè)計(jì)方針是否明確;需求規(guī)格說(shuō)明是否得到了用戶或單位上級(jí)機(jī)關(guān)的批準(zhǔn);需求規(guī)格說(shuō)明與軟件的概要設(shè)計(jì)規(guī)格說(shuō)明是否一致等。,(2),評(píng)審可靠性,即是否能避免輸入異常(錯(cuò)誤或超載等)、硬件失效及軟件失效。一旦發(fā)生異常,應(yīng)能及時(shí)采取代替或恢復(fù)手段。,(3),評(píng)審保密措施實(shí)施情況,即是否提供對(duì)使用系統(tǒng)資格進(jìn)行檢查的功能;在檢查出有違反對(duì)特定數(shù)據(jù)、特殊功能的使用資格的情況后,能否向系統(tǒng)管理人員報(bào)告有關(guān)信息;是否提供對(duì)系統(tǒng)內(nèi)重要數(shù)據(jù)加密的功能等。,(4),評(píng)審操作特性實(shí)施情況,即操作命令和操作信息的恰當(dāng)性;輸入數(shù)據(jù)與輸入控制語(yǔ)句的恰當(dāng)性;輸出數(shù)據(jù)的恰當(dāng)性;應(yīng)答時(shí)間的恰當(dāng)性等。,(5),評(píng)審性能實(shí)現(xiàn)情況,即是否達(dá)到所規(guī)定性能的的目標(biāo)值。,(6),評(píng)審軟件是否具有可修改性、可擴(kuò)充性、可互換性和可移植性。,(7),評(píng)審