Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
API Deprecation: A Systematic Mapping Study
1. Leif Bonorden & Matthias Riebisch
API Deprecation:
A Systematic Mapping Study
2. Overview
▪ API Deprecation
▪ Systematic Mapping Process & Results
▪ Research Gaps
SEAA 2022 Bonorden & Riebisch: API Deprecation 2
3. Application Programming Interface
boundary across which a software application uses
facilities of programming languages to invoke software services
SEAA 2022 Bonorden & Riebisch: API Deprecation 3
API
[ISO/IEC 13522-6]
8. Deprecation
Programmers are sometimes discouraged from using
certain program elements
(modules, classes, interfaces, fields, methods, and constructors)
because they are considered dangerous or
because a better alternative exists.
The annotation interface Deprecated allows a compiler
to warn about uses of these program elements.
SEAA 2022 Bonorden & Riebisch: API Deprecation 8
[Java Language Specification]
13. State of Research: Years of Publication
SEAA 2022 Bonorden & Riebisch: API Deprecation 13
14. State of Research: Beneficiaries (Who?)
SEAA 2022 Bonorden & Riebisch: API Deprecation 14
15. State of Research: Contribution (What?)
SEAA 2022 Bonorden & Riebisch: API Deprecation 15
16. State of Research: Research Strategies (How?)
SEAA 2022 Bonorden & Riebisch: API Deprecation 16
17. State of Research: API types
SEAA 2022 Bonorden & Riebisch: API Deprecation 17
18. State of Research: Deprecation aspects
SEAA 2022 Bonorden & Riebisch: API Deprecation 18
19. State of Research: Map
SEAA 2022 Bonorden & Riebisch: API Deprecation 19
20. Overview
▪ API Deprecation
▪ Systematic Mapping Process & Results
▸ Research Gaps
SEAA 2022 Bonorden & Riebisch: API Deprecation 20
21. Research Gaps: Uncharted Territory
only 1 of 36 publications studies
the deprecation of remote APIs
although common in modern systems
SEAA 2022 Bonorden & Riebisch: API Deprecation 21
22. Research Gaps: Out of Focus
26 of 36 publications study the deprecation of Java APIs
(maybe) because deprecation mechanisms
are quite comprehensive in Java
SEAA 2022 Bonorden & Riebisch: API Deprecation 22
23. Research Gaps: Unbridged Gap
only 4 of 36 publications consider suppliers and clients
often seen as opponent parties
SEAA 2022 Bonorden & Riebisch: API Deprecation 23
24. Research Gaps: Human-out-of-the-loop
only 1 of 36 publications studies real situations
research almost only with (open-source-)data
SEAA 2022 Bonorden & Riebisch: API Deprecation 24
25. Research Gaps: Prevention Better Than Cure
none of the 36 publications studies prevention/preparation
symptoms are treated, but causes are not addressed
SEAA 2022 Bonorden & Riebisch: API Deprecation 25
26. Overview
▪ API Deprecation
▪ Systematic Mapping Process & Results
▪ Research Gaps
SEAA 2022 Bonorden & Riebisch: API Deprecation 26
27. Research Gaps
Uncharted Territory: static vs. remote APIs
Out of Focus: only a few programming languages
Unbridged Gap: suppliers and clients
Human-out-of-the-Loop: data research
Prevention Better Than Cure: causes of deprecation
SEAA 2022 Bonorden & Riebisch: API Deprecation 27
30. The Who, What, How of SE Research
M.-A. Storey, N. A. Ernst, C. Williams, E. Kalliamvakou (2020)
The Who, What, How of Software Engineering Research:
A Socio-technical Framework
Empirical Software Engineering, 25(5), 4097–4129
31. The Who, What, How of SE Research: How?
SEAA 2022 Bonorden & Riebisch: API Deprecation 31
Empirical Strategies
32. The Who, What, How of SE Research: How?
SEAA 2022 Bonorden & Riebisch: API Deprecation 32
Non-Empirical Strategies
Formal Theory
Meta
35. Systematic Mapping Process: Database Search
SEAA 2022 Bonorden & Riebisch: API Deprecation 35
Search String: api AND deprecat*
Databases: ACM Digital Library, IEEE Xplore,
Microsoft Academic,
Elsevier ScienceDirect,
Web Of Science
37. Systematic Mapping Process: Study Selection
SEAA 2022 Bonorden & Riebisch: API Deprecation 37
Inclusion Criteria:
• journal, workshop, conference
• discussion of API deprecation
• English
38. Systematic Mapping Process: Study Selection
SEAA 2022 Bonorden & Riebisch: API Deprecation 38
Exclusion Criteria:
• not peer-reviewed
• no research of API deprecation
• no new results
• included in another study
40. Systematic Mapping Process: Snowballing
SEAA 2022 Bonorden & Riebisch: API Deprecation 40
S. A. Spoon (2007)
Fine-grained api evolution for method deprecation
and anti-deprecation
Int. Workshop on Foundations and Developments
of Object-Oriented Languages
42. Systematic Mapping Process: Data Extraction
SEAA 2022 Bonorden & Riebisch: API Deprecation 42
Data Extraction:
• data extraction form
• extraction by first author,
revision by second author
• disagreements solved by discussion
44. Examples: Usage of Deprecation Features
D. Qiu, B. Li, H. Leung (2016)
Understanding the API usage in Java
G. Brito, A. Hora, M. Tulio Valente, R. Robbes (2018)
On the use of replacement messages in API deprecation: An empirical study
L. Li, J. Gao, T. F. Bissyandé, L. Ma, X. Xia, J. Klein (2020)
CDA: Characterising Deprecated Android APIs
R. Nascimento, E. Figueiredo, A. Hora (2021)
JavaScript API Deprecation Landscape: A Survey and Mining Study
SEAA 2022 Bonorden & Riebisch: API Deprecation 44
45. Examples: Reaction to Deprecation
R. Robbes, M. Lungu, D. Röthlisberger (2012)
How Do Developers React to API Deprecation?
The Case of a Smalltalk Ecosystem
A. A. Sawant, R. Robbes, A. Bacchelli (2018)
On the reaction to deprecation of clients of 4+1 popular Java APIs and the JDK
A. A. Sawant, G. Huang, G. Vilen, S. Stojkovski, A. Bacchelli (2019)
To react, or not to react: Patterns of reaction to API deprecation
SEAA 2022 Bonorden & Riebisch: API Deprecation 45
46. Examples: Updating Calls to Deprecated APIs
Y. Xi, L. Shen, Y. Gui, W. Zhao (2019)
Migrating Deprecated API to Documented Replacement: Patterns and Tool
S. Haryono, F. Thung, H. Kang, L. Serrano, G. Muller, J. Lawall, D. Lo, L. Jiang (2020)
Automatic Android Deprecated-API Usage Update
by Learning from Single Updated Example
F. Thung, S. Haryono, L. Serrano, G. Muller, J. Lawall, D. Lo, L. Jiang (2020)
Automated Deprecated-API Usage Update for Android Apps: How Far are We?
S. Haryono, F. Thung, D. Lo, L. Jiang, J. Lawall, H. Kang, L. Serrano, G. Muller (2021)
AndroEvolve: Automated Update for Android Deprecated-API Usages
SEAA 2022 Bonorden & Riebisch: API Deprecation 46
47. Examples: Deprecation of REST APIs
J. Yasmin, Y. Tian, J. Yang (2020)
A First Look at the Deprecation of RESTful APIs: An Empirical Study
SEAA 2022 Bonorden & Riebisch: API Deprecation 47