【正文】
數(shù)據(jù)、參量相關(guān)聯(lián)的結(jié)構(gòu)復(fù)雜性的一種定量描述。全局?jǐn)?shù)據(jù)指可以被多個(gè)模塊訪問(wèn)的數(shù)據(jù)– 縮寫(xiě)為 gdv(G)l 表明模塊對(duì)外部數(shù)據(jù)的依賴程度數(shù)據(jù)度量數(shù)據(jù)度量l 評(píng)估與全局?jǐn)?shù)據(jù)有關(guān)的測(cè)試工作量l 也可衡量每個(gè)模塊對(duì)系統(tǒng)數(shù)據(jù)耦合的影響– 因此可以查出潛在的維護(hù)問(wèn)題85信息技術(shù)培訓(xùn)中心全局?jǐn)?shù)據(jù)復(fù)雜度的計(jì)算方法 ...將所有不包含全局變量和參數(shù)的判定和循環(huán)都視為直線代碼,再計(jì)算此時(shí)的圈復(fù)雜度就得到全局?jǐn)?shù)據(jù)復(fù)雜度數(shù)據(jù)度量數(shù)據(jù)度量216。 不大于原流圖的圈復(fù)雜度216。 典型值都很小86信息技術(shù)培訓(xùn)中心數(shù)據(jù)度量數(shù)據(jù)度量subroutine(x){if (c1){ if (c2) x = y + n。 if (c3) z = y + m。 else printf (message1)。 if (z 10) printf (message2)。 flaga = 1。 if (c5) moda(x)。}else{printf (message3)。}} gdv(G)x = 3 全局?jǐn)?shù)據(jù)復(fù)雜度計(jì)算舉例 ...CALL moda (x)C1C4C5x = y + nC2C3C1C4C5x = y + nCALL moda (x)C2C3Reduced87信息技術(shù)培訓(xùn)中心全局?jǐn)?shù)據(jù)復(fù)雜度的優(yōu)勢(shì) ... l分離出具有最高外部數(shù)據(jù)耦合的模塊l揭示代碼的質(zhì)量l結(jié)合控制流和數(shù)據(jù)分析給出軟件的全面評(píng)價(jià)數(shù)據(jù)度量數(shù)據(jù)度量88信息技術(shù)培訓(xùn)中心指定數(shù)據(jù)復(fù)雜度 Specified Data Complexity (sdv(G))...模塊中與用戶數(shù)據(jù)相關(guān)聯(lián)的結(jié)構(gòu)復(fù)雜度的一種定量描述– 縮寫(xiě)為 sdv(G)數(shù)據(jù)度量數(shù)據(jù)度量89信息技術(shù)培訓(xùn)中心指定數(shù)據(jù)復(fù)雜度的計(jì)算方法 ...將所有不包含指定數(shù)據(jù)元素的判定和循環(huán)都視為直線代碼,再計(jì)算此時(shí)的圈復(fù)雜度就得到指定數(shù)據(jù)復(fù)雜度數(shù)據(jù)度量數(shù)據(jù)度量216。 指定數(shù)據(jù)復(fù)雜度就是簡(jiǎn)化后流圖的圈復(fù)雜度 90信息技術(shù)培訓(xùn)中心指定數(shù)據(jù)復(fù)雜度計(jì)算舉例數(shù)據(jù)度量數(shù)據(jù)度量 sdvz = 3main(){if (c1){ if (c2) x = y + n。 if (c3) z = y + m。 else pritf (message1)。 if (z 10) printf (message2) flaga = 1。 if (c5)moda(x)。}else{ printf (message3)。}}C1C4C5z = y + mC2C3z 10ReducedC2C5C3C4z = y + mC1z 1091信息技術(shù)培訓(xùn)中心指定數(shù)據(jù)復(fù)雜度的優(yōu)勢(shì) ... l表明一個(gè)模塊與指定數(shù)據(jù)相關(guān)聯(lián)的數(shù)據(jù)復(fù)雜程度l等于(用來(lái)測(cè)試指定數(shù)據(jù)所有應(yīng)用的)基本測(cè)試路徑數(shù)l可分析數(shù)據(jù)結(jié)構(gòu)變化對(duì)軟件的影響數(shù)據(jù)度量數(shù)據(jù)度量92信息技術(shù)培訓(xùn)中心其他復(fù)雜度度量 ... lHenry and Kafura metrics– 模塊之間的耦合 (parameters, global variables, calls)其他度量其他度量– 模塊和系統(tǒng)復(fù)雜性 。 通過(guò)參數(shù)和全局變量的耦合程度– 模塊性或耦合 。 結(jié)構(gòu)的復(fù)雜度 (結(jié)構(gòu)圖的最大深度 )。 調(diào)用 – 結(jié)構(gòu)流圖的模塊性lBowles metricslTroy and Zweben metricslLigier metricsSource: Software Engineering Institute Carnegie Mellon93信息技術(shù)培訓(xùn)中心McCabe 度量度量McCabe度量標(biāo)準(zhǔn)與軟件質(zhì)量 ...l Cyclomatic Complexity v(G)– 易理解– 測(cè)試工作量– 可靠性l Essential Complexity ev(G)– 結(jié)構(gòu)化特性– 可維護(hù)性– 再工程的工作量l Module Design Complexity iv(G)– 集成的工作量94信息技術(shù)培訓(xùn)中心McCabe度量度量McCabe度量標(biāo)準(zhǔn)與軟件質(zhì)量 ...l Design Complexity S0– 設(shè)計(jì)的復(fù)雜程度– 模塊調(diào)用的復(fù)雜性l Integration Complexity S1– 量化集成工作l Global Complexity (gdv(G)) – 模塊與外部數(shù)據(jù)的耦合– 控制流與數(shù)據(jù)分析l Specified Complexity (sdv(G)) – 數(shù)據(jù)結(jié)構(gòu)變化的影響95信息技術(shù)培訓(xùn)中心McCabe度量度量其他 McCabe度量 ...l Number of Lines (nl)l Normalised Complexity (nv)l Pathological Complexity (pv(G)) l Global Data Density (global_data_density) l Specified Data Reference (sdr)l Specified Data Complexity Decision Severity (sdv_severity)l Specified Data Reference Decision Severity (sdr_severity)96信息技術(shù)培訓(xùn)中心結(jié)構(gòu)化測(cè)試結(jié)構(gòu)化測(cè)試Testing Techniques….216。代碼覆蓋率Flowgraph ‘A’ Flowgraph ‘B’哪個(gè)函數(shù)更復(fù)雜?2 Tests Required2 Tests Required代碼覆蓋與復(fù)雜度不成比例97信息技術(shù)培訓(xùn)中心結(jié)構(gòu)化測(cè)試結(jié)構(gòu)化測(cè)試Testing Techniques….216。分支覆蓋需要多少個(gè)測(cè)試可以做到 100%覆蓋 ?Branch Test 1 Branch Test 2 Branch Test 3 Branch Test 498信息技術(shù)培訓(xùn)中心結(jié)構(gòu)化測(cè)試結(jié)構(gòu)化測(cè)試Testing Techniques….216?;韭窂礁采w(TRUE and FALSE) (FALSE and TRUE) (TRUE and TRUE)Any other path (eg. FALSE and FALSE) exercise a bination of the above paths+ = (FALSE and FALSE)99信息技術(shù)培訓(xùn)中心結(jié)構(gòu)化測(cè)試結(jié)構(gòu)化測(cè)試Testing Techniques….216?;韭窂綔y(cè)試基本路徑數(shù)等于模塊的基本路徑數(shù)等于模塊的 McCabe圈復(fù)雜度圈復(fù)雜度 v(G)100信息技術(shù)培訓(xùn)中心結(jié)構(gòu)化測(cè)試結(jié)構(gòu)化測(cè)試Testing Techniques….216?;韭窂礁采w“簡(jiǎn)單地說(shuō) , 結(jié)構(gòu)化測(cè)試 要求貫穿模塊的一組基本路徑必須測(cè)試,以保證測(cè)試的充分性216。結(jié)構(gòu)化測(cè)試的原理216。貫穿模塊流圖的基本路徑是線性獨(dú)立的216。因此,任何其他路徑都可以有基本路徑組合而來(lái)216?;韭窂綌?shù)等于 McCabe圈復(fù)雜度101信息技術(shù)培訓(xùn)中心Case Studies216。 以下機(jī)構(gòu)獨(dú)立研究證明 :216。 美國(guó)國(guó)防部216。 海軍武器系統(tǒng)216。 通用電子結(jié)論 ... Software Quality, Complexity Testing216。 圈復(fù)雜度能很好地預(yù)測(cè) :216。 出錯(cuò)的可能性216。 理解的容易性216。 變更的工作量216。 調(diào)試的容易性 McCabe圈復(fù)雜度被證明與錯(cuò)誤的發(fā)生有極強(qiáng)的相關(guān)性,相關(guān)系數(shù)達(dá)到 .102信息技術(shù)培訓(xùn)中心謝謝觀看 /歡迎下載BY FAITH I MEAN A VISION OF GOOD ONE CHERISHES AND THE ENTHUSIASM THAT PUSHES ONE TO SEEK ITS FULFILLMENT REGARDLESS OF OBSTACLES. BY FAITH I BY FAITH