2020
DOI: 10.1016/j.asoc.2020.106140
|View full text |Cite
|
Sign up to set email alerts
|

Learning to recommend third-party library migration opportunities at the API level

Abstract: The manual migration between different thirdparty libraries represents a challenge for software developers. Developers typically need to explore both libraries Application Programming Interfaces, along with reading their documentation, in order to locate the suitable mappings between replacing and replaced methods. In this paper, we introduce RAPIM, a novel machine learning approach that recommends mappings between methods from two different libraries. Our model learns from previous migrations, manually perfor… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
12
0

Year Published

2020
2020
2022
2022

Publication Types

Select...
4
2
2

Relationship

1
7

Authors

Journals

citations
Cited by 29 publications
(12 citation statements)
references
References 29 publications
0
12
0
Order By: Relevance
“…Pandita et al (Pandita et al 2015) approached the problem of library migration by analysing textual similarity of documentation from different libraries. Alrubaye et al (Alrubaye et al 2020) proposed a novel machine learning approach that inferred the mapping between the API elements of two different library by extracting various features from library documentation and solving a classification problem. Meng et al (N. Meng et al 2013) help developers apply systematic edits (similar, but not identical, changes to many locations in source code) by learning from examples to find the correct location and apply the correct change.…”
Section: Related Workmentioning
confidence: 99%
“…Pandita et al (Pandita et al 2015) approached the problem of library migration by analysing textual similarity of documentation from different libraries. Alrubaye et al (Alrubaye et al 2020) proposed a novel machine learning approach that inferred the mapping between the API elements of two different library by extracting various features from library documentation and solving a classification problem. Meng et al (N. Meng et al 2013) help developers apply systematic edits (similar, but not identical, changes to many locations in source code) by learning from examples to find the correct location and apply the correct change.…”
Section: Related Workmentioning
confidence: 99%
“…RAPIM [2] employs a tailored machine learning model to identify and recommend API mappings learned from previously migration changes. Given two TPLs as input, RAPIM extracts valuable method descriptions from their documentation using text engineering techniques and encode them in feature vectors to enable the underpinning machine learning model.…”
Section: Existing Techniquesmentioning
confidence: 99%
“…-Gathering and storing of migration data: Using Neo4j Java Driver, 2 EvoPlan stores the extracted data in a persistent and flexible data structure; -Recommendation of an upgrade plan list: Considering the number of clients, EvoPlan suggests the most common upgrade plans that are compliant with those that have been accepted by the developers community at large; -Modularity and flexible architecture: The proposed system can be seen as both an external module integrable into other approaches and a completely stand-alone tool that can be customized by end users; -Automated evaluation and replication package availability: The performance of EvoPlan has been evaluated by employing the widely used ten-fold crossvalidation technique. Last but not least, we make the EvoPlan replication package available online to facilitate future research.…”
Section: Introductionmentioning
confidence: 99%
“…Other techniques use various metrics, based on functional and non-functional characteristics of libraries, to select or recommend such analogous libraries [14,19,24]. Similar approaches have also been used for API mapping, whether through mining previous migration instances or API descriptions to discover analogous APIs [4,6,9,37,42,52], or by building recommender systems around these API mappings [5]. For client code transformation, researchers used various techniques such as program synthesis [37], data flow analysis [32], patch generalization [20,51] and differential testing [20].…”
Section: Introductionmentioning
confidence: 99%
“…While the previous work above shows that library migration is an active research area with lots of advancements, there are still gaps in the literature. First, most of the mentioned previous library migration techniques focus on the Java language [5,6,19,20,24,32,[41][42][43]51]. It is not clear whether these techniques can be applied to a different programming language that is not statically typed, such as Python [17,18].…”
Section: Introductionmentioning
confidence: 99%