Skip to main content
QUICK REVIEW

[논문 리뷰] On the Detection of High-Impact Refactoring Opportunities in Programs

Jens Dietrich, Catherine McCartin|arXiv (Cornell University)|2010. 06. 09.
Software Engineering Research참고 문헌 31인용 수 3
한 줄 요약

이 논문은 Java 프로그램 내의 모듈화 결함 패턴에서 참조 참여도를 분석하여 고영향도 리팩터링 기회를 탐지하는 방법을 제안한다. 95개의 오픈소스 프로젝트에서 모듈화 결함의 대부분을 제거할 수 있는 핵심 참조의 소수를 식별함으로써, 이 접근법은 효율적으로 높은 영향력을 가진 코드 개선을 타겟으로 한다.

ABSTRACT

We present a novel approach to detect refactoring opportunities by measuring the participation of references between types in instances of patterns representing design flaws. This technique is validated using an experiment where we analyse a set of 95 open-source Java programs for instances of four patterns representing modularisation problems. It turns out that our algorithm can detect high impact refactorings opportunities - a small number of references such that the removal of those references removes the majority of patterns from the program.

연구 동기 및 목표

  • 최소한의 변경으로 모듈화 관련 설계 결함의 대부분을 해결할 수 있는 리팩터링 기회를 식별하기 위해.
  • 대규모 코드베이스에서 리팩터링 작업의 우선순위를 정하는 과제를 해결하기 위해, 고영향도 변경에 초점을 맞춘다.
  • 개별 참조가 설계 패턴 인스턴스 존재에 기여하는 정도를 정량적으로 측정할 수 있는 기법을 개발하기 위해.
  • 실제 세계의 오픈소스 Java 시스템에서 이 방법을 검증하여 실용적 효과성을 평가하기 위해.

제안 방법

  • 이 방법은 모듈화와 관련된 네 가지 특정 설계 결함 패턴 인스턴스 내에서 타입 간 참조의 참여도를 측정한다.
  • 코드베이스 전반에서 패턴 인스턴스의 수를 가장 크게 줄일 수 있는 참조를 식별한다.
  • 정적 분석을 사용하여 패턴 발생을 탐지하고 참조 참여도 점수를 계산한다.
  • 참조를 제거했을 때 다수의 패턴 인스턴스가 제거되는 경우, 그 참조는 고영향도로 간주된다.
  • 패턴 보급도에 기여도가 높은 순서로 참조를 순위 매기며, 영향력이 가장 큰 참조를 우선순위로 한다.
  • 이 방법은 95개의 오픈소스 Java 프로그램을 대상으로 평가되어 확장성과 정밀도를 점검한다.

실험 결과

연구 질문

  • RQ1어떤 참조를 제거하면 탐지된 설계 결함 인스턴스 수가 가장 크게 감소하는가?
  • RQ2실제 Java 프로그램에서 모듈화 패턴 인스턴스의 다수를 제거하기 위해 몇 개의 참조가 필요한가?
  • RQ3소수의 참조가 다양한 코드베이스 전반에서 설계 결함 발생의 상당 부분을 차지할 수 있는가?
  • RQ4히우리스틱 또는 무작위 선택 대비 제안된 방법이 고영향도 리팩터링 기회를 식별하는 데 얼마나 효과적인가?

주요 결과

  • 분석된 95개 프로그램 전반에서 소수의 참조를 제거함으로써 대부분의 탐지된 모듈화 결함 인스턴스가 제거된다.
  • 설계 패턴 인스턴스에 높은 참여도를 보이는 참조에 초점을 맞춤으로써 이 방법은 고영향도 리팩터링 기회를 성공적으로 식별한다.
  • 실제로 널리 퍼져 있는 설계 문제를 해결할 수 있는 최소한의 변경 사항을 정확히 지목함으로써 실용적 관련성을 입증한다.
  • 실제 시스템에서의 검증을 통해 이 방법이 리팩터링을 위한 영향력 있는 지점을 식별하는 데 있어 확장성과 정밀도를 확인한다.

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

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

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

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