軟件度量知識點
1.測量有哪些尺度類型?各有何區別?測量作爲一個過程,有哪些階段?
2.軟件度量的實體有哪些?如何採用GQM定義度量框架?GQM中如何描述目標?
3.什麼是功能點分析?特徵點、對象點、和功能點有何不同?
4.什麼是用例點分析?
5.Helstead 方法如何進行軟件度量?與代碼行相比有何優勢?
6.什麼是COCOMO模型?如何採用COCOMO模型進行成本估計?
7.什麼是程序的環形複雜度?如何度量?
8.在面向對象的度量中,CK方法和LK方法各提供了哪些度量指標?
9.基於信息的度量中,shepperd方法與Herry/Kafura 方法有何不同?
10.舉例說明數據結構如何影響軟件的複雜性。
11.度量軟件產品結構時,一般考慮哪三類結構?每個結構度量中考慮哪些因素?
12.ISO 9126質量模型,Bohem質量模型,McCall’s質量模型考慮了軟件哪些主要質量因素?
13.軟件能力成熟度模型CMM.
14.能夠根據數據流圖進行功能點計算,根據用例圖進行用例點計算,根據類圖進行面向對象度量.
測量定義:用數字或符號來表示真實世界中實體屬性從而根據定義的規則來表示實體的過程。
度量定義:由用戶和設計者一同設想的用來在可信和有意義的方式中顯露出的的選擇的特性。
軟件度量的定義:用來量化軟件產品軟件開發資源和/或軟件開發過程的度量。包括可直接測量的對象如代碼行也包括通過測量計算得到的對象如軟件質量。
1. 測量有哪些尺度類型?各有何區別?測量作爲一個過程有哪些階段?
答:(1)測量有標定尺度、類型尺度、序列尺度、間隔尺度、比例尺度、絕對尺度。
(2)標定尺度和類型尺度屬於語言尺度Linguistic,間隔尺度、比例尺度和絕對尺度屬於定量尺度。
標定尺度給出了唯一且不含糊的概念名稱,並且定義技術也屬於標定尺度。
類型尺度識別實體中已經定義且命名的類型或種類categories,也叫絕對標定尺度。
序列尺度估計已測量的實體的值並將他們按順序重組排列值和順序均表達爲字符或符號。
間隔尺度用於發現增長間隔而不是比例沒有不合理的0間隔後半句話翻譯不好。
比例尺度允許比例的計算並且允許合理的0參考點。
絕對尺度用於計數count只有一種可能的絕對屬性測量。
(3)感知Cognitive、語義Semantic、數字化Quantitative。
2. 軟件度量的實體有哪些?如何採用GQM定義度量框架?GQM中如何描述目標?
答:(1)軟件度量的實體類型:
①過程process軟件開發中活動的集合。不同的軟件開發模式中所採用的流程和活動也不一樣。
②產品product軟件過程活動的結果可以是一個程序、一個軟件文檔或其他任何交付物。
③資源resource實施這些活動所需要的對象可能是人力、設備、時間等。
(2)GQM定義度量框架:1.確定目標;2.細化感興趣的問題列表;3.定義需要回答這些問題的度量標準;4.開發數據收集和分析的工具和機制;5.收集並驗證數據;6.通過事後剖析的方式分析數據以評估是否與目標一致併爲其後的改善提供意見;7.爲利益相關者提供反饋信息。
(3)GQM中如何描述目標:GQM中目標有4個部分:一個感興趣的對象、一個意圖、一個觀點、一個對環境和約束的描述。
3.什麼是功能點分析?特徵點、對象點、和功能點有何不同?
答:(1)功能點分析是對產品中爲調整的函數數量UFC及值調整因子VAF的分析計算。(FP=UFC*VAF。生產率:FP/人月。文檔率:頁數/FP)。
(2)特徵點分析擴展了功能點計數到實時和TLC環境MIS、RT、SC。當應用的算法數量及邏輯數據文件數相同時,功能點和特徵點產生相同的結果。應用於MIS項目時結果通常完全相同。當應用於更復雜的系統軟件形態時,特徵點的計數要高的顯著的多。
對象點是應用於開發循環早期的一種初始規模度量技術。每個對象被分成簡單、中等、困難3個等級。度量由使用的窗口screen、報告reports、組件components的計數來決定。
功能點則是對產品中使用的功能函數的計數來度量程序。
4.什麼是用例點分析?
答:用例點分析是面向對象分析和設計中一種用來提高需求的方法。
用例點分析方法爲:
1.計算未調整的角色數:UAW
2.計算未調整的用例數:UUCW
3.計算未調整的用例點數:UUCP=UAW+UUCW
4.計算技術複雜度因子:TCF=0.6+0.01*TFactor
5.計算環境因子:EF=1.4-0.03*EFactor
6.計算成本調整後的用例點數:UPC=UUCP*TCF*EF。
5.Helstead方法如何進行軟件度量?與代碼行相比有何優勢?
答:(1)答法一:Halstead方法認爲程序是一組記號,由兩種基本的元素組成操作數(變量、常量、地址、空間)和操作符編程語言中定義的操作。它統計程序中出現的不重複的操作符數量μ1和操作數數量μ2及總共的操作符數N1和操作數數N2。
程序的單詞量vocabulary:μ=μ1+μ2
程序的長度爲總共出現的操作符數和操作數數:N=N1+N2
程序預計長度:N^=μ1log2μ1+μ2log2μ2
程序容量:V=Nlog2μ=Nlog2(μ1+μ2)。Halstead方法認爲V是編寫長度爲N的程序所需要的思維比較次數。V通常用來測量軟件複雜度。
潛在容量V*:是一個算法任意表達的最小容量。假設只有一個操作符一個操作符,只引用一次。V*=(2+μ2*)log2(2+μ2*) 程序等級L:是一個算法的具體實現的抽象級別。L=V*/V
智力內容I:測量程序裏表述了“多少”。I=L^*V
困難度:D=1/L
答法二:Halstead方法是一種程序複雜度度量方法。Halstead度量方法不僅僅度量了程序長度還描述了程序的最小實現和實際實現之間的關係。並據此闡釋程序語言的等級高低。它以程序中出現的操作符和操作數爲計數對象。以它們的出現次數作爲計數目標來測算程序容量和工作量。
n1:操作符數量 n2:操作數數量 N1:操作符出現的總數量 N2:操作數出現的總數量
Program length:程序長度 N=N1+N2
Program vocabulary:程序詞彙量 n=n1+n2
Volume:程序體積 V=Nlog2n
Difficulty:難度
Effort:總工作量 E=D*V
Halstead還給出了預測程序中包含錯誤的個數的公式如下:E=Nlog2(n1+n2)/3000
(2)Halstead方法與代碼行相比:
1.定義清晰 2.對具體的編程語言依賴性小 3.能爲早期的設計提供支持 4.對開發人員技術的依賴性較小。
6.什麼是COCOMO模型?如何採用COCOMO模型進行成本估計?
答:(1)COCoMo是指Constructive Cost Model,構造性成本模型,Boehm於1981年提出,用於對軟件開發項目的規模、成本、進度等方面進行估算。CoCoMo模型是一個綜合經驗模型,模型中的參數取值來至於經驗值,並且綜合了諸多的因素、比較全面的估算模型。比較實用、可操作,在歐盟國家應用較爲廣泛。
(2)1.基本COCOMO模型:系統開發的初期,估算整個系統的工作量(包括維護)和軟件開發和維護所需的時間。
工作量:E=a*(kLOC)b (單位人月);開發時間:D=c*Ed (單位月); 其中a,b,c,d爲經驗常數
2.中間COCOMO模型:估算各個子系統的工作量和開發時間
工作量:E=a*(kLOC)b*EAF EAF:工作量調節因子(15個因素之積、取值0.70-1.66)
3.詳細COCOMO模型:估算獨立的軟構件,如各個子系統的各個模塊的工作量和開發時間
7.什麼是程序的環形複雜度?如何度量?
答:(1)用McCabe方法度量得出的結果稱爲程序的環形複雜度。它等於強連通的程序控制結構圖中線性無關的有向環的個數。所謂強連通圖是指從圖中任一個節點出發都可以到達所有其它節點。程序控制結構圖通常不是強連通的,因爲從圖中較低的即較靠近出口點的節點往往不能到達較高的節點。然而如果從出口點到入口點畫一條虛弧則程序控制結構圖必然成爲強連通的。
(2)McCabe方法的計算步驟分如下三步:
步驟1:將程序流程圖退化成有向圖即將程序流程圖的每個處理框看作一個節點,將流線看作連接各節點的有向弧。
步驟2:在有向圖中由程序出口到入口連接一條虛有向弧。
步驟3:計算VG=m-n+1
其中VG是有向圖G中環數,m是有向圖G中的弧數,n是有向圖G中的節點數。
實踐表明模塊規模以VG≤10爲宜,也就是說VG=10是模塊規模的一個更科學、更精確的上限。FA 0 FSm1m2 m1 m2FCm1m2 m1 m2 1 FLm1 m1
8.在面向對象的度量中,CK方法和LK方法各提供了哪些度量指標?
答:LK方法提供了:LOC程序大小、CS類大小(可能說明類職責過多)、NOO重載類個數(NOO過大說明設計有問題,繼承層次抽象度低)、NOA新增方法個數(說明設計漂移)、SI過高說明層次中的類不符合抽象定義、DIT繼承樹深度等。
CK方法提供了:WMC:Weighted Methods perClass方法的權重和複雜性、DIT:Depth of Inheritance繼承樹深度值越大複雜度越大、NOC:Number of Children子類數直接繼承於某個類的個數(指示一個類可能對系統和設計存在的潛在影響)、CBO:Coupling Between Objects類耦合度(過大說明類關係較多維護困難)、RFC:Response for a Class類響應度(所有可以用於對一個對象的消息做出響應的方法個數)、LCOM:Lack of Cohension內聚度的缺乏,不同的方法用同樣的變量實例集做出不同的表象叫存在內聚度。
9.基於信息的度量中,shepperd方法與Herry/Kafura方法有何不同?
答:答法一:shepperd方法是一種較原始的改善。我們的指標特徵是它們消除信息和控制流的模糊性,集中在信息流的度量上。而henry和kafura度量是不能做到的。
答法二:基於信息的度量使用扇入扇出度量。Shepperd方法認爲信息流複雜度(M)=((fan-in(M)*(fan-out(M))2。shepperd強調這方法是在初始階段度量的改進。
HenryKafura方法認爲信息流複雜度:(M)=length(M)*((fan-in(M)*(fan-out(M))2。
10.舉例說明數據結構如何影響軟件的複雜性。
答:系統的全局複雜性不能無視數據結構而進行測量,控制流測量對鑑別隱藏在數據結構中的複雜度時會失效。
11.度量軟件產品結構時一般考慮哪三類結構?每個結構度量中考慮哪些因素?
答:(1)控制流結構、數據流結構、數據結構
(2)圈複雜度是用來衡量一個模塊判定結構的複雜程度,數量上表現爲獨立路徑的條數,即合理的預防錯誤所需測試的最少路徑條數。圈複雜度大說明程序代碼可能質量低且難於測試和維護。經驗表明程序的可能錯誤和高的圈複雜度有着很大關係。
Shepperd度量使用扇入扇出度量。Shepperd方法認爲信息流複雜度(M)=((fan-in(M)*(fan-out(M))2。shepperd強調這方法是在初始階段度量的改進。
Halstead複雜度是以程序中出現的運算符和運算元爲計數對象,以它們出現的次數作爲計數目標直接測量指標,然後據以計算出程序容量、工作量。
12.ISO 9126質量模型、Bohem質量模型、McCall's質量模型考慮了軟件哪些主要質量因素?
答:ISO 9126質量模型:功能性、可靠性、可用性、效率、可維護性、可移植性。
Bohem質量模型:總體適用性、可移植性、可維護性
McCall’s質量模型:正確性、可靠性、效率、完整性、可用性。
13.軟件能力成熟度模型CMM。
答:CMM是是一種用於評價軟件承包能力,並幫助其改善軟件質量的方法。側重於軟件開發過程的管理及工程能力的提高與評估。CMM分爲五個等級:一級爲初始級、二級爲可重複級、三級爲已定義級、四級爲已管理級、五級爲優化級。
14.能夠根據數據流圖進行功能點計算,根據用例圖進行用例點計算,根據類圖進行面向對象度量。
答:(1)數據流圖進行功能點計算
1計算各要素的基本計數
2應用複雜度加權因子乘以複雜度加權因子,即簡單、一般、複雜,得到UFC
3應用環境參數
4計算複雜度調整係數:VAF=0.65+0.01EFi(E代表求和,i是下標)
5計算調整後的功能點:FP=UFC*VAF
(2)根據用例圖進行用例點計算
1.計算未調節前的參與者權重:UAW
(程序接口,即與其他系統交互的級別爲simple,權重Factor1;協議、合作的級別爲average,權重Factor2;人機交互GUI的級別爲complex,權重Factor3)
2.計算未調節前的用例權重:UUCW (基於事物、基於分析類的用例權重分析)
3.計算未調節前的用例點:UUCP=UAW+UUCW
4.技術複雜度因素:TCF=0.6+0.01*TFactor
5.環境因素:EF=1.4-0.03*EFactor
6.調節後的用例點:UCP=UUCP*TCF*EF
(3)類圖進行面向對象度量
LK:對規模、繼承度量
CK:對類的方法複雜性、特性、模塊間內聚 度量
===============================================================================
買一送一:
1.Pareto 圖和 Histogram 圖有何區別?運行圖和控制圖有何區別?
答:(1)Pareto圖又叫80-20準側圖。它把頻率條按降序從左到右排列,X軸通常是引起缺陷的原因,而Y軸通常是缺陷數。它給出了引起缺陷的主要因素。Histogram圖的X軸是按單位間隔排列的參數且參數按升序從左到右排列,Y軸包含了頻率計數。
Pareto圖中頻率條按頻率計數排序顯示,Histogram圖用來顯示參數特徵的分佈度。
(2)運行圖和控制圖的X軸Y軸表示相同,運行圖是使用歷史數據進行趨勢分析,而控制圖比運行圖多一條中線用來判斷數據是否脫離控制,表明需要進行糾正操作。
2.什麼是過程能力?如何度量過程能力?
答:(1)過程能力是指過程或工序處於穩定狀態下的實際加工能力。它是衡量工序質量的一種標誌。對加工過程的工序能力進行分析可使我們隨時掌握製造過程中各工序質量的保證能力。從而爲保證和提高產品質量提供必要的信息和依據。
(2)過程能力度量:通過使用Cpk指數進行過程能力度量來評定實際過程與基線的目標均值的接近程度以及過程變更的數量。
要度量組織的過程能力首先需要有如下信息:
1.指定界限即上限和下限
2.指定寬度可根據指定界限得出
3.過程界限通過過程度量所得出的上限和下限
4.過程寬度可根據過程界限得出。Cpk1表示過程超過 了預定的最低標準,單個峯值較小的方差過程峯值與目標接近。
3.在度量數據的頻域分析中如何描述測量數據的散步度?
答:散步度描述了被測量觀察數據在數據集中是怎樣分佈的。
主要通過以下3個參數來反映:
極差是資料組數據集中最高和最低值之差
方差測量觀察值的波動範圍
標準差是方差的平方根。