版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1,軟件質(zhì)量,與結(jié)構(gòu)化測試,2,內(nèi)容提要,什么是軟件質(zhì)量 軟件質(zhì)量特性與質(zhì)量模型 軟件質(zhì)量的度量 常用軟件度量方法 McCabe復(fù)雜度 結(jié)構(gòu)化測試技術(shù),3,軟件開發(fā),4,Maintenance,軟件開發(fā)的工作分配,Design,Coding,Testing,5,什么是軟件質(zhì)量,“The totality of features and characteristics of a product or service that bear on its ability to satisfy stated or implied needs” (ISO 8402) 與軟件產(chǎn)品滿足規(guī)定的和隱含的需求的能力
2、有關(guān)的特征或特性的全體,The degree of excellence 軟件的優(yōu)秀程度,“The ability of a software product to satisfy its specified requirements” (DoD-STD-2168) 軟件產(chǎn)品滿足其規(guī)定的需求的能力,6,什么是軟件質(zhì)量,“The degree to which a system, component, or process meets specified requirements.” (IEEE standard 610.12-1990) 一個系統(tǒng)、組件或過程滿足規(guī)定的需求的程度,“The de
3、gree to which a system, component, or process meets customer or user needs or expectations.” (IEEE standard 610.12-1990) 一個系統(tǒng)、組件或過程滿足客戶或用戶的需求的程度,或滿足期望值的程度,7,ISO 9126,Software Quality:軟件質(zhì)量 The totality of features and characteristics of a software product that bear on its ability to satisfy stated or
4、 implied needs. 與軟件產(chǎn)品滿足規(guī)定的和隱含的需求的能力有關(guān)的特征或特性的全體,Software Quality Characteristics:軟件質(zhì)量特性 A set of attributes of a software product by which its ability is described and evaluated. A software quality characteristic may be refined into multiple levels of sub-characteristics.軟件質(zhì)量特性是軟件產(chǎn)品的一組屬性,用來對軟件的能力進行描述
5、和評估。軟件質(zhì)量特性可細分為多層次的子特性。,Software Quality Metric:軟件質(zhì)量度量 A quantitative scale and method which can be used to determine the value a feature takes for a specific software product.用于確定軟件產(chǎn)品質(zhì)量特性的定量的衡量和分析方法,8,Quality in Software,9,縮短時間表,“Quality does not happen by mistake!”,為什么質(zhì)量差?,壓縮的預(yù)算,人員的變化,用戶需求的改變,提高或增加
6、功能或性能,Bug Fixing,無效的測試,10,軟件質(zhì)量保證(QA),原則 質(zhì)量不必是“最好”的 質(zhì)量是用戶想要的和愿意購買的,范圍 QA is more than testing QA not only at the end of the project QA of product and process,格言 Moving from quality controlling (ex post) to prevention by quality service.通過質(zhì)量服務(wù)把質(zhì)量控制變換到預(yù)防,11,Quality Characteristics質(zhì)量特征,12,Software Compl
7、exity,A software product is a solution of a problem. The complexity of the solution generally depends on the complexity of the problem.,13,Quality Models,分配用戶需求 Quality Factors(質(zhì)量因素),到開發(fā)標準 Quality Criteria(質(zhì)量標準),到可證明的和測量的值 Metrics(度量),14,軟件質(zhì)量的因子-標準-度量關(guān)系,15,可維護性,16,Boehm 質(zhì)量模型,17,McCall Model,18,質(zhì)量與質(zhì)量
8、管理,質(zhì)量要用需求,可接受性和它們達到的證據(jù)來衡量,質(zhì)量是通過解決問題實現(xiàn)的,質(zhì)量管理確保前面解決過的問題不再出現(xiàn),沒有質(zhì)量測量來做質(zhì)量管理只能是幻想,19,測量工具的好處,支持質(zhì)量管理系統(tǒng),開發(fā)工程師可以自己檢查,支持代碼評審,評價外部軟件,支持測試,20,Software,Metrics,21,什么是度量( Metric )?,任何測量的單位 e.g. Cm, Litre, Ohm, Second, Color,描述一個實體的屬性,度量的類型: 和項目相關(guān) 時間表/開支 估算測量 功能點 軟件度量,22,You cant control what you cant measure.,De
9、Marco, 1982,軟件質(zhì)量度量,23,測量非常有用,但我們必須先解決如下問題:,5.1o-1s,測量,What do we want to measure?測量什么,How do we measure?如何測,What do the measurements mea 測量的意義何在,24,5.2o-2s,What to Measure?,25,直觀的,Good Metrics should:,和錯誤出現(xiàn)有直接關(guān)系,好的度量,客觀的,語言獨立,和測試努力直接有關(guān),自動化,簡單,26,提高質(zhì)量,4.1s,確定質(zhì)量,防止質(zhì)量退化,輔助做出決策,提高生產(chǎn)力,確定變更的影響,風(fēng)險分析,確保質(zhì)量,提
10、高測試效率,27,Metrics+,Halstead Metrics 霍爾斯特德度量,可用的軟件度量包括:,Function Point 功能點,Line Count Metrics 線計數(shù)度量,McCabe Metrics 圈復(fù)雜度,Data Metrics,System Level Metrics,OO Metrics,Derived Metrics,28,Halstead Metrics,起源:,1977年,由Maurice Halstead 開發(fā)介紹,計算模塊的操作數(shù)和操作符,直接得出模塊的復(fù)雜程度的一種定量測試方法,通過源代碼測量模塊的復(fù)雜度,重點是復(fù)雜性的計算,應(yīng)用于代碼,經(jīng)常作為
11、一種維護性度量,自誕生之日起,就充滿爭議,29,技術(shù),Halstead度量主要基于以下四層源自程序代碼的統(tǒng)計數(shù)值:,n1 = the number of distinct(獨立的 )operators 操作符 n2 = the number of distinct operands 操作數(shù) N1 = the total number of operators N2 =the total number of operands,Measure Symbol Formula Program length長度 N N= N1 + N2 Program vocabulary詞匯量 n n= n1 + n
12、2 Volume 容量V V= N * (LOG2 n) Difficulty難度 D D= (n1/2) * (N2/n2) Effort 工作量E E= D * V,from the above, five measures are derived.,Halstead Metrics,30,Halstead Metrics,優(yōu)勢:,不必深入分析程序的結(jié)構(gòu),預(yù)測錯誤的數(shù)目,預(yù)測維護的工作量,對報告和計劃項目的健康程度有幫助,對整個程序有幫助,計算簡單,適合任何編程語言,經(jīng)過很多工業(yè)研究,都支持使用Halstead 來預(yù)測開發(fā)工作量和平均bugs,31,Function Points,起源:,
13、1977 由 A.J.Albrecht 開發(fā)設(shè)計,測量軟件的大小和生產(chǎn)力,技術(shù):,將基本功能點分為5組: outputs輸出 inquiries查詢 inputs輸入 files文件 interfaces接口 功能點就是最終用戶的業(yè)務(wù)功能,比如對輸入的查詢.,和軟件完成的功能緊密相關(guān),32,Function Points,優(yōu)勢:,對以下情況,通常被公認為是一種有效方法:,較大的用戶群;International Function Point Group (IFPG) 多于 1,200 會員公司,建立每小時功能點的生產(chǎn)率,評估對需求的支持,評估軟件工程的大小 (以及周期),軟件模塊比較的標準化,
14、評估系統(tǒng)變更的開銷,IFPG提供功能點實踐手冊,以及標準化的實踐活動,Source: Software Engineering Institute Carnegie Mellon,33,Line Count Metrics,表明每個模塊的行數(shù), 包括代碼,注釋, 空白行, 混合代碼和注釋.,技術(shù),LOC 可分為以下幾類:,Lines-of-Code (LOC) metrics 提供代碼的總額, 但是對內(nèi)容的測量不太好,blanks - Lines with only space (eg. space and tabs) or no text comment,code - Source line
15、s of code that contain only code and white space,comments - Source lines of code that are purely comments,Mixed - Lines that contain both code and comments,34,Line Count Metrics,優(yōu)勢:,測量軟件的物理尺寸,鑒別特殊行, 如注釋行和空行,幫助查明難以理解的模塊. (Comment lines often increase readability, although an unusually large number of
16、 comments can indicate that the module is difficult to understand.),35,McCabe Metrics,起源:,圈復(fù)雜度(Cyclomatic Complexity)由Thomas McCabe于1976提出,測量貫穿程序模塊的獨立線性路徑數(shù),提供了比較兩個程序復(fù)雜度的一種簡單的指標,通常被稱為程序復(fù)雜度或McCabe復(fù)雜度,36,McCabe Metrics,優(yōu)勢:,廣泛應(yīng)用的靜態(tài)軟件度量,和其他度量互補,獨立于開發(fā)語言,擴展到可以包括設(shè)計和結(jié)構(gòu)復(fù)雜度,基于軟件結(jié)構(gòu)的嚴格的數(shù)學(xué)分析,37,McCabe Metrics,優(yōu)勢:
17、,可以應(yīng)用到幾個領(lǐng)域:,維護的風(fēng)險分析 Code complexity tends to increase through maintenance over time. By measuring before and after complexity can be monitored, managed and minimise the risk of change.,代碼開發(fā)的風(fēng)險分析: while under development, complexity can be measured for inherent risk and risk buildup.,測試的計劃 Cyclomatic
18、 complexity gives the exact number of tests needed to test every decision point. This aids in test planning. Highly complex modules require a prohibitive number of test steps, that number can be reduced to a more pragmatic size by breaking the module into smaller less complex sub modules.,再工程 Cyclom
19、atic complexity analysis provides insight to the structure of code. Reengineering risk is related to the code complexity. This insight helps with cost and risk analysis.,38,McCabe Metrics,McCabe 度量包括.,Cyclomatic complexity (v(G),Essential complexity (ev(G),Module design complexity (iv(G),Design comp
20、lexity (S0),Integration complexity (S1),Data complexity,Global data complexity (gdv(G),Specified data complexity (sdv(G),39,Is constructed from written code,分析一個模塊,結(jié)構(gòu)流圖.,一種描述軟件模塊邏輯的結(jié)構(gòu)圖,Is a visualization of the modules decision logic,40,分析一個模塊,流圖符號 (箭頭)稱為“邊”(edge),代表控制流 (圓圈)稱為“節(jié)點”(node),代表一個或多個語句動作
21、由節(jié)點和邊圍成的范圍稱為“域”(region),在計算域時,圖形外的區(qū)域也應(yīng)算做一個“域” 判定節(jié)點,指包含條件的節(jié)點,41,If . then,If . then . else,If . and . then,If . or . then,Do . While,While . Do,Switch,分析一個模塊,C語言流圖符號,42,分析一個模塊,FlowgraphsC程序舉例,function_test(y) 0 x=3;,1if ( y 4) 2x=sin(y); else 3x=cos(y);,4x=x*x; 5,43,分析一個模塊,FlowgraphsC程序舉例,0,function_
22、test(y) 0 x=3;,1if ( y 4) 2x=sin(y); else 3x=cos(y);,4x=x*x; 5,44,分析一個模塊,FlowgraphsC程序舉例,0,1,3,2,function_test(y) 0 x=3;,1if ( y 4) 2x=sin(y); else 3x=cos(y);,4x=x*x; 5,45,分析一個模塊,FlowgraphsC程序舉例,0,1,3,4,5,2,function_test(y) 0 x=3;,1if ( y 4) 2x=sin(y); else 3x=cos(y);,4x=x*x; 5,46,分析一個模塊,Exercise on
23、 Flowgraphs,1IF condition 2statement 3ENDIF 4statement 5WHILE condition 6DO SWITCH 7Label1 8statement 9Label 2 10statement 11Default 12statement 13END SWITCH 14END WHILE,47,分析一個模塊,圈復(fù)雜度 (v(G).,是模塊結(jié)構(gòu)復(fù)雜程度的一種度量。定義為貫穿模塊的獨立線行路徑數(shù),因此,它也是預(yù)防錯誤所需的最小測試路徑數(shù),縮寫為 v(G),圈復(fù)雜度過高,表明模塊的質(zhì)量較差,且難于理解與維護,經(jīng)驗研究表明,在模塊錯誤與圈復(fù)雜度之間存在
24、較強的關(guān)聯(lián)性,48,三種方法:,All methods provide same result,公式,斷言(判定節(jié)點),區(qū)域,分析一個模塊,圈復(fù)雜度的計算.,49,公式法,分析一個模塊,圈復(fù)雜度的計算.,計算所有的邊(e)和節(jié)點(n),使用公式 V(G) = e - n + 2,Example,V(G) = e - n + 2,50,分析一個模塊,圈復(fù)雜度的計算.,公式法,計算所有的邊(e)和節(jié)點(n),使用公式 V(G) = e - n + 2,Example,e=15,51,分析一個模塊,圈復(fù)雜度的計算.,公式法,計算所有的邊(e)和節(jié)點(n),使用公式 V(G) = e - n + 2,
25、Example,n=12,52,分析一個模塊,圈復(fù)雜度的計算.,公式法,計算所有的邊(e)和節(jié)點(n),使用公式 V(G) = e - n + 2,Example,V(G) = 15 - 12 + 2,V(G) = 5,53,斷言(判定節(jié)點)法,分析一個模塊,圈復(fù)雜度的計算.,計算所有的斷言(P),使用 V(G) = P + 1,Example,V(G) = 4 + 1,V(G) = 5,V(G) = P + 1,54,區(qū)域法,分析一個模塊,圈復(fù)雜度的計算.,計算所有的由邊和節(jié)點所圍成的區(qū)域(R),注意最外圍也算一個區(qū)域,使用 V(G) = R,Example,V(G) = R,V(G) =
26、5,1,4,3,2,5,如果線條有交叉時會發(fā)生錯誤,55,分析一個模塊,v(G) = e - n +2 v(G) = 22 - 18 +2 v(G) = 6,練習(xí):Cyclomatic Complexity (v(G),56,圈復(fù)雜度度量法的優(yōu)勢,預(yù)測軟件潛在錯誤的比率,指出過于復(fù)雜需要分解的模塊,通過限制程序的邏輯量來指導(dǎo)測試過程,幫助管理測試和維護的資源 (基于復(fù)雜度),分析一個模塊,應(yīng)用任何語言和易于應(yīng)用,使程序易于理解,易于測試,57,分析一個模塊,基本復(fù)雜度Essential Complexity (ev(G).,一個模塊包含“非結(jié)構(gòu)化結(jié)構(gòu)”的程度,縮寫為 (ev(G),基本復(fù)雜度高
27、,表明模塊的結(jié)構(gòu)“不夠良好”,降低代碼的質(zhì)量,維護工作加重,很難分割模塊,在維護時修改一個錯誤經(jīng)常引入其他錯誤,58,分析一個模塊,基本復(fù)雜度的計算方法.,將模塊結(jié)構(gòu)流圖按結(jié)構(gòu)化方法進行簡化(去除結(jié)構(gòu)良好的部分),再計算簡化后的圈復(fù)雜度就得到基本復(fù)雜度ev(G),59,Cyclomatic Complexity = 4,McCabes Essential Complexity ev(G) Remove structured elements and recalculate the complexity,Essential Complexity = 1,分析一個模塊,流圖的簡化.,60,分析一個
28、模塊,非結(jié)構(gòu)化邏輯舉例.,分支出來的一個循環(huán),分支為一個循環(huán),分支出來的判定,分支內(nèi)的判定,61,v(G) = 5,分析一個模塊,基本復(fù)雜度: 流圖簡化.,簡化后流圖 v(G) = 3,因此 ev(G) = 3,有層次的流圖 v(G) = 5 ev(G) = 3,62,好的設(shè)計,可以迅速惡化,v(G) = 10 ev(G) = 1,v(G) = 11 ev(G) = 10,分析一個模塊,基本復(fù)雜度可以幫助我們發(fā)現(xiàn)非結(jié)構(gòu)化代碼,63,基本復(fù)雜度的優(yōu)勢:,揭示代碼的質(zhì)量,預(yù)測維護代碼和分接代碼所需的工作量,適用于任何編程語言,分析一個模塊,測量程序邏輯非結(jié)構(gòu)化程度,64,Analysing a M
29、odule,分析一個模塊,模塊設(shè)計復(fù)雜度Module Design Complexity (iv(G).,模塊不會孤立存在,測試模塊是如何“管理”的,測量將模塊集成到系統(tǒng)中需要多少測試工作量?,模塊通常要調(diào)用子模塊,模塊依賴于其他模塊所提供的服務(wù),模塊間相互調(diào)用,我們知道.,那么我們能否.,65,分析一個模塊,模塊設(shè)計復(fù)雜度(iv(G).,模塊設(shè)計復(fù)雜度是一個模塊與調(diào)用其他模塊相關(guān)的結(jié)構(gòu)復(fù)雜程度,縮寫為 iv(G),量化了一個模塊和相關(guān)模塊集成的測試工作量,模塊設(shè)計復(fù)雜度高意味著:,控制耦合程度高。對以下情況來說,困難程度加大:,隔離,維護,重用,66,分析一個模塊,模塊設(shè)計復(fù)雜度的計算方法.
30、,模塊設(shè)計復(fù)雜度是程序流圖按下述方法簡化后的圈復(fù)雜度. 簡化方法是去除那些不影響子模塊調(diào)用控制的判定、循環(huán)、和節(jié)點(直接子模塊),67,所以,iv(G) = 3,v(G) = 3,iv(G) = 3,main() if (a = b) progd(); if (m = n) proge(); switch(expression) case value_1: statement1; break; case value_2: statement2; break; case value_3: statement3; ,v(G) = 5,分析一個模塊,Example.,68,模塊設(shè)計復(fù)雜度的優(yōu)勢,度量
31、一個模塊對其子模塊的管理任務(wù),評估一個模塊與其直接子模塊之間的最小的集成測試量,區(qū)別兩個模塊,分析一個模塊,適用于任何編程語言,且使用簡單,通過復(fù)雜的計算邏輯 ,以及使程序設(shè)計真正復(fù)雜化的因素,作為程序設(shè)計和集成復(fù)雜度計算的基礎(chǔ),69,分析一個模塊,低復(fù)雜度模塊舉例.,Cyclomatic 7 Essential 1 Design 4,可靠,Simple logic,Not error-prone,Easy to test,可維護,Good structure,Easy to understand,Easy to modify,70,分析一個模塊,適度復(fù)雜度模塊舉例.,Cyclomatic 1
32、6 Essential 1 Design 3,不可靠,Complicated logic,Error-prone,Hard to test,可維護,Can be understood,Can be modified,Complexity can be reduced,71,分析一個模塊,高復(fù)雜度模塊舉例.,Cyclomatic 22 Essential 22 Design 6,不可靠,Error-prone,Very hard to test,不可維護,Hard to understand,Hard to modify,Hard to reduce complexity,72,分析一個模塊,C
33、yclomatic192 Essential 151 Design 36,Problem: 大小和復(fù)雜度遠在限定邊界之外的軟件沒有希望,To error-prone to use,Too complex to fix,Solution: 在開發(fā)和維護過程中控制復(fù)雜度,遠離限定邊界,Too large to redevelope,73,程序級度量,測量程序設(shè)計的復(fù)雜性,確定最少的、有效的集成測試量,幫助評估變更的影響,74,設(shè)計復(fù)雜度Design Complexity (S0),定量評估程序中模塊間的相互影響,縮寫為 S0,系統(tǒng)各組成部分模塊設(shè)計復(fù)雜度的匯總,程序級度量,評估自底向上集成測試所需
34、的工作量,全面評測程序設(shè)計復(fù)雜度和程序大小,不考慮單個模塊的內(nèi)部計算結(jié)果,設(shè)計復(fù)雜度高的系統(tǒng)經(jīng)常:,Have complex interactions between components,Tend to be difficult to maintain,75,設(shè)計復(fù)雜度的計算方法,S0 是系統(tǒng)中各模塊設(shè)計復(fù)雜度的綜合,用下式計算,程序級度量,S0 = iv(G),76,程序級度量,How can we assess the complexity of this design ?,S0計算舉例:.,77,程序級度量,System Design Complexity S0 = Module De
35、sign Complexity (iv(G),S0 = iv(G),S0 = 2 + 3 + 2 + 1 + 1,S0 = 9,S0計算舉例:.,78,設(shè)計復(fù)雜度的優(yōu)勢:,適用于整個程序,包括子系統(tǒng),說明總的設(shè)計復(fù)雜度, 反映每個模塊和所有內(nèi)部模塊的控制的復(fù)雜性,揭示代碼的質(zhì)量,揭示程序中模塊調(diào)用的復(fù)雜度,方便計算集成復(fù)雜度integration complexity (S1 ),程序級度量,79,集成復(fù)雜度Integration Complexity (S1),衡量必須的集成測試量。換句話說,集成復(fù)雜度就是程序中獨立的線性子樹的數(shù)目。 所謂子樹, 是調(diào)用子模塊和從子模塊返回的順序,縮寫為 S
36、1,程序級度量,80,集成復(fù)雜度的計算方法.,集成復(fù)雜度的計算類似于模塊圈復(fù)雜度的計算. 先計算好完全測試所需的集成測試數(shù)n, S1 由下式計算:,程序級度量,S1 = S0 - n + 1,81,程序級度量,What is required to test the integration of this system?,What is the minimum number of tests to exercise the interaction of each of these modules?,集成復(fù)雜度計算舉例.,82,程序級度量,S0 = iv(G),S0 = 2 + 3 + 2 +
37、1 + 1,S0 = 9,集成復(fù)雜度計算舉例.,83,程序級度量,S1 = S0 - n + 1,S1 = 9 - 5 + 1,S0 = 9,S1 = 5,集成復(fù)雜度計算舉例.,84,集成復(fù)雜度的優(yōu)勢:,作為集成測試的基礎(chǔ),量化了集成測試的工作量,描述了系統(tǒng)設(shè)計的復(fù)雜度,從總量中分離出系統(tǒng)復(fù)雜度,無判定邏輯的模塊對 S1不產(chǎn)生影響,程序級度量,85,全局數(shù)據(jù)復(fù)雜度Global Data Complexity (gdv(G).,模塊中與全局數(shù)據(jù)、參量相關(guān)聯(lián)的結(jié)構(gòu)復(fù)雜性的一種定量描述。全局數(shù)據(jù)指可以被多個模塊訪問的數(shù)據(jù),縮寫為 gdv(G),表明模塊對外部數(shù)據(jù)的依賴程度,數(shù)據(jù)度量,評估與全局數(shù)據(jù)有
38、關(guān)的測試工作量,也可衡量每個模塊對系統(tǒng)數(shù)據(jù)耦合的影響,因此可以查出潛在的維護問題,86,全局數(shù)據(jù)復(fù)雜度的計算方法.,將所有不包含全局變量和參數(shù)的判定和循環(huán)都視為直線代碼,再計算此時的圈復(fù)雜度就得到全局數(shù)據(jù)復(fù)雜度,數(shù)據(jù)度量,不大于原流圖的圈復(fù)雜度,典型值都很小,87,數(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
39、); ,gdv(G)x = 3,全局數(shù)據(jù)復(fù)雜度計算舉例.,88,全局數(shù)據(jù)復(fù)雜度的優(yōu)勢.,分離出具有最高外部數(shù)據(jù)耦合的模塊,揭示代碼的質(zhì)量,結(jié)合控制流和數(shù)據(jù)分析給出軟件的全面評價,數(shù)據(jù)度量,89,指定數(shù)據(jù)復(fù)雜度Specified Data Complexity (sdv(G).,模塊中與用戶數(shù)據(jù)相關(guān)聯(lián)的結(jié)構(gòu)復(fù)雜度的一種定量描述,縮寫為 sdv(G),數(shù)據(jù)度量,90,指定數(shù)據(jù)復(fù)雜度的計算方法.,將所有不包含指定數(shù)據(jù)元素的判定和循環(huán)都視為直線代碼,再計算此時的圈復(fù)雜度就得到指定數(shù)據(jù)復(fù)雜度,數(shù)據(jù)度量,指定數(shù)據(jù)復(fù)雜度就是簡化后流圖的圈復(fù)雜度,91,指定數(shù)據(jù)復(fù)雜度計算舉例,數(shù)據(jù)度量,sdvz = 3,ma
40、in() 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); ,92,指定數(shù)據(jù)復(fù)雜度的優(yōu)勢.,表明一個模塊與指定數(shù)據(jù)相關(guān)聯(lián)的數(shù)據(jù)復(fù)雜程度,等于(用來測試指定數(shù)據(jù)所有應(yīng)用的)基本測試路徑數(shù),可分析數(shù)據(jù)結(jié)構(gòu)變化對軟件的影響,數(shù)據(jù)度量,93,其他復(fù)雜度度量.,Henry and Kafura metrics,模塊之間的耦合(parameters, global variables, calls),其他度量,模塊和系統(tǒng)復(fù)雜性; 通過參數(shù)和全局變量的耦合程度,模塊性或耦合; 結(jié)構(gòu)的復(fù)雜度 (結(jié)構(gòu)圖的最大深度); 調(diào)用,結(jié)構(gòu)流圖的模塊性,Bowles metrics,Troy and Zweben metrics,Ligier metrics,Source: Software Engineering Institute Carnegie Mellon,94,McCabe 度量,McCabe度量標準與軟件質(zhì)量.,Cyclomatic Complexity v(G),易理解,測試工作量,
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度電商虛擬現(xiàn)實技術(shù)應(yīng)用委托經(jīng)營協(xié)議3篇
- 二零二五年度奶粉品牌線上直播帶貨代理合同
- 二零二五版智能停車場建設(shè)工程承包簡易合同3篇
- 二零二五年度公益活動布展策劃與實施協(xié)議3篇
- 2025年度煤炭行業(yè)信用風(fēng)險管理合作協(xié)議書
- 2025年綠色建筑項目泥水工安全責(zé)任合同
- 二零二五年度馬鈴薯種植保險及風(fēng)險防控合作協(xié)議4篇
- 二零二五年船舶空調(diào)系統(tǒng)改造與環(huán)保驗收合同3篇
- 個人住宅室內(nèi)裝修設(shè)計服務(wù)合同(2024版)3篇
- 2025年度化肥電商平臺合作與服務(wù)協(xié)議2篇
- 物流無人機垂直起降場選址與建設(shè)規(guī)范
- 肺炎臨床路徑
- 外科手術(shù)鋪巾順序
- 創(chuàng)新者的窘境讀書課件
- 綜合素質(zhì)提升培訓(xùn)全面提升個人綜合素質(zhì)
- 如何克服高中生的社交恐懼癥
- 聚焦任務(wù)的學(xué)習(xí)設(shè)計作業(yè)改革新視角
- 移動商務(wù)內(nèi)容運營(吳洪貴)任務(wù)三 APP的品牌建立與價值提供
- 電子競技范文10篇
- 食堂服務(wù)質(zhì)量控制方案與保障措施
- VI設(shè)計輔助圖形設(shè)計(2022版)
評論
0/150
提交評論