軟件工程:實踐者的研究方法第4章軟件過程和項目的度量

字號:

第4章 軟件過程和項目的度量
    測度對于任何工程學(xué)科而言都是基本的,軟件工程也不例外。Lord Kelvin曾經(jīng)說過:
    當(dāng)你能夠測度你所說的,并將其用數(shù)字表達(dá)出來,你就對它有了一些了解;但當(dāng)你不能測度,不能用數(shù)字表達(dá)它時,你對它的了解就很貧乏、很不令人滿意:它可能是知識的開始,但你在思想上還遠(yuǎn)沒有進(jìn)入科學(xué)的階段。
    在過去十年中,軟件工程界終于開始認(rèn)可了Lord Kelvin的話。但并非沒有挫折,也不是只有一點點的爭論。
    軟件度量是指計算機(jī)軟件中范圍廣泛的測度。測度可以應(yīng)用于軟件過程中,目的是在一個連續(xù)的基礎(chǔ)上改進(jìn)它。測度也可以用于整個軟件項目中,輔助估算、質(zhì)量控制、生產(chǎn)率評估、及項目控制。最后,軟件工程師使用測度能夠幫助評估技術(shù)工作產(chǎn)品的質(zhì)量,且在項目進(jìn)行中輔助決策。
    在軟件項目管理中,我們主要關(guān)心生產(chǎn)率和質(zhì)量的度量——根據(jù)投入的工作量和時間對軟件開發(fā)“輸出”的測度,對產(chǎn)生的工作產(chǎn)品的“適用性”的測度。為了達(dá)到計劃及估算的目的,我們的興趣主要放在歷。在過去的項目中軟件開發(fā)生產(chǎn)率是怎樣的呢?產(chǎn)生的軟件的質(zhì)量是怎樣的?如何從過去的生產(chǎn)率及質(zhì)量數(shù)據(jù)推斷出現(xiàn)在的狀況?過去的信息如何幫助我們更加準(zhǔn)確地計劃和估算呢?
    在本章中,我們主要探討用于過程和項目級的軟件度量。在后面的幾章中,我們將給出軟件工程師在技術(shù)環(huán)境下使用的度量方法。
    4.1測度、度量和指標(biāo)
    雖然術(shù)語“measure”(測量)、“measurement”(測度)和“metrics”(度量)經(jīng)常被互換地使用,但注意到它們之間的細(xì)微差別是很重要的。因為“measure”(測量)和“Measurement”(測度)即可以作為名詞也可以作為動詞,所以它們的定義可能會混淆。在軟件工程領(lǐng)域中,“measure”(測量)對一個產(chǎn)品過程的某個屬性的范圍、數(shù)量、維度、容量或大小提供了一個定量的指示?!癕easurement”(測度)則是確定一個測量的行為。IEEE的軟件工程術(shù)語標(biāo)準(zhǔn)辭典(IEEE Standard Glossary of Software Engineering Terms)[IEE93]中定義“metric”(度量)為“對一個系統(tǒng)、構(gòu)件或過程具有的某個給定屬性的度的一個定量測量”。
    當(dāng)獲取到單個的數(shù)據(jù)點(如在一個模塊的復(fù)審中發(fā)現(xiàn)的錯誤數(shù))時,就建立了一個測量。測度的發(fā)生是收集一個或多個數(shù)據(jù)點的結(jié)果(如調(diào)研若干個模塊的復(fù)審,以收集每一次復(fù)審所發(fā)現(xiàn)的錯誤數(shù)的測量)。軟件度量在某種程度上與單個的測量相關(guān)(如每一次復(fù)審所發(fā)現(xiàn)的錯誤的平均數(shù),或復(fù)審中每人/小時所發(fā)現(xiàn)的錯誤的平均數(shù))。
    軟件工程師收集測量結(jié)果并產(chǎn)生度量,這樣就可以獲得指標(biāo)“indicator”。指標(biāo)是一個度量或度量的組合,它對軟件過程、軟件項目或產(chǎn)品本身提供了更深入的了解[RAG95]。指標(biāo)所提供的更深入的理解,使得項目管理者或軟件工程師能夠調(diào)整開發(fā)過程、項目或產(chǎn)品,這樣使事情進(jìn)行得更順利,能被更好地完成。
    例如,四個軟件小組共同完成一個大型軟件項目。每一個小組必須進(jìn)行技術(shù)復(fù)審,但允許其自行選擇所采用的復(fù)審類型。檢查度量結(jié)果——每人/小時所發(fā)現(xiàn)的錯誤數(shù),項目管理者注意到采用更加正式的復(fù)審方法的兩個小組,每人/小時所發(fā)現(xiàn)的錯誤數(shù)比起另外兩個小組高40%。假設(shè)所有其他參數(shù)都相同,這就給項目管理者提供了一個指標(biāo):正式的復(fù)審方法比起其他復(fù)審方法在時間投資上能得到更大的回報。他可能會決定建議所有小組都采用更加正式的方法。度量給管理者提供了更深入的理解,而更深入的理解會產(chǎn)生更嚴(yán)謹(jǐn)、更正確的決策。