다음은 stan4j의 복잡성 메트릭입니다 .
이클립스 클래스 구조 분석 도구.
이 도구와 측정 항목이 마음에 듭니다. 나는 메트릭을 통계, 지표, 경고 메시지로 취급합니다. 때로는 일부 메서드 또는 일부 클래스로 인해 복잡한 논리가있어 복잡하게 만들 수 있습니다. 수행해야 할 작업은이를 주시하고 검토하여 리팩토링 할 필요가 있는지 검토하거나 신중하게 검토하는 것입니다. 오류가 발생하기 쉽습니다. 또한 복잡한 것부터 간단한 것까지 배우는 것을 좋아하기 때문에 소스 코드를 배우기위한 분석 도구로 사용합니다. 실제로는 Robert C. Martin Metrics, Chidamber & Kemerer Metrics, Count Metrics와 같은 다른 메트릭을 포함하지만 이것이 가장 좋습니다
복잡성 메트릭
순환 복잡성 메트릭
순환 복잡성 (CC) 방법
의 순환 복잡성은 방법의 제어 흐름 그래프에서 1 씩 증가하는 결정 지점의 수입니다. 결정 지점은 제어 흐름이 단순한 선형이 아닌 if / for / while 문, case / catch 절 및 유사한 소스 코드 요소에서 발생합니다. 단일 (소스 코드) 문에 의해 도입 된 (바이트 코드) 결정 지점의 수는 예를 들어 부울 표현식의 복잡성에 따라 달라질 수 있습니다. 메서드의 순환 복잡성 값이 높을수록 메서드 제어 흐름 그래프의 모든 분기를 테스트하는 데 더 많은 테스트 케이스가 필요합니다.
평균 순환 복잡도
응용 프로그램, 라이브러리, 패키지 트리 또는 패키지의 모든 방법에 대한 순환 복잡도 메트릭의 평균 값입니다.
Fat Metrics
아티팩트의 Fat 메트릭은 아티팩트의 적절한 종속성 그래프에있는 간선의 수입니다. 종속성 그래프 유형은 메트릭 변형 및 선택한 아티팩트에 따라 다릅니다.
Fat
응용 프로그램, 라이브러리 또는 패키지 트리의 Fat 메트릭은 하위 트리 종속성 그래프의 가장자리 수입니다. 이 그래프에는 패키지 트리 계층 구조에있는 모든 아티팩트의 하위 항목이 포함되어 있으므로 리프 패키지도 포함됩니다. (컴포지션 뷰에서 적절한 그래프를 보려면 구조 탐색기의 플랫 패키지 토글을 비활성화해야합니다. 선택한 아티팩트가 라이브러리 인 경우 라이브러리 표시 토글을 활성화해야하며 그렇지 않으면 비활성화해야합니다.)
패키지의 Fat 메트릭은 단위 종속성 그래프의 에지 수입니다. 이 그래프에는 패키지의 모든 최상위 클래스가 포함됩니다.
클래스의 Fat 메트릭은 멤버 그래프의 간선 수입니다. 이 그래프에는 클래스의 모든 필드, 메서드 및 멤버 클래스가 포함됩니다. (이 그래프와 Fat 값은 Class가 아닌 Level of Detail Member로 코드 분석을 수행 한 경우에만 사용할 수 있습니다.)
Fat for Library Dependencies (Fat-Libraries)
응용 프로그램의 Fat for Library Dependencies 메트릭은 라이브러리 종속성 그래프의 에지 수입니다. 이 그래프에는 애플리케이션의 모든 라이브러리가 포함됩니다. (컴포지션보기에서 적절한 그래프를 보려면 구조 탐색기의 라이브러리 표시 토글을 활성화해야합니다.)
플랫 패키지 종속성에 대한 지방 (Fat-패키지)
응용 프로그램의 플랫 패키지 종속성에 대한 지방 메트릭은 플랫 패키지 종속성 그래프의 에지 수입니다. 이 그래프에는 애플리케이션의 모든 패키지가 포함됩니다. (컴포지션 뷰에서 적절한 그래프를 보려면 구조 탐색기의 플랫 패키지 토글을 활성화하고 라이브러리 표시 토글을 비활성화해야합니다.)
라이브러리의 플랫 패키지 종속성에 대한 지방 메트릭은 플랫 패키지 종속성 그래프의 에지 수입니다. 이 그래프에는 라이브러리의 모든 패키지가 포함됩니다. (컴포지션 뷰에서 적절한 그래프를 보려면 구조 탐색기의 플랫 패키지 및 라이브러리 표시 토글을 활성화해야합니다.)
최상위 클래스 종속성에 대한 지방 (지방-단위)
응용 프로그램 또는 라이브러리의 최상위 클래스 종속성에 대한 지방 메트릭은 해당 단위 종속성 그래프의 가장자리 수입니다. 이 그래프에는 애플리케이션 또는 라이브러리의 모든 최상위 클래스가 포함됩니다. (합리적인 응용 프로그램의 경우 너무 커서 시각화 할 수 없으므로 구성보기에 표시 할 수 없습니다. 단위 종속성 그래프는 패키지에 대해서만 표시 될 수 있습니다.)
the number of StyleCop warnings + 10 * the number of FxCop warnings + 2 to the power of the number of disabled warning types
. 해당 메트릭의 값이 가능한 한 작은 후에 만 사람이 코드 검토를 시작할 가치가 있습니다 (제 생각에는). 요컨대, 단순한 공식이 아닌 정교한 도구가 코드 품질을 향상시키는 데 도움이 될 수 있습니다. 이것은 아마도 주제에서 벗어난 것입니다.