Don't Reinvent the Wheel: Towards Automatic Replacement of Custom Implementations with APIs
Rosalia Tufano, Emad Aghajani, Gabriele Bavota

TL;DR
This paper introduces RETIWA, a tool designed to automatically identify custom code implementations in software projects that can be replaced with open source APIs, aiming to enhance code reuse and reduce bugs.
Contribution
It presents a novel mining strategy to automatically extract custom implementation-to-API replacements from open source projects, forming the basis for an automated recommender system.
Findings
Developed a reliable mining strategy for replacements
Created a knowledge base of implementation-API pairs
Laid groundwork for an automatic replacement recommender
Abstract
Reusing code is a common practice in software development: It helps developers speedup the implementation task while also reducing the chances of introducing bugs, given the assumption that the reused code has been tested, possibly in production. Despite these benefits, opportunities for reuse are not always in plain sight and, thus, developers may miss them. We present our preliminary steps in building RETIWA, a recommender able to automatically identify custom implementations in a given project that are good candidates to be replaced by open source APIs. RETIWA relies on a ``knowledge base'' consisting of real examples of custom implementation-to-API replacements. In this work, we present the mining strategy we tailored to automatically and reliably extract replacements of custom implementations with APIs from open source projects. This is the first step towards building the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software System Performance and Reliability · Advanced Software Engineering Methodologies
