Skip to main content
QUICK REVIEW

[논문 리뷰] A Systematic Aspect-Oriented Refactoring and Testing Strategy, and its Application to JHotDraw

Arie van Deursen, Marius Marin|arXiv (Cornell University)|2005. 03. 05.
Advanced Software Engineering Methodologies참고 문헌 31인용 수 38
한 줄 요약

이 논문은 AspectJ를 사용하여 유령 객체 지향 시스템을 관점 지향 프로그래밍으로의 마이그레이션을 위한 체계적이고 테스트 기반의 리팩터링 전략인 Bettar를 제안한다. JHotDraw에 이 전략을 적용하여 행동 보존 리팩터링, 결함 모델, 적정성 기준을 구현함으로써, 검증된 점진적 마이그레이션을 통해 모듈성과 진화 가능성 향상을 달성하였다.

ABSTRACT

Aspect oriented programming aims at achieving better modularization for a system's crosscutting concerns in order to improve its key quality attributes, such as evolvability and reusability. Consequently, the adoption of aspect-oriented techniques in existing (legacy) software systems is of interest to remediate software aging. The refactoring of existing systems to employ aspect-orientation will be considerably eased by a systematic approach that will ensure a safe and consistent migration. In this paper, we propose a refactoring and testing strategy that supports such an approach and consider issues of behavior conservation and (incremental) integration of the aspect-oriented solution with the original system. The strategy is applied to the JHotDraw open source project and illustrated on a group of selected concerns. Finally, we abstract from the case study and present a number of generic refactorings which contribute to an incremental aspect-oriented refactoring process and associate particular types of crosscutting concerns to the model and features of the employed aspect language. The contributions of this paper are both in the area of supporting migration towards aspect-oriented solutions and supporting the development of aspect languages that are better suited for such migrations.

연구 동기 및 목표

  • 관점 지향 프로그래밍으로 향하는 기존 시스템 리팩터링을 위한 체계적이고 행동 보존 전략의 부족을 해소하기 위해.
  • 관점 지향 환경으로의 마이그레이션 과정에서 행동 보존을 보장하는 테스트 전략을 개발하기 위해.
  • 실제 대규모 시스템에서의 복잡한 공통 관심사 처리에 대해 관점 언어(예: AspectJ)의 적합성을 평가하기 위해.
  • 실험적 연구를 위한 공개 가능한 오픈소스로 원본 및 관점 지향 버전을 동시에 제공하기 위해.
  • 공통 관심사 유형과 사용 가능한 언어 기능 간 격차를 규명함으로써 관점 언어 설계에 기여하기 위해.

제안 방법

  • 유령 코드에서 복잡한 공통 관심사를 식별하기 위해 팬인 분석 및 클론 탐지와 같은 '관점 마이닝' 기법을 적용한다.
  • 체계적이고 단계적인 과정을 통해 아키텍처를 설계한다: 관심사 식별, 산산이 흩어짐/혼잡함 평가, 아키텍처 설계, 테스트를 통한 검증.
  • 행동 보존을 보장하기 위해 관점 지향 결함 모델을 도입하고, 테스트 적정성 기준을 정의한다.
  • AspectJ를 사용하여 조립하는 방식으로 JHotDraw의 관점 지향 버전인 AJhotDraw를 실제로 구현한다.
  • 선택된 복잡한 공통 관심사에 대해 개별 사례 연구를 수행하고, 사전 및 사후 리팩터링 구현을 검증 테스트와 비교한다.
  • 사례 연구에서 일반화된 리팩터링을 추출하고, 공통 관심사 유형을 특정 관점 언어 기능 및 모델에 매핑한다.

실험 결과

연구 질문

  • RQ1기존 객체 지향 시스템을 관점 지향 프로그래밍으로 마이그레이션하기 위한 체계적이고 행동 보존 리팩터링 전략은 어떻게 설계할 수 있는가?
  • RQ2관점 지향 리팩터링 과정에서 행동 보존을 보장하기 위해 필요한 테스트 적정성 기준과 결함 모델은 무엇인가?
  • RQ3기존 관점 언어에서 표현하기 어려운 공통 관심사 유형은 무엇이며, 언어 기능은 리팩터링 가능성을 어떻게 영향을 미치는가?
  • RQ4관점 지향 리팩터링은 JHotDraw와 같은 실제 시스템에서 모듈성, 진화 가능성, 재사용성 향상에 어느 정도 기여하는가?
  • RQ5원본 및 관점 지향 버전이 공개된 이중 버전 시스템은 소프트웨어 진화 분야의 비교 실험 연구를 어떻게 지원할 수 있는가?

주요 결과

  • Bettar 전략은 관찰 가능한 행동을 유지하면서 JHotDraw를 AJhotDraw로 체계적이고 점진적으로 리팩터링하는 데 성공하였다.
  • 제안된 관점 지향 결함 모델과 테스트 적정성 기준은 마이그레이션 과정에서 행동 보존을 검증하는 데 체계적인 접근을 제공하였다.
  • JHotDraw의 여러 공통 관심사—예를 들어 언디도/리도 및 레이아웃 관리—는 성공적으로 아키텍처로 변환되어 모듈성이 향상되고 코드의 산산이 흩어짐이 감소하였다.
  • 연구 과정에서 AspectJ의 조인 포인트 모델과 기능 세트가 일부 복잡한 공통 관심사에 대해 한계를 드러내어 관점 언어 향상의 여지가 있음을 밝혀냈다.
  • JHotDraw와의 대조를 위해 공개된 AJhotDraw는 향후 관점 지향 리팩터링의 이점에 대한 실험적 연구를 가능하게 한다.
  • 리팩터링 분석을 통해 일부 관심사는 특정 관점 언어 기능에 더 적합함을 확인하였으며, 이는 공통 관심사 유형과 언어 기능 능력을 카탈로그화할 필요성을 뒷받침한다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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