이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
Stateflow Halstead 복잡성
메트릭 ID
sfdesignlayer.StateflowHalsteadComplexity
설명
Halstead 복잡성 지표는 코드의 크기와 복잡성을 측정하여 코드 품질을 모니터링하고 설계의 복잡한 영역을 식별하며 소프트웨어 유지 관리 문제를 해결하는 데 도움이 될 수 있습니다.
이 측정법을 사용하여 Stateflow® 차트의 연산자와 피연산자를 계산하고 Halstead 복잡성 측정법을 사용하여 설계 볼륨과 난이도를 계산합니다.
계산 세부사항
연산자 및 피연산자
연산자는 변수의 내용에 영향을 미치는 동작을 지정합니다. 피연산자는 연산자가 작동하는 기본 논리 단위입니다.
메트릭:
다음 정의를 사용합니다.
주석 처리한 개체를 무시합니다.
해결되지 않은 기호를 무시합니다.
조건 테이블 및 동작 테이블에서 빈 줄과 빈 열을 무시합니다.
구문 오류가 있는 Stateflow 상태 및 전환을 무시합니다.
할스테드 볼륨
이 메트릭은 등식을 사용하여 Halstead 볼륨 V
를 계산합니다. N1
은 전체 연산자 수, N2
은 전체 피연산자 수, n1
은 고유 연산자 수, n2
는 고유 피연산자 수입니다.
할스테드 난이도
이 메트릭은 등식을 사용하여 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의 각 피연산자는 고유하므로UniqueOperandsSF
은TotalOperandsSF
와 같습니다.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.
참고 항목
모델 유지 관리 지표 | Stateflow 할스테드 난이도 | Stateflow Halstead 난이도 분포