halstead方法是一種根據程式中運算符和運算元的總數來度量程式複雜度的方法。
halstead度量方法不僅僅度量了程式長度,還描述了程式的最小實現和實際實現之間的關係,並據此闡釋程式語言的等級高低。它以程式中出現的操作符和運算元為計數對象,以它們的出現次數作為計數目標來測算程式容量和工作量。
任意程式P,總是由操作符和運算元通過有限次的組合連綴而成。P的符號表辭彙量 η = η 1+ η 2( η 1:唯一運算元數量, η 2:唯一操作符數量)。設N1是P中出現的所有操作符,N2是程式中出現的所有運算元。度量指標如下:
程式長度N=N1+N2
程式容量V=N × log2 η
當我們編寫程式的時候,代碼體積會因實現方式和編寫者的習慣有所差異,還會因所採用的程式語言(比如保留字的數量,語句的結構等)而有所不同。因此,又有如下標準:
程式語言等級L=V ?/ V(V ? 是程式實現時可能的最小代碼容量)
編寫程式的效率E=V / L
編寫程式的時間 T = E / 18
程式錯誤預測 B = E^(2/3) / 1000
halstead的度量分析指出,在軟體開發中,把系統劃分為單獨的模組所帶來的實質性利益,在於短代碼的難度要比長代碼低。