1. Component Stress Complexity
STATIC에서 제공하는 FUCYC(Cyclomatic Complexity) , FUNCR(Number of Callers) , FUNCE(Number of Callees) 메트릭을 이용해 계산할 수 있는 메트릭입니다.
아래 공식을 이용해 계산할 수 있습니다.
Component Stress Complexity = (FUCYC * (FUNCR * FUNCE))^2
*참고
FUCYC(Cyclomatic Complexity)
FUCYC는 잘 알려진 메트릭으로 함수 복잡도를 의미합니다. 함수 복잡도는 구하는 방식이 여러 가지가 있습니다. 방법은 분기를 만드는 결정문(decision)의 개수 + 1을 하여 얻는 것입니다. 일반적으로 이 값이 클수록 함수의 논리 구조가 복잡하여 함수를 파악하는데 어렵고, 따라서 관리가 어려움을 의미합니다.
FUNDC(Number of Distinct Callees)
FUNDC는 해당 함수가 호출하는 함수의 개수를 표시합니다. 함수를 많이 호출하는 함수는 그만큼 다른 함수에 대한 의존도가 높습니다. 따라서 의존하는 함수의 의미가 변경될 때마다, 해당 함수의 의미 변경도 동시에 고려되어야 합니다. 이 값은 FUNCE와 비슷하지만, 호출되는 함수의 개수를 세기 때문에, 같은 함수를 여러 번 호출했더라도 한 번만 세어집니다.
FUNCR(Number of Callers)
FUNCR 메트릭은 해당 함수가 외부에서 얼마나 많이 호출되었는지를 표시합니다. 일반적으로 많이 사용되는 함수일수록 더 많은 테스팅 노력이 필요합니다. 이 메트릭은 모듈의 분석이 완료되어야 측정이 가능합니다. 분석이 수행될 때마다 새로이 갱신됩니다.
FUNCE(Number of Callees)
FUNCE는 FUNDC와 동일하지만, 중복된 함수 호출 개수도 결괏값에 포함시킵니다.
2. Number of duplicated code lines
STATIC에서 미지원하는 메트릭입니다. PMD와 같은 오픈 소스 프로그램을 이용하여 측정할 수 있습니다.