Skip to main content
QUICK REVIEW

[論文レビュー] Parameter-Free Probabilistic API Mining at GitHub Scale

Jaroslav Fowkes, Charles Sutton|arXiv (Cornell University)|Dec 17, 2015
Software Engineering Research参考文献 4被引用数 12
ひとこと要約

本論文では、大規模なGitHubコードベースから情報量の多いAPIコールパターンを抽出する、ほぼパラメータフリーな確率的アルゴリズムPAMを紹介する。967件のクライアントプロジェクトから得た手書きの例(30万行を超えるLOC)を活用することで、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パターンの解釈可能性と実用性を向上させること。

提案手法

  • PAMは、コード内での情報量と共起パターンに基づいて、APIコールシーケンスのランク付けを行う確率的モデルを採用する。
  • 手動でのパrameter設定を必要としないベイジアンスコア関数を用いて、高確率のシーケンスを特定する。
  • 967件のGitHubクライアントプロジェクトから得た手書きの例コード(合計30万行を超える)を、グランドトゥルースおよびトレーニングシグナルの源として活用する。
  • PAMは、冗長で情報量の少ないシーケンスを削除するためのプルーニング戦略を適用し、結果の明確さを向上させる。
  • PAMは、大規模なGitHubデータセット上で評価され、MAPOやUPMinerと比較して精度と再現率が測定された。

実験結果

リサーチクエスチョン

  • RQ1MAPO や UPMiner といった既存手法と比較して、PAMは関連するAPIコールシーケンスの抽出においてどの程度効果的か?
  • RQ2クライアントプロジェクトにおける手書きのAPI例は、実際のプロダクションコードにおけるAPI利用パターンをどの程度反映しているか?
  • RQ3パラメータフリーなアプローチが、スケールに応じたAPIコールパターンのマイニングにおいて高精度を達成できるか?
  • RQ4PAMは、抽出されたパターンの冗長性をどのように低減し、解釈可能性をどのように向上させるか?

主な発見

  • PAMは、関連するAPIコールシーケンスの抽出において、テストセットで70%の精度を達成し、MAPO や UPMiner を著しく上回る。
  • 967件のクライアントプロジェクトから得た手書きの例コードは、実際のAPI利用パターンの一部にしかカバーしていないことが示され、例の完全性にギャップがあることが判明した。
  • PAMは抽出されたシーケンスの冗長性を低減し、より解釈可能で実行可能なAPIパターンを提供する。
  • 本手法は最小限のパrameterチューニングで動作するため、実世界のソフトウェア工学ワークフローにおける大規模利用に実用的である。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。