程式碼度量 - 可維護性指數範圍與意義

問題:可維護性指數已重設為介於 0 到 100 之間。 這樣做的方式與原因為何?

計量的原始計算方式如下:Maintainability Index = 171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code)

使用此公式表示其範圍從 171 到無限個負數。 由於程式碼趨向於 0,因此很難維護程式碼,而程式碼在 0 與某些負值之間的差異並不實用。 由於負數的實用性不斷降低,再加上希望盡可能讓計量保持清晰,我們決定將所有 0 或更小的指數視為 0,然後將 171 或更小範圍重訂基底為 0 到 100。 為此,我們使用的公式為:

Maintainability Index = MAX(0,(171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code))*100 / 171)

除此之外,我們決定對閾值保持保守態度。 我們的期望是,如果指數顯示為紅色,則可以十分確定程式碼有問題。 因此,我們提出下列閾值:

針對閾值,我們決定將此 0-100 範圍細分為 80-20,以保持低雜訊程度,並且只標記可疑的程式碼。 我們使用下列閾值:

  • 0-9 = 紅色
  • 10-19 = 黃色
  • 20-100 = 綠色