다음을 통해 공유


코드 메트릭 - 유지 관리 가능성 인덱스 범위 및 의미

질문: 유지 관리 가능성 인덱스가 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 녹색 코드의 유지 관리 효율성이 좋습니다.