매트릭스 측정
- 소스 코드의 품질을 정량화할 수 있다.
- 코드의 유지성 또는 가독성을 일정한 기준에 따라 수치로 평가할 수 있다.
- 파일 또는 함수 단위 매트릭스
-
코드줄 수 - 적을수록 좋음
-
주석줄 수 - 적을수록 유지보수가 어려울 것으로 예상
-
문장줄 수 - 적을수록 좋음
- 문장(statement) : 프로그램 하나의 작동을 나타내는 단위
-
최대중첩 수 - 적을수록 가독성이 좋음
-
사이크로매틱 복잡도 : 제어 흐름의 복잡성을 수치화, 제어문 수가 많을수록 수치가 커짐.
- 제어문(if 조건문, for 반복문 등) 개수 + 1
- &&, || 등의 연산자 수도 더함
- switch 조건문의 경우, switch 전체를 1개로 보거나,
case 개수를 모두 복잡더에 더하는 두가지 방법이 존재
- 복잡도가 낮을수록 코드가 단순한 것
- 함수 단위의 사이크로매틱 복잡도가 5 - 10이 넘지 않는 것을 목표로 하자.
- Halstead 복잡도 : 코드 내부에서 사용되는 연산자와 피연산자의 수로 코드의 복잡도를 구함
- 코드 내부의 어휘 수를 바탕으로 복잡도를 구하는 방법
- 한번에 많은 변수를 다루거나, 복잡하고 긴 계산식을 사용하면 수치가 커짐