주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

Simulink 설계 순환 복잡도

메트릭 ID

slcomp.SLCyclomaticComplexity

설명

"설계 순환 복잡성"은 설계를 통해 가능한 실행 경로의 수입니다. 일반적으로 디자인을 통과하는 경로가 많을수록 디자인이 더 복잡해집니다. 설계 순환 복잡성을 낮게 유지하면 일반적으로 설계를 읽고 유지 관리하고 테스트하기가 더 쉽습니다. 설계 순환 복잡성은 의사 결정 경로 수에 1을 더해 계산됩니다. 메트릭은 기본 경로로 표시되는 실행 경로를 설명하기 위해 1을 추가합니다. 메트릭은 기본 결과를 포함하여 실행 경로에서 가능한 각 결과를 식별하므로 설계 순환 복잡성에는 기본 경로가 포함됩니다.

Simulink® 설계 순환 복잡도 측정법을 사용하여 설계에 있는 Simulink 모델 구성 요소의 설계 순환 복잡도를 결정합니다.

이 지표는 단위 또는 구성 요소를 통한 Simulink 기반 실행 경로의 총 수를 계산합니다. 실행 경로 수는 Simulink 결정 수, Simulink 결정 횟수에 기본 경로에 대한 1개를 더해 계산됩니다. 기본 경로는 장치 또는 구성 요소당 한 번만 계산됩니다.

다양한 블록 유형과 관련된 Simulink 결정의 수를 보려면 일반 블록 유형의 결정 횟수를 참조하세요.

계산 세부사항

Simulink은 이전 입력만으로 블록 출력이 결정되었는지 여부에 관계없이 블록을 실행하므로 이 메트릭은 단락 논리 연산과 관련된 결정을 제외하지 않습니다.

예를 들어, Simulink에서 반복 입력이 있는 AND 블록은 이전 입력만으로 블록 출력이 결정되었는지 여부에 관계없이 실행됩니다.

수집

이 메트릭에 대한 데이터를 수집하려면 메트릭 식별자 slcomp.SLCyclomaticComplexity와 함께 getMetrics를 사용하세요.

결과

이 메트릭의 경우 metric.Result 인스턴스는 단위 또는 구성 요소의 Simulink 설계 순환 복잡성으로 인해 Value를 반환합니다.

예제

입력 u가 있는 Abs 블록만 포함하는 장치가 있다고 가정합니다.

Abs 블록은 if-else 문으로 처리될 수 있습니다.

  • Abs 블록에 대한 입력이 0보다 작은 경우 Abs 블록의 출력은 입력에 음수를 곱한 값입니다.

  • 그렇지 않으면 기본적으로 Abs 블록의 출력은 Abs 블록의 입력과 동일합니다.

if (input < 0)
  % one decision
  output = -1*input;
else
  % default path
  % zero decisions
  output = input;
end

if-else 문의 경우 if 문은 하나의 결정을 나타내고 else 문은 기본 동작을 나타내기 때문에 결정 수는 1입니다. 결정이 내려지지 않은 경우 실행 경로는 기본 경로를 따릅니다.

이 예에서 Simulink 결정의 수는 1이므로 장치의 Simulink 설계 순환 복잡도는 2입니다.

Simulink 설계 순환 복잡성의 값은 다음 중 하나의 장치를 통해 가능한 두 가지 실행 경로를 나타냅니다.

  • u < 0Abs 블록의 출력은 입력에 -1을 곱한 것입니다.

  • u ≥ 0Abs 블록의 출력은 Abs 블록의 입력과 동일합니다.

참고 항목

도움말 항목