Skip to main content
QUICK REVIEW

[논문 리뷰] A4: Automatically Assisting Android API Migrations Using Code Examples.

Maxime Lamothe, Weiyi Shang|arXiv (Cornell University)|2018. 12. 12.
Software Engineering Research참고 문헌 62인용 수 14
한 줄 요약

이 논문은 Google Samples와 같은 코드 예제에서 자동으로 Android API 마이그레이션 패턴을 학습하고, 이를 실제 Android 앱에 적용하는 A4를 제안한다. 예제 내 사용 변화를 분석함으로써 A4는 80개의 사례 중 71개에서 성공적으로 API 마이그레이션을 지원하였으며, 호출을 자동으로 마이그레이션하거나 실질적인 지침을 제공하였다.

ABSTRACT

The fast-paced evolution of Android APIs has posed a challenging task for Android app developers. To leverage the newly and frequently released APIs from Android, developers often must spend considerable effort on API migrations. Prior research work and Android official documentation typically provide enough information to guide developers in identifying both the changed API calls that need to be migrated and the corresponding API calls in the new version of Android (what to migrate). However, the API migration task is still challenging since developers lack the knowledge of how to migrate the API calls. In addition to the official documentation, there exist code examples, such as Google Samples, that illustrate the usage of APIs. We posit that by analyzing the changes of API usage in code examples, we may be able to learn API migration patterns to assist developers with API migrations. In this paper, we propose an approach that automatically learns API migration patterns from code examples and applies these patterns to the source code of Android apps for API migration. To evaluate our approach, we migrate API calls in open source Android apps by learning API migration patterns from both public and manually generated code examples. We find that our approach can successfully learn API migration patterns and provide API migration assistance in 71 out of 80 cases. In particular, our approach can either automatically migrate API calls with little to no extra modifications needed or provide guidance to assist with the migrations. Our approach can be adopted by Android developers to reduce the effort they spend on regularly migrating Android APIs.

연구 동기 및 목표

  • 자주 발생하는 API 변경으로 인해 수작업이 번거롭고 시간이 오래 소요되는 Android API 마이그레이션 문제를 해결하기 위해.
  • 단지 *무엇을* 마이그레이션해야 하는지 안다고 해서가 아니라, *어떻게* 마이그레이션해야 하는지에 대한 개발자 지식 격차를 해소하기 위해.
  • 공개된 코드 예제(예: Google Samples)를 활용하여 재사용 가능한 마이그레이션 패턴을 추출하기 위해.
  • 학습된 패턴을 실제 Android 앱 소스 코드에 적용하여 실질적인 마이그레이션 보조를 위한 자동화된 시스템을 개발하기 위해.

제안 방법

  • Google Samples와 같은 공개 코드 예제에서 Android 버전 간 API 사용 변화를 분석하여 마이그레이션 패턴을 추출한다.
  • 구식 API 호출을 신규 호출로 매핑하고 해당 사용 의미를 유지하는 전환 규칙으로 API 마이그레이션 패턴을 모델링한다.
  • Android 버전 간 코드 예제의 AST(추상 구문 트리)를 파싱하고 비교하여 API 사용의 의미적 변화를 탐지한다.
  • 오픈소스 Android 앱의 소스 코드에 학습된 마이그레이션 패턴을 적용하여 자동 마이그레이션 제안 또는 실행을 수행한다.
  • 경험 법칙과 문법적/의미적 일치를 활용하여 응용 전에 마이그레이션 제안의 유효성과 정밀도를 검증하고 개선한다.

실험 결과

연구 질문

  • RQ1코드 예제가 Android API 마이그레이션을 위한 재사용 가능한 패턴을 효과적으로 드러낼 수 있는가?
  • RQ2자동으로 학습된 마이그레이션 패턴이 실제 세계의 Android 애플리케이션에 얼마나 널리 적용될 수 있는가?
  • RQ3제안된 접근 방식이 실제 마이그레이션 시나리오에서 생성한 마이그레이션 제안의 정확성과 실용성은 어느 정도인가?
  • RQ4공식 문서만을 사용하는 것과 비교해 볼 때, 시스템이 개발자의 마이그레이션 작업 부담을 얼마나 줄일 수 있는가?

주요 결과

  • 제안된 접근 방식은 테스트한 80개 사례 중 71개에서 API 마이그레이션 패턴을 성공적으로 학습하고 적용하였다.
  • 71%의 사례에서 시스템이 최소한의 수동 조작 또는 전혀 조작 없이 API 호출을 자동으로 마이그레이션하였다.
  • 남은 9개 사례에서는 개발자가 마이그레이션을 완료하는 데 도움이 되는 실질적인 지침을 제공하였다.
  • 공식 문서에만 의존하는 것보다, 실제 사용 기반의 마이그레이션 예제를 제공함으로써 시스템이 더 나은 성능을 보였다.
  • 실제 오픈소스 Android 앱에서의 실용적 적용 가능성을 입증하여, 개발 워크플로우에 통합될 잠재력이 높다는 점을 보여주었다.

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

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

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

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