Skip to main content
QUICK REVIEW

[논문 리뷰] Parameter-Free Probabilistic API Mining at GitHub Scale

Jaroslav Fowkes, Charles Sutton|arXiv (Cornell University)|2015. 12. 17.
Software Engineering Research참고 문헌 4인용 수 12
한 줄 요약

이 논문은 대규모 GitHub 코드베이스에서 정보성 있는 API 호출 패턴을 추출하기 위한 거의 매개변수 없는 확률적 알고리즘인 PAM을 소개한다. 967개의 클라이언트 프로젝트에서 수작업으로 작성한 예시를 바탕으로 하여(30만 줄 이상의 소스코드), PAM은 관련된 API 시퀀스를 검색할 때 테스트 세트에서 70%의 정밀도를 달성하며, MAPO와 UPMiner를 뛰어넘는 성능을 보이며 중복을 줄이고 해석 가능성을 향상시킨다.

ABSTRACT

Existing API mining algorithms are not yet practical to use as they require expensive parameter tuning and the returned set of API calls can be large, highly redundant and difficult to understand. In an attempt to remedy these shortcomings we present PAM (Probabilistic API Miner), a near parameter-free probabilistic algorithm for mining the most informative API call patterns. We show that PAM significantly outperforms both MAPO and UPMiner, achieving 70% test-set precision, at retrieving relevant API call sequences from GitHub. Moreover, we focus on libraries for which the developers have explicitly provided code examples, yielding over 300,000 LOC of hand-written API example code from the 967 client projects in the data set. This evaluation suggests that the hand-written examples actually have limited coverage of real API usages.

연구 동기 및 목표

  • 기존 API 추출 알고리즘의 비현실적인 매개변수 조정과 결과의 높은 중복성으로 인한 문제를 해결하기 위해.
  • 대규모 코드베이스에서 가장 정보성 있는 API 호출 시퀀스를 식별하기 위한 확장 가능하고 거의 매개변수 없는 방법을 개발하기 위해.
  • 실제 생산 코드에서의 API 사용 패턴과의 일치도를 분석하여 수작업으로 작성된 API 예시의 커버리지 수준을 평가하기 위해.
  • 개발자와 도구 사용을 위한 추출된 API 패턴의 해석 가능성과 유용성을 향상시키기 위해.

제안 방법

  • PAM은 코드 내에서의 정보성과 동시 발생 패턴을 기반으로 API 호출 시퀀스의 순위를 매기는 확률적 모델을 사용한다.
  • 수동으로 매개변수를 설정할 필요 없이, 베이지안 점수 함수를 사용하여 높은 확률을 가지는 시퀀스를 식별한다.
  • 967개의 GitHub 클라이언트 프로젝트에서 제공하는 수작업 예시 코드(30만 줄 이상의 소스코드)를 기반으로 참조 기준과 학습 신호를 확보한다.
  • 중복되고 정보가 적은 시퀀스를 제거하기 위해 정제 전략을 적용하여 결과의 명확성을 향상시킨다.
  • MAPO와 UPMiner와의 정밀도 및 재현율 비교를 통해 대규모 GitHub 데이터셋에서 알고리즘의 성능을 평가한다.

실험 결과

연구 질문

  • RQ1MAPO와 UPMiner와 같은 기존 방법과 비교해 PAM이 관련된 API 호출 시퀀스를 얼마나 효과적으로 검색하는가?
  • RQ2클라이언트 프로젝트의 수작업으로 작성된 API 예시가 실제 생산 코드에서의 API 사용 패턴을 어느 정도 반영하고 있는가?
  • RQ3매개변수 없는 접근 방식이 대규모에서 API 호출 패턴을 추출하는 데 높은 정밀도를 달성할 수 있는가?
  • RQ4PAM은 추출된 패턴의 중복을 어떻게 줄이고 해석 가능성을 어떻게 향상시키는가?

주요 결과

  • PAM은 관련된 API 호출 시퀀스 검색에서 테스트 세트 정밀도 70%를 달성하며, MAPO와 UPMiner를 뛰어넘는 성능을 보였다.
  • 967개의 클라이언트 프로젝트에서 제공한 수작업 예시 코드는 실제 API 사용 패턴의 일부분만 커버하고 있어, 예시의 완전성에 격차가 있음을 시사한다.
  • PAM은 추출된 시퀀스의 중복을 줄여 더 명확하고 실용적인 API 패턴을 제공한다.
  • 매개변수 조정이 최소화되어 있어, 실제 소프트웨어 공학 워크플로우에서 대규모 적용에 실용적이다.

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

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

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

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