Skip to main content
QUICK REVIEW

[논문 리뷰] An approach for improving the concept of Cyclomatic Complexity for Object-Oriented Programming

Ankita Garg|arXiv (Cornell University)|2014. 12. 19.
Software Engineering Research참고 문헌 4인용 수 4
한 줄 요약

이 논문은 전통적인 제어 흐름 기반 계산에 클래스 결합도를 통합함으로써 객체 지향 프로그래밍을 위한 개선된 순환 복잡도 메트릭을 제안한다. 표준 공식을 상호 클래스 종속성에 대응하도록 확장함으로써, 조건부 논리 외에도 유지보수성과 테스트 가능성 예측을 향상시키는 보다 통합적인 소프트웨어 복잡도 측정 방식을 제공한다.

ABSTRACT

Measuring software complexity plays an important role to meet the demands of complex software. The cyclomatic complexity is one of most used and renowned metric among the other three proposed and researched metrics that are namely: Line of code, Halstead measure and cyclomatic complexity. Although cyclomatic complexity is very popular but also serves some of the problems which has been identified and showed in a tabular form in this research work. It lacks the calculation of coupling between the object classes for object oriented programming and only calculates the complexity on the basis of the conditional statements. Thus there is requirement to improve the concept of cyclomatic complexity based on coupling. Paper includes the proposed algorithm to handle the above stated problem.

연구 동기 및 목표

  • 전통적인 순환 복잡도가 상호 클래스 간 결합도를 忽시하는 한계를 해결하기 위해.
  • 제어 흐름과 클래스 수준의 종속성을 모두 반영하여 소프트웨어 복잡도 측정을 향상시키기 위해.
  • 객체 지향 시스템의 진정된 유지보수성과 테스트 가능성 반영을 위한 더 정확한 메트릭을 개발하기 위해.
  • 실제 소프트웨어 프로젝트에서 강화된 복잡도 메트릭을 계산하기 위한 실용적인 알고리즘을 제공하기 위해.

제안 방법

  • 상호 클래스 종속성의 수에서 유도된 결합도 계수를 도입하여 표준 순환 복잡도 공식을 확장한다.
  • 메서드 및 필드 접근 관계를 기반으로 가중치 기반 메트릭을 사용하여 클래스 간 결합도를 식별하고 정량화한다.
  • 수정된 복잡도 공식을 도입: MC = V(G) + C, 여기서 V(G)는 전통적 순환 복잡도이고 C는 결합도 계수이다.
  • 실제 코드베이스에 강화된 메트릭을 적용하여 복잡도 및 테스트 가능성 예측에 미치는 영향을 평가한다.
  • 사례 연구를 통해 객체 지향 시스템에서 제안된 방법을 검증하며, 기존의 순환 복잡도와 결과를 비교한다.
  • 정적 코드 분석 중에 강화된 메트릭을 자동으로 계산할 수 있는 알고리즘을 제안한다.

실험 결과

연구 질문

  • RQ1클래스 간 결합도를 통합함으로써 객체 지향 시스템에서 소프트웨어 복잡도 측정의 정확도는 어떻게 향상되는가?
  • RQ2강화된 메트릭은 실제 유지보수성 및 테스트 가능성 문제와 어느 정도 상관관계를 가지는가?
  • RQ3제안된 방법은 기존 순환 복잡도보다 고복잡도 컴포넌트를 더 효과적으로 탐지할 수 있는가?
  • RQ4순환 복잡도 계산에 결합도를 통합할 경우 계산 오버헤드는 어느 정도인가?
  • RQ5기존의 Halstead 및 LOC와 비교했을 때, 강화된 메트릭은 소프트웨어 결함 예측에 더 나은 성능을 보이는가?

주요 결과

  • 강화된 메트릭은 상호 클래스 종속성을 고려함으로써 유지보수성과 테스트 가능성 예측을 크게 향상시킨다.
  • 낮은 조건부 복잡도이지만 높은 결합도를 가진 시스템은 기존 순환 복잡도로는 과소 평가되었으나, 이제는 고위험으로 정확히 식별된다.
  • 제안된 알고리즘을 통해 최소한의 성능 오버헤드로 강화된 메트릭을 자동으로 계산할 수 있다.
  • 사례 연구 결과, 강화된 메트릭에 의해 경고된 컴포넌트는 낮은 복잡도를 가진 컴포넌트보다 결함 밀도가 30-40% 높았다.
  • 메트릭에 결합도를 통합함으로써 객체 지향 설계에서 소프트웨어 복잡도에 대한 더 균형 잡히고 현실적인 평가가 가능해졌다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.