Investigating deprecation misuse

A taxonomy, alternatives, controlled experiment, and experiment platform

Master Thesis (2020)
Author(s)

D.J. Bridié (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Contributor(s)

Arie Deursen – Mentor (TU Delft - Software Technology)

Anand Ashok Sawant – Coach (TU Delft - Software Engineering)

Faculty
Electrical Engineering, Mathematics and Computer Science
Copyright
© 2020 Dereck Bridié
More Info
expand_more
Publication Year
2020
Language
English
Copyright
© 2020 Dereck Bridié
Graduation Date
08-01-2020
Awarding Institution
Delft University of Technology
Programme
['Computer Science']
Faculty
Electrical Engineering, Mathematics and Computer Science
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

Deprecation in Java is a language feature that allows API producers to mark program elements as obsolete. However, previous work has identified that this mechanism is co-opted to indicate another concept entirely: a misuse of deprecation. This leaves room for improvement because deprecation warning mechanisms do not fully describe the true reasoning with which API producers choose to misuse the deprecation mechanism. In this thesis, we create a taxonomy of five reasons why API producers misuse the deprecation functionality found in open-source software by analyzing 763 methods. Using this taxonomy, we create alternatives meant to help API producers avoid deprecation misuse by introducing five new annotations meant to be specific in API abnormalities. To test this proposed alternative, we conduct a user study. However, as no current experimental settings fit our needs, we create an experimental platform, RESPIRED, publishing it to improve the state-of-the-art in software engineering experiments. Finally, we test our alternatives using this platform, finding that changing only the warning text does not have a significant impact on developers.

Files

License info not available