Share via


Kod ölçümleri - Bakım dizini aralığı ve anlamı

Soru: Bakım dizini 0 ile 100 arasında olacak şekilde sıfırlandı. Bu nasıl ve neden yapıldı?

Ölçüm başlangıçta aşağıdaki gibi hesaplanmıştır: Maintainability Index = 171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code)

Bu formülün kullanılması, 171 ile ilişkisiz negatif bir sayı arasında olduğu anlamına geliyordu. Kod 0'a doğru yöneldikçe, kodu korumak açıkça zordu ve 0'daki kod ile bazı negatif değerler arasındaki fark yararlı değildi. Negatif sayıların kullanışlılığının azalması ve ölçümü mümkün olduğunca net tutma isteği nedeniyle, 0 veya daha az olan tüm dizinleri 0 olarak ele alıp 171 veya daha az olan aralığı 0 ile 100 arasında olacak şekilde yeniden temellendirmeye karar verdik. Bu nedenle kullandığımız formül şu şekildedir:

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

Buna ek olarak eşiklerle muhafazakar olmaya karar verdik. İstek şuydu: Dizin kırmızı gösterseydi, kodda bir sorun olduğunu yüksek bir güven derecesiyle söylüyor olacaktık. Bu bize aşağıdaki eşikleri verdi:

Eşikler için, gürültü düzeyini düşük tutmak için bu 0-100 aralığını 80-20 ayırmaya karar verdik ve yalnızca şüpheli kodu işaretledik. Aşağıdaki eşikleri kullandık:

  • 0-9 = Kırmızı
  • 10-19 = Sarı
  • 20-100 = Yeşil