복잡성 측정 중단

Halstead complexity measures

Halstead 복잡도 측정은 Maurice Howard Halstead가 소프트웨어 개발의 경험적 과학 확립에 관한 논문의 일부로 1977년에 도입한[1] 소프트웨어 지표이다.Halstead는 소프트웨어의 메트릭은 알고리즘의 구현 또는 표현을 다른 언어로 반영해야 하지만 특정 플랫폼에서의 실행과는 무관해야 한다고 지적했습니다.따라서 이러한 메트릭은 코드에서 정적으로 계산됩니다.

Halstead의 목표는 소프트웨어의 측정 가능한 특성과 그 사이의 관계를 식별하는 것이었습니다.이것은 물질의 측정 가능한 특성(기체의 부피, 질량, 압력 등)과 그들 사이의 관계(기체 방정식과 유사)의 확인과 유사합니다.따라서 그의 지표는 사실 단순한 복잡성 지표가 아닙니다.

계산

특정 문제에 대해서는, 다음과 같이 하십시오.

  • {\1} = 고유 연산자
  • (\ _2}) = 고유 의 수
  • 1{\= 총 운영자 수
  • 2 = 오퍼랜드의 총수

이러한 수치로부터 다음과 같은 몇 가지 척도를 계산할 수 있습니다.

  • 프로그램 어휘: 1 + 2 { = \_ {1 + \_ {2} ,}
  • 프로그램 길이: 1+ ({ N
  • 계산된 예상 프로그램 길이: ^ 2 + 2 2 2 2 ( { { n } = \ } \ _ { } \ _ { } + \ _ {
  • : V × 2 ( \ V \ \ _ 2} \
  • 난이도 : D 1 × 2 2 2 { D = 2 \ 2 \ { _ { _ {2}}
  • 노력: × (\ E V

난이도 측정은 코드 검토 등을 수행할 때 프로그램의 쓰기 또는 이해 어려움과 관련이 있습니다.

노력 척도는 다음과 같은 관계를 사용하여 실제 코딩 시간으로 변환됩니다.

  • 프로그래밍에 필요한 시간: { T={E 18

Halstead가 제공한 버그(B)는 구현 오류 수를 추정하는 것입니다.

  • 전달된 버그 수: B = { E^ { \ 3000 } 、 [citation needed] { \ 3000} 。

다음 C 프로그램을 고려합니다.

주된() {   인트 a, b, c, 평균;   스캔(%d %d %d %d, &a, &b, &c);   평균 = (a+b+c)/3;   인쇄물("평균 = %d", 평균); } 

고유 연산자( 1 \ style , \_ 1} )는 다음과 같습니다.main,(),{},int,scanf,&,=,+,/,printf,,,;

고유 오퍼랜드( 2 { style } , \_ {2} )는 다음과 같습니다.a,b,c,avg,"%d %d %d",3,"avg = %d"

  • 1 \ { ) 、 = 7 ( \ } 7) 、 {\ \eta
  • { } =} = N =
  • 된 예상 프로그램 길이: ^ 2 × 7 ({= log_
  • 볼륨: 2 { V =\_ {.4}
  • 난이도: 2× 7 D= { 2 7} =
  • 노력: E 178.
  • 프로그래밍에 필요한 시간: 18 { T= { 18}
  • 전달된 버그 수:

「 」를 참조해 주세요.

레퍼런스

  1. ^ Halstead, Maurice H. (1977). Elements of Software Science. Amsterdam: Elsevier North-Holland, Inc. ISBN 0-444-00205-7.

외부 링크