주요 콘텐츠

순환 복잡도 메트릭

R2026b

참고

Metrics Dashboard 앱, 모델 메트릭, slmetric API 및 해당하는 사용자 지정은 향후 릴리스에서 제거될 예정입니다. 자세한 내용은 Migrating from Metrics Dashboard to Model Design Dashboards 항목을 참조하십시오.

메트릭 ID

메트릭 ID: mathworks.metrics.CyclomaticComplexity

설명

메트릭 유형: 아키텍처

모델 어드바이저 검사 ID: mathworks.metricchecks.CyclomaticComplexity

이 메트릭을 사용하여 모델의 순환 복잡도(cyclomatic complexity)를 계산합니다. 순환 복잡도는 모델의 구조적 복잡도를 측정한 값입니다. 이 분석에서 고려하지 않는 코드 특징(예: 통합된 로직 및 오류 검사)으로 인해, 모델의 복잡도 측정값은 생성된 코드의 복잡도 측정값과 다를 수 있습니다. 객체(예: 블록, 차트 또는 상태)의 순환 복잡도를 계산하기 위해 Simulink® Check™는 다음 식을 사용합니다.

c=∑1N(on−1)

N은 객체가 나타내는 의사 결정 지점의 개수이고, on은 n번째 의사 결정 지점에 대한 결과의 개수입니다. 이 계산에서는 벡터화된 연산 또는 Multiport switch 블록을 단일 의사 결정 지점으로 간주합니다. 이 툴은 모델, Atomic Subsystem, Stateflow® 차트의 경우에는 복잡도 수치에 1을 더합니다.

결과는 다음에 대한 로컬 순환 복잡도와 총 순환 복잡도를 제공합니다.

  • 모델

  • 서브시스템

  • 차트

  • MATLAB® 함수

로컬 복잡도(local complexity)는 해당 계층 수준에 있는 객체의 순환 복잡도입니다. 총 순환 복잡도(aggregated cyclomatic complexity)는 객체와 그 후손의 순환 복잡도입니다.

이 메트릭은 Simulink Check와 함께 사용할 수 있습니다. 이 메트릭의 데이터를 수집하려면 메트릭 식별자 mathworks.metrics.CyclomaticComplexity와 함께 getMetrics를 사용하십시오.

slmetric.metric.AggregationMode 속성 설정은 Sum입니다.

계산 세부 정보

이 메트릭의 특성은 다음과 같습니다.

  • 라이브러리 모델에서는 실행되지 않습니다.

  • 마스크 처리된 서브시스템의 내용을 분석합니다.

  • 비활성 Variant는 분석하지 않습니다.

  • 지정된 경우, 라이브러리에 링크된 블록 또는 참조된 모델의 내용을 분석합니다.

  • 가속화된 모드에서는 참조된 모델을 분석하지 않습니다.

수집

모델 어드바이저를 사용하여 이 메트릭에 대한 데이터를 수집하려면 작업별 > 모델 메트릭 > 복잡도 메트릭에서 검사 순환 복잡도 메트릭을 실행하십시오. 모델 어드바이저 검사는 루트 모델과 시스템의 Simulink 객체 및 Stateflow 객체의 로컬 순환 복잡도를 표시합니다. 이 검사는 참조된 모델을 분석하거나 집계된 결과를 반환하지 않습니다.

결과

이 메트릭의 경우, slmetric.metric.Result의 인스턴스는 다음과 같은 결과를 제공합니다.

  • Value: 로컬 순환 복잡도.

  • AggregatedValue: 총 순환 복잡도.

  • Measures: 해당 없음.

복잡도에 대한 자세한 내용은 다음 항목을 참조하십시오.

참고 항목

도움말 항목