翻譯自:
http://blogs.msdn.com/fxcop/archive/2007/11/20/maintainability-index-range-and-meaning.aspx
可維護性指數最開始的計算方法是這樣的(來源於卡耐基梅隆大學 的研究成果,但是考慮到計算不包含註釋,所以修改了霍爾斯特德量 的計算方法):
可維護性指數= 171 - 5.2 * ln(霍爾斯特德量 ) - 0.23 * (圈複雜度) - 16.2 * ln(代碼行數)
這樣算出來的數值可能是171到負無窮大。當可維護性指數趨向於0時,代碼已經難以維護,所以0和負無窮大之間沒有太多區別。
爲了讓這個度量指標看起來更清晰,我們取所有的負數爲0,指數範圍爲0到100,將計算公式改造爲:
可維護性指數= MAX(0,(171 - 5.2 * ln(霍爾斯特德量 ) - 0.23 * (圈複雜度) - 16.2 * ln(代碼行數))*100 / 171)
在調整公式的基礎上,考慮劃分不同的閾值:
- 0-9 = Red
- 10-19 = Yellow
- 20-100 = Green