Pietro Cassieri, Simone Romano, Giuseppe Scanniello
{"title":"A Mining-Software-Repository study on deprecated API usages in open-source Java software applications","authors":"Pietro Cassieri, Simone Romano, Giuseppe Scanniello","doi":"10.1016/j.infsof.2025.107782","DOIUrl":null,"url":null,"abstract":"<div><h3>Context:</h3><div>A deprecated <em>API</em> (<em>Application Programming Interface</em>) is an API that its original developers no longer recommend using. Although deprecated APIs (<em>i.e.,</em> deprecated fields, methods, and classes) are still implemented, they are likely to be removed in future implementations. Consequently, developers are advised against using deprecated APIs in newly written code and are encouraged to update existing code to remove any deprecated API usage.</div></div><div><h3>Objective:</h3><div>We aimed to gather preliminary empirical evidence on deprecated API usages in open-source Java applications.</div></div><div><h3>Methods:</h3><div>To pursue such a goal, we conducted an exploratory <em>Mining-Software-Repository</em> (<em>MSR</em>) study in which we quantitatively analyzed the commit histories of 14 applications whose software projects were top-starred on GitHub.</div></div><div><h3>Results:</h3><div>The most important takeaway results of our study can be summarized as follows: <em>(i)</em> deprecated API usages are pretty widespread in the studied software applications; <em>(ii)</em> only in half of these applications, developers remove deprecated API usages as soon as possible; <em>(iii)</em> consuming their own deprecated APIs is a prevalent phenomenon in half of the studied applications; <em>(iv)</em> the introductions and removals of deprecated API usages are mostly due to changes performed by senior contributors; <em>(v)</em> developers mostly introduce and remove deprecated API usages when they are far from publishing a release version; and <em>(vi)</em> the introductions and removals of deprecated API usages are often undocumented in commit messages.</div></div><div><h3>Conclusion:</h3><div>The outcomes of our study suggest that developers should better handle deprecated API usages.</div></div>","PeriodicalId":54983,"journal":{"name":"Information and Software Technology","volume":"186 ","pages":"Article 107782"},"PeriodicalIF":4.3000,"publicationDate":"2025-06-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Information and Software Technology","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S0950584925001211","RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q2","JCRName":"COMPUTER SCIENCE, INFORMATION SYSTEMS","Score":null,"Total":0}
引用次数: 0
Abstract
Context:
A deprecated API (Application Programming Interface) is an API that its original developers no longer recommend using. Although deprecated APIs (i.e., deprecated fields, methods, and classes) are still implemented, they are likely to be removed in future implementations. Consequently, developers are advised against using deprecated APIs in newly written code and are encouraged to update existing code to remove any deprecated API usage.
Objective:
We aimed to gather preliminary empirical evidence on deprecated API usages in open-source Java applications.
Methods:
To pursue such a goal, we conducted an exploratory Mining-Software-Repository (MSR) study in which we quantitatively analyzed the commit histories of 14 applications whose software projects were top-starred on GitHub.
Results:
The most important takeaway results of our study can be summarized as follows: (i) deprecated API usages are pretty widespread in the studied software applications; (ii) only in half of these applications, developers remove deprecated API usages as soon as possible; (iii) consuming their own deprecated APIs is a prevalent phenomenon in half of the studied applications; (iv) the introductions and removals of deprecated API usages are mostly due to changes performed by senior contributors; (v) developers mostly introduce and remove deprecated API usages when they are far from publishing a release version; and (vi) the introductions and removals of deprecated API usages are often undocumented in commit messages.
Conclusion:
The outcomes of our study suggest that developers should better handle deprecated API usages.
期刊介绍:
Information and Software Technology is the international archival journal focusing on research and experience that contributes to the improvement of software development practices. The journal''s scope includes methods and techniques to better engineer software and manage its development. Articles submitted for review should have a clear component of software engineering or address ways to improve the engineering and management of software development. Areas covered by the journal include:
• Software management, quality and metrics,
• Software processes,
• Software architecture, modelling, specification, design and programming
• Functional and non-functional software requirements
• Software testing and verification & validation
• Empirical studies of all aspects of engineering and managing software development
Short Communications is a new section dedicated to short papers addressing new ideas, controversial opinions, "Negative" results and much more. Read the Guide for authors for more information.
The journal encourages and welcomes submissions of systematic literature studies (reviews and maps) within the scope of the journal. Information and Software Technology is the premiere outlet for systematic literature studies in software engineering.