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
3.
장점 1. Cyclomatic Complexity(이하 CC)에서 잡아내지 못하는 계산 로직의 복잡함을 알 수 있습니다.
장점 2. 유지보수 노력과 상관관계를 가집니다.
단점 1. CC에 비해서 결함 성향과 상관 관계가 낮습니다. CC 수치가 높으면 결함발생률이 높다는 것을 나타내는데 반해,
Halstead 메트릭이 높다고 결함 발생률이 높다고 콕 찝어 말할 수가 없습니다.
단점 2. 연산자와 피연산자의 수를 바탕으로 위의 메트릭 값을 뽑아내기 때문에 설계단계에서 사용하기 힘듭니다.
단점 3. 제어흐름의 복잡함을 나타내는 CC와는 달리, 제어흐름의 복잡도를 반영하지 않습니다. 극단적인 예로, if 가 없어도 수치는 충분히 높게 나올 수 있습니다.
https://leadbiz.tistory.com/673
'02.SW' 카테고리의 다른 글
감리 - 정보화사업 공통감리 (0) | 2020.06.24 |
---|---|
SW 신뢰성 (Reliability), 가용성 (Availability) (0) | 2020.06.24 |
SW 개발 성능 - CoCoMo - SW 비용 평가 (0) | 2020.06.24 |
SW 테스트 - SW 동적 분석 (0) | 2020.06.24 |
SW 테스트 - 모듈화 (0) | 2020.06.24 |