Characterization and Automatic Update of Deprecated Machine-Learning API Usages

11/10/2020
by   Stefanus Agus Haryono, et al.
0

Due to the rise of AI applications, machine learning libraries have become far more accessible, with Python being the most common programming language to write them. Machine learning libraries tend to be updated periodically, which may deprecate existing APIs, making it necessary for developers to update their usages. However, updating usages of deprecated APIs are typically not a priority for developers, leading to widespread usages of deprecated APIs which expose library users to vulnerability issues. In this paper, we built a tool to automate these updates. We first conducted an empirical study to seek a better understanding on how updates of deprecated machine-learning API usages in Python can be done. The study involved a dataset of 112 deprecated APIs from Scikit-Learn, TensorFlow, and PyTorch. We found dimensions of deprecated API migration related to its update operation (i.e., the required operation to perform the migration), API mapping (i.e., the number of deprecated and its corresponding updated APIs),and context dependency (i.e., whether we need to consider surrounding contexts when performing the migration). Guided by the findings on our empirical study, we created MLCatchUp, a tool to automate the update of Python deprecated API usage that automatically infers the API migration transformation through comparison of the deprecated and updated API signatures. These transformations are expressed in a Domain Specific Language (DSL). We evaluated MLCatchUp using test dataset containing 258 files with 514 API usages that we collected from public GitHub repositories. In this evaluation, MLCatchUp achieves a precision of 86.19 precision of MLCatchUp by adding a feature that allows it to accept additional user input to specify the transformation constraints in the DSL for context-dependent API migration, where MLCatchUp achieves a precision of 93.58

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/18/2019

How Does API Migration Impact Software Quality and Comprehension? An Empirical Study

The migration process between different third-party software libraries i...
research
06/07/2019

Learning to Recommend Third-Party Library Migration Opportunities at the API Level

The manual migration between different third-party libraries represents ...
research
05/06/2021

Migrating Client Code without Change Examples

API developers evolve software libraries to fix bugs, add new features, ...
research
11/21/2022

Refactoring = Substitution + Rewriting

We present an approach to describing refactorings that abstracts away fr...
research
05/27/2020

Automatic Android Deprecated-API Usage Update by Learning from Single Updated Example

Due to the deprecation of APIs in the Android operating system,developer...
research
09/02/2021

Python Crypto Misuses in the Wild

Background: Previous studies have shown that up to 99.59 using crypto A...
research
01/05/2022

ARCLIN: Automated API Mention Resolution for Unformatted Texts

Online technical forums (e.g., StackOverflow) are popular platforms for ...

Please sign up or login with your details

Forgot password? Click here to reset