国产91在线无码_少妇人妻无码高清_91人妻中文字幕无码专区在线_国产福利在线播放_免费 无码 国产成年视频网站

軟件項目管理之軟件的度量(軟件度量的主要原則)

一、度量的目的

1、引例

引用Lord Kelvin曾說過一句話: ①當你能夠測量你所說的并將其用數(shù)字表達出來,你就對它有了一些了解;②但當你不能測量,不能用數(shù)字表達它時,你對它的了解就很貧乏、很不令人滿意;③它可能是知識的開始,但你在思想上還遠沒有進入科學的境地。

這句話說明,想要得到一個可量化的結(jié)果,需要先去測量它,有了測量結(jié)果后,才會有度量;也就是說,測量是度量的基礎(chǔ)。

2、度量的目的

進行度量工作,是為了了解產(chǎn)品開發(fā)技術(shù)過程產(chǎn)品本身。

  • 度量開發(fā)過程的目的是為了改進過程;

  • 度量產(chǎn)品的目的是為了提高產(chǎn)品的質(zhì)量。

3、度量的作用

  • 度量的作用是為了有效地定量地進行管理。

二、測量、度量和指標區(qū)別

1、引例

假設(shè)有A和B兩個人,我們都知道A比B高。但不知道A比B高多少?

這個時候是不是就得經(jīng)過測量身高才能知道具體值。

所以,A和B的身高值即為測量值。

經(jīng)過測量,A的身高為189cm,B的身高為170cm。

得出結(jié)論,A比B高19cm。

所以,A比B高19cm是度量值。

2、測量、度量和指標的區(qū)別

(1)測量(measure)—— 對一個產(chǎn)品或過程的某個屬性的范圍、數(shù)量、維數(shù)、容量或大小提供了一個定量的指示。

(2)度量(metrics)—— 對一個系統(tǒng)、部件或過程具有的某個給定屬性的度的一個定量測量。

(3)指標(indicator)—— 軟件工程師收集測量并開發(fā)度量,這樣就可以獲得“指標(indicator)”;指標是一個度量或度量的組合,它對軟件過程、軟件項目產(chǎn)品本身提供了更深入的理解。

3、思考題

Q:指出下面這段話中哪些是測量,哪些是度量,哪些是指標?

有四個軟件小組共同完成一個大型項目,但是每個小組必須進行技術(shù)評審,

通過檢查每人每小時所發(fā)現(xiàn)的錯誤數(shù),管理者發(fā)現(xiàn),采用更加正式評審方法的兩個小組比起另外兩個小組,每人每小時所發(fā)現(xiàn)的錯誤數(shù)要高40%。

Answer:

從上面這段話中可以得出,每人每小時所發(fā)現(xiàn)的錯誤數(shù)為測量值,更加正式的評審方法為指標,每人每小時所發(fā)現(xiàn)的錯誤數(shù)要高40%為度量值。

假設(shè)其它參數(shù)相同,這就給管理者提供一個指標:正式的評審方法比起其他評審方法在時間投資上能得到更大的回報,他可能會建議所有小組都采用正式的評審方法。

得出結(jié)論,測量是度量的基礎(chǔ),度量是為了得到指標,它們的關(guān)系為:測量->度量->指標。

三、過程度量和項目度量

軟件過程度量主要用于戰(zhàn)略的目的,軟件項目度量則是戰(zhàn)術(shù)的

1、過程

(1)過程度量

  • 在軟件發(fā)布之前的錯誤數(shù)的測量;

  • 交付給最終用戶并由最終用戶報告的缺陷的測量;

  • 交付的工作產(chǎn)品生產(chǎn)率)的測量;

  • 花費的工作量的測量;

  • 花費的時間的測量;

  • 進度是否一致的測量。

(2)過程指標

  • 使得軟件工程組織能夠洞悉一個已有過程的功效(如范型、軟件工程任務(wù)、工作產(chǎn)品及里程碑);

  • 使得管理者和開發(fā)者能夠評估哪些部分可以起作用,哪些部分不行;

  • 過程度量(Metrics)的收集跨越所有的項目,并經(jīng)歷很長的時間,目的是獲得改善軟件過程的指標。

2、項目

(1)項目度量

  • 大多數(shù)軟件項目度量的第一個應(yīng)用是在估算時發(fā)生的;

  • 從過去的項目中收集的度量可用來作為估算現(xiàn)在軟件項目的工作量及時間的基礎(chǔ);

  • 所花費的工作量及時間的測量可以和預(yù)估算值進行比較,項目管理者使用這些數(shù)據(jù)來監(jiān)督和控制項目的進展。

(2)項目度量的目的

  • 能指導進行一些進度上的必要調(diào)整,以避免延遲、減少問題及風險,從而使得開發(fā)時間減到最少;

  • 項目度量可在項目進行的基礎(chǔ)上評估質(zhì)量,在必要時修改技術(shù)方法以改進質(zhì)量。

(3)項目指標

  • 評估正在進行的項目的狀態(tài);

  • 跟蹤潛在的風險;

  • 在問題造成不良影響之前發(fā)現(xiàn)它們;

  • 調(diào)整工作流程或任務(wù);

  • 評估項目組在控制軟件工程工作產(chǎn)品的質(zhì)量的能力。

四、度量的方式

1、物理世界中的測量

(1)直接測量—— 例如,測量一個螺栓的長度;

(2)間接測量—— 例如,用次品率來測量生產(chǎn)出的螺栓質(zhì)量。

2、軟件測量

軟件測量與物理測量一樣,也同樣分為兩類。

(1)直接測量

過程 —— 軟件工程過程直接測量包括所投入的成本和工作量;

產(chǎn)品 —— 軟件產(chǎn)品直接測量包括產(chǎn)生的代碼行數(shù)(LOC)、執(zhí)行速度、存儲量大小、在某種時間周期中所報告的差錯數(shù)。

(2)間接測量

產(chǎn)品 —— 軟件產(chǎn)品的間接測量包括功能性、復(fù)雜性、效率、可靠性、可維護性和許多其它的質(zhì)量特性。

五、面向規(guī)模的度量

1、定義

(1)面向規(guī)模的度量是對軟件和軟件開發(fā)過程的直接度量

(2)可以建立一個面向規(guī)模的數(shù)據(jù)表格來記錄項目的某些信息。

2、有用度量的計算——舉例闡述

項目 LOC 工作量 成本 文檔頁數(shù) 錯誤 缺陷 人員
Alpha 12100 24 168 365 134 29 3
Beta 27200 62 440 1224 321 86 5
Gamma 20200 43 314 1050 256 64 6

Q:該表格列出了在過去幾年完成的每一個軟件開發(fā)項目和關(guān)于這些項目的相應(yīng)的面向規(guī)模的數(shù)據(jù)。那么,從該表中可以獲得哪些有用信息?三個項目哪個項目的軟件質(zhì)量最高?哪個項目的生產(chǎn)率最高?哪個項目的單位成本最高?

:LOC即Line Of Code,表示代碼行數(shù);PM即Person Month,表示每人每月。

需要注意的是:在表格中記載的工作量和成本是整個軟件工程的活動(分析、設(shè)計、編碼和測試),而不僅僅是編碼活動

對于每一個項目,可以根據(jù)表格中列出的基本數(shù)據(jù)計算簡單的面向規(guī)模的生產(chǎn)率和質(zhì)量等的度量。

A:根據(jù)表格可以對所有的項目計算出以下有用度量

生產(chǎn)率 = KLOC/PM(人月);(成正比)

質(zhì)量 = 錯誤數(shù)/KLOC;(成正比)

質(zhì)量 = 缺陷數(shù)/KLOC;(成反比)

成本 = 元/LOC;(成正比)

文檔 = 文檔頁數(shù)/KLOC。(成正比)

六、面向功能的度量

1、定義

(1)面向功能的軟件度量是對軟件和軟件開發(fā)過程的間接度量;

(2)面向功能的度量主要考慮程序的“功能性”和“實用性”,而不是對LOC計數(shù);

(3)該度量是一種叫做功能點方法的生產(chǎn)率度量法,利用軟件信息域中的一些計數(shù)和軟件復(fù)雜性估計的經(jīng)驗關(guān)系式而導出功能點FP。

2、功能點度量的計算

(1)圖例

軟件項目管理之軟件的度量(軟件度量的主要原則)

需了解以下公式

FP=總計數(shù)值х(0.65 0.01 х ΣFi);

“ 0.65 0.01 х ΣFi ” :復(fù)雜度調(diào)整因子。

  • FP即Function Points,表示功能點;

  • 總計數(shù)值是所有加權(quán)計數(shù)項的和;與五個信息域有關(guān),即輸入,輸出,查詢,文件,接口,且需考慮加權(quán)因子;

  • Fi為復(fù)雜度校正值,需回答14個問題,詳情看下方第(3)點

(2)五個信息域

  • 用戶輸入數(shù):各個用戶輸入是面向不同應(yīng)用的輸入數(shù)據(jù);

  • 用戶輸出數(shù):各個用戶輸出是面向應(yīng)用的輸出信息,包括報表,屏幕信息,錯誤信息等。在報表中的各個數(shù)據(jù)項不應(yīng)該再分別計數(shù);

  • 用戶查詢數(shù):查詢是一種聯(lián)機的交互操作,每一個不同的查詢都要計算;

  • 文件數(shù):每一個邏輯主文件都應(yīng)計數(shù)。邏輯主文件是指邏輯上的一組數(shù)據(jù),可以是一個大數(shù)據(jù)庫的一部分,也可以是一個單獨的文件;

  • 外部接口數(shù):與系統(tǒng)中其他設(shè)備通過外部接口讀寫信息次數(shù)均應(yīng)計數(shù)。

(3)關(guān)于復(fù)雜性校正值Fi

  1. 系統(tǒng)是否需要可靠的備份和恢復(fù)?

  2. 是否需要數(shù)據(jù)通信?

  3. 是否有分布處理的功能?

  4. 是否性能成為關(guān)鍵?

  5. 系統(tǒng)是否運行在現(xiàn)存的高度實用化的操作環(huán)境中?

  6. 系統(tǒng)是否需要聯(lián)機數(shù)據(jù)項?

  7. 聯(lián)機數(shù)據(jù)項是否需要建立多重窗口顯示和操作,以處理輸入處理?

  8. 主文件是否聯(lián)機更新?

  9. 輸入、輸出、文件、查詢是否復(fù)雜?

  10. 內(nèi)部處理過程是否復(fù)雜?

  11. 程序代碼是否可復(fù)用?

  12. 設(shè)計中是否包括了轉(zhuǎn)移和安裝?

  13. 系統(tǒng)是否設(shè)計成可以重復(fù)安裝在不同機構(gòu)中?

  14. 系統(tǒng)是否設(shè)計成易修改和易使用?

(4)關(guān)于計算

一旦收集到上述數(shù)據(jù),就可以計算出與每一個計數(shù)相關(guān)的復(fù)雜性值;

一個信息域是簡單的、平均(中等)的還是復(fù)雜的,由使用功能點方法的機構(gòu)自行確定,從而計算出加權(quán)計數(shù);

計算功能點,使用如下的計算公式

FP=總計數(shù)值×[0.65 0.01 × ∑(Fi)],總計數(shù)值是所有加權(quán)計數(shù)項的和;

Fi(i=1..14)是復(fù)雜性校正值,它們應(yīng)該通過逐一回答14個問題來確定,詳情看第(3)點;

③④注意點

  • Fi的取值0~5:0表示沒有影響;1表示微小影響;2表示輕度;3表示中度;4表示顯著;5表示重大;

  • ∑(Fi)是求和函數(shù)。

一旦計算出功能點,就可仿照LOC的方式度量軟件的生產(chǎn)率、質(zhì)量和其它屬性,具體公式如下:

生產(chǎn)率=FP/PM(人月);(成正比)

質(zhì)量=錯誤數(shù)/FP;(成正比)

質(zhì)量 = 缺陷數(shù)/FP;(成反比)

成本=元/FP;(成正比)

文檔=文檔頁數(shù)/FP;(成正比)

(5)基于FP的軟件度量

  • 每個FP的錯誤數(shù)(Errors per FP) —— 質(zhì)量

    每個FP的缺陷數(shù)(Defects per FP) —— 質(zhì)量

  • 每個FP的花費($ per FP) —— 成本

  • 每個FP的文檔頁數(shù)(Pages of documentation per FP) —— 文檔

  • 每人月完成的FP數(shù)(FP per person-month) —— 生產(chǎn)率

(6)思考題——think more

功能點FP和總計數(shù)值之間的關(guān)系,最小值是x 總計數(shù)值,最大值是x 總計數(shù)值。

如果14個問題的復(fù)雜度調(diào)整值總和為42,總計數(shù)值假設(shè)為100,則功能點FP的值為___。

解析:

  • 最小值為0.65 x 總計數(shù)值,最大值為1.35 x 總計數(shù)值。

  • 功能點FP的值為FP = 總計數(shù)值×[0.65 0.01 × ∑(Fi)] = 100 x (0.65 0.01 x 42) = 100 x 1.07 = 107

3、擴展的功能點度量 —— 特征點

(1)基礎(chǔ)知識

擴展的功能點也叫特征點度量法,是另外一種功能點度量;

②功能點度量最初主要是用于商業(yè)信息系統(tǒng)應(yīng)用中;

強調(diào)數(shù)據(jù)維而排除了功能維及行為(控制)維;

因此,功能點度量不適合用于很多工程及嵌入式系統(tǒng)(它們強調(diào)功能及控制)。

(2)特征點

功能點測量的超集(superset),適用于算法復(fù)雜性較高的應(yīng)用,主要應(yīng)用于系統(tǒng)和工程軟件的應(yīng)用,例如,實時系統(tǒng)、過程控制軟件及嵌入式軟件應(yīng)用。

(3)特征點的計算

軟件項目管理之軟件的度量(軟件度量的主要原則)

由上圖可以發(fā)現(xiàn)

在FP信息域值計算的基礎(chǔ)上增加了一個新的軟件特性,即算法——特定計算機程序中所包含的一個界定的計算問題;

在特征點的計算中,權(quán)值是固定的,而原來功能點的度量計算中,權(quán)值有簡單、平均、復(fù)雜三種取值。

PS:權(quán)值即加權(quán)因子

4、調(diào)和不同的度量方法

Q:如果我知道LOC的數(shù)量,有沒有可能估算功能點(FP)的數(shù)量?

A:代碼行數(shù)和功能點之間的關(guān)系依賴于用來實現(xiàn)軟件的程序設(shè)計語言設(shè)計質(zhì)量。

那么不同程序語言建造一個功能點所需的平均代碼行數(shù)是多少呢?

如下圖所示

軟件項目管理之軟件的度量(軟件度量的主要原則)

看到這里,小伙伴們對功能點是否有一定了解了呢?

不妨試問下自己,如果開發(fā)一個信息系統(tǒng)需要用到56000行VB代碼,3000行SQL代碼,那么該系統(tǒng)的功能點(FP)是多少?

軟件質(zhì)量度量

1、軟件質(zhì)量的度量

質(zhì)量度量貫穿于軟件工程的全過程以及軟件交付給用戶使用之后。

(1)交付前度量

  • 在軟件交付之前得到的度量可作為判斷設(shè)計和測試質(zhì)量好壞的依據(jù);

  • 這一類度量包括程序復(fù)雜性、有效的模塊性總的程序規(guī)模

(2)交付后度量

  • 在軟件交付之后的度量則把注意力集中于還未發(fā)現(xiàn)的缺陷數(shù)系統(tǒng)的可維護性方面;

2、軟件質(zhì)量的度量指標

為了實現(xiàn)實時的質(zhì)量評估,工程師們必須采用技術(shù)測量客觀地評估質(zhì)量,而不能采用主觀的方法。以下列出4種客觀的度量指標:

(1)正確性(最重要)

  • 一個程序必須正確地運行,并為它的用戶提供某些輸出;

  • 正確性要求軟件執(zhí)行所要求的功能;

  • 關(guān)于正確性的最常用的測量是每KLOC的缺陷數(shù)(Defects/KLOC),這里的缺陷數(shù)定義為“驗證結(jié)果與需求不符的地方”。

思考

Q:缺陷數(shù)越高越好還是越少越好?

A:缺陷數(shù)越高,軟件質(zhì)量越低;所以缺陷數(shù)應(yīng)該盡可能少。

(2)可維護性

  • 可維護性是指遇到錯誤時程序能被修改的容易程度,維護所占的工作量比其他活動都大,它無法直接測量

  • 面向時間:

    有一種簡單的面向時間的度量,稱MTTC(平均變更時間),可以作為可維護性的度量;

    這個時間包括分析變更要求、設(shè)計適當?shù)男薷?/strong>、實現(xiàn)變更并測試、及把變更發(fā)送給所有的用戶。

  • 面向成本:

    還有一種面向成本的可維護性度量,稱損壞度,指的是軟件發(fā)布給最終用戶后修改遇到缺陷的成本。

思考

Q1:MTTC越低,可維護性越好還是越差呢?

A1:MTTC即平均變更時間,變更時間越少,說明軟件質(zhì)量越好;所以,MTTC越低,可維護性越好。

Q2:當每千代碼行的缺陷數(shù)降低的同時,損壞度有可能提高嗎?

A2:損壞度即遇到缺陷的成本。

舉個例子:

假設(shè)在一個軟件中,遇到50個缺陷,這50個缺陷都是些很小很細微的問題,很快就能修復(fù)完,那么所花費的成本也就不會很高;

再或者在另一個軟件中,遇到5個缺陷,這5個缺陷剛好是5個非常重大的漏洞問題,需要很多時日才能修復(fù)完,那么所花費的成本就會很高,即損壞度提高;

所以,缺陷數(shù)低并不代表成本就會低,這也就意味著,當每千代碼行的缺陷數(shù)降低的同時,損壞度有可能提高。

(3)完整性

  • 完整性是度量一個系統(tǒng)在安全方面的抗攻擊的能力;

  • 軟件的三個成分,程序、數(shù)據(jù)和文檔都會遭到攻擊;

  • 度量完整性,需要定義兩個附加的屬性:危險性安全性

  • 危險性是特定類型的攻擊將在一個給定時間內(nèi)發(fā)生的概率;

  • 安全性是排除特定類型攻擊的概率;

  • 一個系統(tǒng)的完整性可定義為 完整性=∑[1-危險性×( 1-安全性) ]其中,對每一個攻擊的危險性和安全性都進行累加。

思考

Q:某個攻擊的危險性是70%,安全性是40%,那它的完整性等于多少?

A:完整性 = ∑ [1-危險性×( 1-安全性) ] = 1 – 0.7(1 – 0.4) = 1 – 0.7×0.6 = 1 – 0.42 = 0.58

試想下,一個完整性為0.58的系統(tǒng),它合格嗎?

答案自然是不合格的。一個軟件,連最基礎(chǔ)的60%的合格率都達不到,又怎么能合格呢。

(4)可用性

如果一個程序不具有“用戶友好性”,即使它所執(zhí)行的功能很有價值,也常常會失敗。可使用性量化“用戶友好性”,并依據(jù)以下四個特征進行度量:

  • 為學習系統(tǒng)所需要的體力上的智力上的技能;

  • 為達到適度有效使用系統(tǒng)所需要的時間;

  • 當軟件被某些人適度有效地使用時所度量的在生產(chǎn)率方面的凈增值;

  • 用戶角度對系統(tǒng)的主觀評價(可以通過問題調(diào)查表得到)。

八、DRE

1、DRE的全稱

DRE,即Defect Removal Efficiency,表示缺陷排除效率。

2、衡量DRE的兩種角度

(1)DRE=E/(E D)

  • DRE是對質(zhì)量保證及控制活動中濾除缺陷能力的一個測量;

  • E是軟件交付給最終用戶之前所發(fā)現(xiàn)的錯誤數(shù),D是軟件交付之后所發(fā)現(xiàn)的缺陷數(shù)。

(2)

  • DRE也能夠用于在項目中評估一個小組在錯誤傳遞到下一個活動或任務(wù)之前發(fā)現(xiàn)這些錯誤的能力。在這種情況下,我們定義DRE為:

  • 可以把前一個活動,后一個活動。

3、思考題 —— think more

軟件團隊將軟件交付給了最終用戶。在使用的第一個月中,用戶發(fā)現(xiàn)了8個缺陷。在交付之前,軟件團隊在正式的評審和所有的測試任務(wù)中發(fā)現(xiàn)了72個錯誤。那么,項目總的缺陷排除效率公式是DRE=E/ ( ),最后的結(jié)果是____(寫成小數(shù)點的形式)。

解析:

  • 項目總的缺陷排除效率公式是DRE=E/(E D);

  • 最后的結(jié)果是DRE = 72 / (72 8) = 0.9。

本文作者:星期一研究室 來源:稀土掘金

CIO之家 www.ciozj.com 微信公眾號:imciow

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。

(0)
上一篇 2024年6月12日 上午2:06
下一篇 2024年6月12日 上午2:18

相關(guān)推薦