728x90
반응형

1. 단순히 소스코드에서 연산자와 피연산자의 수를 바탕으로 복잡도를 정량적으로 구한 메트릭

 

 

2.

n1 = 프로그램내에서 유일한 서로 다른 연산자(operator)의 수.

 n2 = 프로그램내에서 유일한 서로 다른 피연산자(operand)의 수.

 N1 = 연산자의 총 발생 수

 N2 = 피연산자의 의 총 발생 수

 

프로그램 길이(Program Length)

 

Program length : N = N1 + N2

 이 지표는 프로그램의 길이를 나타내는 수치로 메소드, 타입, 패키지의 모든 연산자와 피연산자의 합으로 계산할 수 있습니다.

 

프로그램 어휘수(Program Vocabulary)

 

Program vocabulary : n= n1 + n2

 이 지표는 메소드, 타입, 패키지의 유일한(Unique) 연산자와 유일한(Unique) 피연산자의 합입니다.

 

나. Halstead의 Software Science의 Primitive Measure Set

  다. Measure를 이용한 공식

http://www.jidum.com/jidums/view.do?jidumId=313

 

지식덤프

Product Metrics - 제품 품질 평가 및 추적과 관련한 측정 - 규모(FP, 본 수, 화면수), 복잡도 - 품질특성(기능성, 신뢰성, 사용성, 효율성, 이식성) - 소프트웨어 재사용율, 요구사항 변경율, 고객만족도

www.jidum.com

3.

장점 1. Cyclomatic Complexity(이하 CC)에서 잡아내지 못하는 계산 로직의 복잡함을 알 수 있습니다.

장점 2. 유지보수 노력과 상관관계를 가집니다.

 

단점 1. CC에 비해서 결함 성향과 상관 관계가 낮습니다. CC 수치가 높으면 결함발생률이 높다는 것을 나타내는데 반해,

           Halstead 메트릭이 높다고 결함 발생률이 높다고 콕 찝어 말할 수가 없습니다.

단점 2. 연산자와 피연산자의 수를 바탕으로 위의 메트릭 값을 뽑아내기 때문에 설계단계에서 사용하기 힘듭니다.

단점 3. 제어흐름의 복잡함을 나타내는 CC와는 달리, 제어흐름의 복잡도를 반영하지 않습니다. 극단적인 예로, if 가 없어도 수치는 충분히 높게 나올 수 있습니다.

 

https://leadbiz.tistory.com/673

 

Halstead의 소프트웨어 복잡성 척도( Halstead Complexity Measures )

주제(Subject) -------------------------------------------------------- 한글(약어) : Halstead의 소프트웨어 복잡성 척도() 영어(약어) : Halstead Complexity Measures() 관련개념(Related Concepts) -------..

leadbiz.tistory.com

 

728x90
Posted by Mr. Slumber
,