軟體度量



軟體度量框架基於三個原則:

  • 對要檢查的實體進行分類
  • 確定相關的度量目標
  • 確定組織已達到的成熟度水平

對要檢查的實體進行分類

在軟體工程中,主要存在三類實體:它們是:

  • 過程
  • 產品
  • 資源

所有這些實體都具有內部和外部實體。

  • 內部屬性是可以純粹根據過程、產品或資源本身來衡量的屬性。例如:大小、複雜性、模組間的依賴關係。

  • 外部屬性是隻能根據其與環境的關係來衡量的屬性。例如:使用者遇到的故障總數、搜尋資料庫並檢索資訊所需的時間。

可以為每個實體測量的不同屬性如下:

過程

過程是軟體相關活動的集合。以下是可以直接為過程測量的某些內部屬性:

  • 過程或其一項活動持續時間

  • 與過程或其一項活動相關的努力

  • 在過程或其一項活動期間發生的特定型別事件的數量

過程的不同外部屬性是成本、可控性、有效性、質量和穩定性。

產品

產品不僅是管理層承諾交付的專案,而且是在軟體生命週期中產生的任何工件或文件。

不同的內部產品屬性包括大小、工作量、成本、規範、長度、功能、模組化、可重用性、冗餘性和語法正確性。其中,大小、工作量和成本比其他屬性更容易衡量。

不同的外部產品屬性包括可用性、完整性、效率、可測試性、可重用性、可移植性和互操作性。這些屬性不僅描述程式碼,還描述支援開發工作的其他文件。

資源

這些是過程活動所需的實體。它可以是軟體生產的任何輸入。它包括人員、材料、工具和方法。

資源的不同內部屬性包括年齡、價格、大小、速度、記憶體大小、溫度等。不同的外部屬性包括生產力、經驗、質量、可用性、可靠性和舒適性等。

確定相關的度量目標

只有在特定度量有助於理解過程或其結果產品之一時,該度量才有用。只有在專案為過程和產品明確定義了目標後,才能改進過程或產品。對目標的清晰理解可用於根據過程成熟度框架,為給定專案生成建議的度量指標。

目標-問題-度量(GQM)正規化

GQM 方法提供了一個包含以下三個步驟的框架:

  • 列出開發或維護專案的主要目標

  • 從每個目標中推匯出必須回答的問題,以確定是否正在實現目標

  • 確定為了充分回答這些問題必須測量什麼

為了使用 GQM 正規化,我們首先表達組織的總體目標。然後,我們提出問題,以便知道答案,從而確定是否正在實現目標。之後,根據需要進行哪些測量來回答每個問題,分析每個問題。

典型的目標是用生產力、質量、風險、客戶滿意度等來表達的。目標和問題要根據其受眾來構建。

為了幫助生成目標、問題和度量,Basili & Rombach 提供了一系列模板。

  • 目的 - 為了(表徵、評估、預測、激勵等)(過程、產品、模型、度量等),以便理解、評估、管理、工程、學習、改進等。示例:為了學習而表徵產品。

  • 視角 - 從開發者、管理者、客戶等的角度檢查(成本、有效性、正確性、缺陷、更改、產品度量等)。示例:從客戶的角度檢查缺陷。

  • 環境 - 環境包括以下內容:過程因素、人員因素、問題因素、方法、工具、約束等。示例:此軟體的客戶是那些不瞭解工具的人。

度量和過程改進

通常,度量對以下方面有用:

  • 理解過程和產品
  • 建立基線
  • 訪問和預測結果

根據 SEI 給出的過程成熟度級別,度量型別和度量程式將有所不同。以下是可在每個成熟度級別應用的不同度量程式。

級別 1:臨時性

在這個級別,輸入定義不明確,而輸出是預期的。從輸入到輸出的轉換是未定義且不受控制的。對於這個過程成熟度級別,需要基線測量來提供測量的起點。

級別 2:可重複性

在這個級別,過程的輸入和輸出、約束和資源都是可識別的。可重複的過程可以用下圖來描述。

Repeatable

輸入度量可以是需求的大小和波動性。輸出可以用系統大小來衡量,資源可以用員工工作量來衡量,約束可以用成本和進度來衡量。

級別 3:已定義

在這個級別,中間活動已定義,並且它們的輸入和輸出已知且易於理解。下圖描述了一個已定義過程的簡單示例。

可以檢查、測量和評估中間活動的輸入和輸出。

Defined

級別 4:已管理

在這個級別,來自早期專案活動的反饋可以用來為當前活動和以後的專案活動設定優先順序。我們可以衡量過程活動的有效性。該度量反映了整個過程以及主要活動之間和跨主要活動的互動作用的特徵。

Managed

級別 5:最佳化

在這個級別,來自活動的度量用於透過移除和新增過程活動以及根據測量反饋動態更改過程結構來改進過程。因此,過程更改可能會影響組織和專案以及過程。該過程將充當感測器和監視器,我們可以根據警告訊號顯著更改過程。

在給定的成熟度級別,我們可以收集該級別和所有下級別的測量資料。

確定成熟度級別

過程成熟度建議只測量可見的內容。因此,過程成熟度與 GQM 的結合將提供最有用的度量。

  • 級別 1,專案可能具有定義不明確的需求。在這個級別,很難測量需求特徵。

  • 級別 2,需求已明確定義,並且可以收集其他資訊,例如每個需求的型別和對每種型別的更改次數。

  • 級別 3,中間活動已定義,每個活動都有進入和退出標準。

目標和問題分析將相同,但度量將隨成熟度而變化。過程越成熟,測量就越豐富。GQM 正規化與過程成熟度相結合,已被用作協助管理人員設計測量程式的幾種工具的基礎。

GQM 有助於理解測量屬性的需要,而過程成熟度則表明我們是否有能力以有意義的方式進行測量。兩者共同為測量提供了背景。

廣告