1977 년 Maurice Howard Halstead는 소프트웨어 시스템에 대한 복잡한 측정법을 소개했습니다 는 프로그램 어휘, 프로그램 길이, 볼륨, 난이도, 노력 및 모듈의 예상 버그 수를 측정하는 . Wikipedia에 따르면, 어려움은 프로그램을 읽거나 쓸 때 프로그램을 이해하는 어려움과 관련이 있으며 노력은 시간 = (노력 / 18) 초인 응용 프로그램을 코딩하는 데 걸리는 시간으로 변환 될 수 있습니다.
데이터 및 계산이 소프트웨어 개발의 일부 측면과 관련이없는 한 측정은 쓸모가 없습니다. 그러나 특정 값 이상의 난이도에서 결함이 통계적으로 크게 증가하거나 난이도와 코드를 읽는 시간 사이의 관계가 통계적으로 나타나는 경향이있는 작업을 찾지 못했습니다 (N의 난이도는 평균 M 시간을 산출합니다) 코드 기반 이해) 또는 품질 결정에 유용한 사실 이후 (특히 쓰기 시간이 이미 측정 값으로 기록 된 이후) 시간을 계산할 수있는 모든 분석. 특히 Halstead의 버그 추정에 관심이 있습니다 (Wikipedia에 언급되지 않음)-응용 프로그램의 버그 수는 Volume / 3000 또는 Effort ^ (2/3) / 3000으로 추정 할 수 있습니다.
두 가지를 찾고 있습니다.
- 실제 애플리케이션에서 Halstead의 소프트웨어 복잡성 측정을 사용하여 소프트웨어 품질을 평가 한 사람이 있습니까? 그렇다면 어떻게 적용했으며 유용하고 유효하며 신뢰할 수있는 측정으로 판명 되었습니까?
- 소프트웨어 품질에 적용 할 때 Halstead 복잡도 측정의 타당성 (또는 무효 성)을 논의하는 설문 조사, 분석 또는 사례 연구 형태의 학술 연구가 있습니까?
- SLOC (Source Lines of Code)를 사용하여 볼륨, 난이도, 노력, 시간 및 버그의 Halstead 메트릭스와 유사한 것을 계산하는 것을 보여주는 설문 조사, 분석 또는 사례 연구 형태의 학술 연구가 있습니까? 볼륨이 SLOC 수에 해당하고 난이도가 순환 복잡성 (및 기타 측정 값)에 해당 할 수 있다고 생각합니다. SLOC에서 노력, 생산성 또는 시간을 측정하는 것은 오해의 소지가 있음을 잘 알고 있습니다.