Main Content

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

Stateflow Halstead 복잡성

메트릭 ID

sfdesignlayer.StateflowHalsteadComplexity

설명

Halstead 복잡성 지표는 코드의 크기와 복잡성을 측정하여 코드 품질을 모니터링하고 설계의 복잡한 영역을 식별하며 소프트웨어 유지 관리 문제를 해결하는 데 도움이 될 수 있습니다.

이 측정법을 사용하여 Stateflow® 차트의 연산자와 피연산자를 계산하고 Halstead 복잡성 측정법을 사용하여 설계 볼륨과 난이도를 계산합니다.

계산 세부사항

연산자 및 피연산자

연산자는 변수의 내용에 영향을 미치는 동작을 지정합니다. 피연산자는 연산자가 작동하는 기본 논리 단위입니다.

메트릭:

  • 다음 정의를 사용합니다.

    •  Stateflow 연산자

    •  MATLAB 연산자

    •  Stateflow 피연산자

    •  MATLAB 피연산자

  • 주석 처리한 개체를 무시합니다.

  • 해결되지 않은 기호를 무시합니다.

  • 조건 테이블동작 테이블에서 빈 줄과 빈 열을 무시합니다.

  • 구문 오류가 있는 Stateflow 상태 및 전환을 무시합니다.

할스테드 볼륨

이 메트릭은 V=(N1+N2)×log2(n1+n2) 등식을 사용하여 Halstead 볼륨 V를 계산합니다. N1은 전체 연산자 수, N2은 전체 피연산자 수, n1은 고유 연산자 수, n2는 고유 피연산자 수입니다.

할스테드 난이도

이 메트릭은 D=n12×N2n2 등식을 사용하여 Halstead 난이도 D를 계산합니다. n1은 고유 연산자 수, N2은 전체 피연산자 수, n2는 고유 피연산자 수입니다.

수집

이 지표에 대한 데이터를 수집하려면 지표 엔진을 실행하고 지표 ID sfdesignlayer.StateflowHalsteadComplexity와 함께 getMetrics을 사용합니다.

metric_engine = metric.Engine;
execute(metric_engine,"sfdesignlayer.StateflowHalsteadComplexity");
results = getMetrics(metric_engine,"sfdesignlayer.StateflowHalsteadComplexity")

결과

이 지표는 프로젝트의 단위 및 구성 요소에 있는 각 Stateflow 디자인 레이어에 대한 지표 결과를 반환합니다. Stateflow 디자인 레이어는 Stateflow에 자체 캔버스가 있는 Stateflow 차트, 상태 또는 진리표와 같은 아티팩트입니다.

각 Stateflow 디자인 레이어에 대해 메트릭은 다음과 같은 속성을 포함하는 metric.Result 개체를 반환합니다.

  • Value — 다음에 대한 필드가 있는 구조:

    • TotalOperators — Stateflow 연산자 및 MATLAB 연산자 수

    • TotalOperatorsSF — Stateflow 연산자 수

    • TotalOperatorsML — MATLAB 연산자 수

    • UniqueOperators — 고유한 Stateflow 연산자 및 MATLAB 연산자의 수

    • UniqueOperatorsSF — 고유 Stateflow 연산자 수

    • UniqueOperatorsML — 고유 MATLAB 연산자 수

    • TotalOperands — Stateflow 피연산자 및 MATLAB 피연산자의 수

    • TotalOperandsSF — Stateflow 피연산자 수

    • TotalOperandsML — MATLAB 피연산자 수

    • UniqueOperands — 고유 Stateflow 피연산자 UniqueOperandsSF 및 고유 MATLAB 피연산자 UniqueOperandsML의 합계

    • UniqueOperandsSF — Stateflow의 각 피연산자는 고유하므로 UniqueOperandsSFTotalOperandsSF와 같습니다.

    • UniqueOperandsML — 고유한 MATLAB 피연산자의 수

    • Volume — 디자인 레이어의 크기

    • Difficulty — 디자인 레이어를 읽고 쓰는 것이 얼마나 어려운지에 대한 추정

  • Scope — 디자인 레이어에 대한 정보가 포함된 구조

메트릭이 메트릭 결과를 계산하는 방법에 대한 자세한 내용은 계산 세부사항를 참조하세요.

참고 문헌

[1] Halstead, Maurice H. Elements of Software Science. New York: North Holland, 1979.

[2] Stürmer, Ingo, Hartmut Pohlheim, and Thorsten Rogier. 2010. "Berechnung und Visualisierung der Modellkomplexität bei der modellbasierten Entwicklung sicherheitsrelevanter Software." In Automotive - Safety & Security, edited by B. Keller et al., 69-82. Aachen: Shaker Verlag.

[3] Yu, Sheng, and Shijie Zhou. “A Survey on Metric of Software Complexity.” In 2010 2nd IEEE International Conference on Information Management and Engineering, 352–56, 2010. https://doi.org/10.1109/ICIME.2010.5477581.

참고 항목

| |

관련 항목