skip to main content
10.1145/2804360.2804364acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

The driving forces of API evolution

Published: 30 August 2015 Publication History

Abstract

Evolving an Application Programming Interface (API) is a delicate activity, as modifications to them can significantly impact their users. The increasing use of APIs means that software development organisations must take an empirical and scientific approach to the way they manage the evolution of their APIs. If no attempt at analysing or quantifying the evolution of an API is made, there will be a diminished understanding of the evolution, and possible improvements to the maintenance strategy will be difficult to identify. We believe that long-standing software evolution theories can provide additional insight to the field of APIs, and can be of great use to companies maintaining APIs. In this case study, we conduct a qualitative investigation to understand what drives the evolution of an industry company's existing API, by examining two versions of the API interface. The changes were analysed based on two software evolution theories, and the extent to which we could reverse engineer the change decisions was determined by interviewing an architect of the API. The results of this analysis show that the largest driving force of the APIs evolution was the desire for new functionality. Our findings which show that changes happen sporadically, rather than continuously, appear to show that the law of Conservation of Organisational Stability was not a considerable factor for the evolution of the API. We also found that it is possible to reverse engineer change decisions and in doing so, identified that the feedback loop of an API is an important area of improvement.

References

[1]
Systems and Software Engineering – Vocabulary. ISO/IEC/IEEE 24765:2010(E), pages 1–418, Dec 2010.
[2]
L. M. Afonso, R. F. d. G. Cerqueira, and C. S. de Souza. Evaluating Application Programming Interfaces as Communication Artefacts. System, 100:8–31, 2012.
[3]
C. Andersson and P. Runeson. A Spiral Process Model for Case Studies on Software Quality Monitoring - Method and Metrics. Software Process: Improvement and Practice, 12(2):125–140, 2007.
[4]
I. Benbasat, D. K. Goldstein, and M. Mead. The Case Research Strategy in Studies of Information Systems. MIS Quarterly, pages 369–386, 1987.
[5]
J. Bloch. How to Design a Good API and Why it Matters. In Companion to the 21st ACM SIGPLAN Symposium on Object-oriented Programming Systems, Languages, and Applications, pages 506–507. ACM, 2006.
[6]
J. Bloch. Effective Java. Pearson Education, India, 2008.
[7]
N. Chapin, J. E. Hale, K. M. Khan, J. F. Ramil, and W.-G. Tan. Types of Software Evolution and Software Maintenance. Journal of Software Maintenance and Evolution: Research and Practice, 13(1):3–30, 2001.
[8]
S. Clarke. Measuring API Usability. Doctor Dobbs Journal, 29(5):S1–S5, 2004.
[9]
J. Cohen. Weighted kappa: Nominal Scale Agreement Provision for Scaled Disagreement or Partial Credit. Psychological bulletin, 70(4):213, 1968.
[10]
D. Dig and R. Johnson. The Role of Refactorings in API Evolution. In Proceedings of the 21st IEEE International Conference on Software Maintenance, pages 389–398. IEEE, 2005.
[11]
D. Dig and R. Johnson. How do APIs Evolve? a Story of Refactoring. Journal of Software Maintenance and Evolution: Research and Practice, 18(2):83–107, 2006.
[12]
Git. http://git-scm.com/. Accessed: 2015-05-08.
[13]
J. Henkel and A. Diwan. Catchup!: Capturing and Replaying Refactorings to Support API Evolution. In Proceedings of the 27th international conference on Software engineering, pages 274–283. ACM, 2005.
[14]
M. Henning. API Design Matters. Queue, 5(4):24–36, 2007.
[15]
D. Hou and X. Yao. Exploring the Intent Behind API Evolution: A Case Study. In Proceedings of the 2011 18th Working Conference on Reverse Engineering, pages 131–140. IEEE, 2011.
[16]
M. M. Lehman. On Understanding Laws, Evolution, and Conservation in the Large-program Life Cycle. Journal of Systems and Software, 1:213–221, 1980.
[17]
M. M. Lehman. Programs, Life cycles, and Laws of Software Evolution. Proceedings of the IEEE, 68(9):1060–1076, 1980.
[18]
M. M. Lehman, J. F. Ramil, P. D. Wernick, D. E. Perry, and W. M. Turski. Metrics and Laws of Software Evolution - The Nineties View. In Software Metrics Symposium, 1997. Proceedings., Fourth International, pages 20–32. IEEE, 1997.
[19]
B. P. Lientz and E. B. Swanson. Software Maintenance Management: A Study of the Maintenance of Computer Application Software in 487 Data Processing Organizations. Addison-Wesley, 1980.
[20]
T. McDonnell, B. Ray, and M. Kim. An Empirical Study of API Stability and Adoption in the Android Ecosystem. In 2013 IEEE International Conference on Software Maintenance, pages 70–79. IEEE, 2013.
[21]
D. G. Messerschmitt and C. Szyperski. Software Ecosystem: Understanding an Indispensable Technology and Industry. MIT Press Books, 1, 2005.
[22]
M. Piccioni, C. A. Furia, and B. Meyer. An Empirical Study of API Usability. In Empirical Software Engineering and Measurement, 2013 ACM/IEEE International Symposium on, pages 5–14. IEEE, 2013.
[23]
R. Robbes, M. Lungu, and D. Röthlisberger. How do Developers React to API Deprecation? The Case of a Smalltalk Ecosystem. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, page 56. ACM, 2012.
[24]
C. Robson. Real World Research, volume 2. Blackwell Publishers, Oxford, 2002.
[25]
P. Runeson and M. Höst. Guidelines for Conducting and Reporting Case Study Research in Software Engineering. Empirical Software Engineering, 14(2):131–164, 2009.
[26]
C. B. Seaman. Qualitative Methods in Empirical Studies of Software Engineering. IEEE Transactions on Software Engineering, 25(4):557–572, 1999.
[27]
L. Shi, H. Zhong, T. Xie, and M. Li. An Empirical Study on Evolution of API Documentation. In Fundamental Approaches to Software Engineering, pages 416–431. Springer, 2011.
[28]
J. Stylos, S. Clarke, and B. Myers. Comparing API Design Choices with Usability Studies: A Case Study and Future Directions. In Proceedings of the 18th PPIG Workshop, 2006.
[29]
Z. Xing and E. Stroulia. Refactoring Practice: How it is and How it Should be Supported - An Eclipse Case Study. In 2013 IEEE International Conference on Software Maintenance, pages 458–468. IEEE, 2006.
[30]
R. K. Yin. Case Study Research: Design and Methods. Sage Publications, 2013.

Cited By

View all
  • (2024)Web API Change-Proneness Prediction2024 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER60148.2024.00050(429-434)Online publication date: 12-Mar-2024
  • (2024)Sustainable web API evolution: Forecasting software development effortIOP Conference Series: Earth and Environmental Science10.1088/1755-1315/1415/1/0120771415:1(012077)Online publication date: 1-Dec-2024
  • (2023)Evolution of Web Application Programming Interfaces: Driving Forces, Effects on Clients, and Patterns for ProvidersÈlektronnoe modelirovanie10.15407/emodel.45.04.06145:4(61-77)Online publication date: 30-Aug-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
IWPSE 2015: Proceedings of the 14th International Workshop on Principles of Software Evolution
August 2015
78 pages
ISBN:9781450338165
DOI:10.1145/2804360
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 30 August 2015

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. API Design
  2. Software Evolution
  3. Software Maintenance

Qualifiers

  • Research-article

Conference

ESEC/FSE'15
Sponsor:

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)30
  • Downloads (Last 6 weeks)3
Reflects downloads up to 02 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Web API Change-Proneness Prediction2024 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER60148.2024.00050(429-434)Online publication date: 12-Mar-2024
  • (2024)Sustainable web API evolution: Forecasting software development effortIOP Conference Series: Earth and Environmental Science10.1088/1755-1315/1415/1/0120771415:1(012077)Online publication date: 1-Dec-2024
  • (2023)Evolution of Web Application Programming Interfaces: Driving Forces, Effects on Clients, and Patterns for ProvidersÈlektronnoe modelirovanie10.15407/emodel.45.04.06145:4(61-77)Online publication date: 30-Aug-2023
  • (2023)Web API evolution patterns: A usage-driven approachJournal of Systems and Software10.1016/j.jss.2023.111609198(111609)Online publication date: Apr-2023
  • (2022)Exploring API Deprecation Evolution in JavaScript2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER53432.2022.00031(169-173)Online publication date: Mar-2022
  • (2022)JavaScript API Deprecation Landscape: A Mining Study2022 International Conference on Cyber Resilience (ICCR)10.1109/ICCR56254.2022.9995957(1-5)Online publication date: 6-Oct-2022
  • (2021)A Systematic Review of API Evolution LiteratureACM Computing Surveys10.1145/347013354:8(1-36)Online publication date: 4-Oct-2021
  • (2020)JavaScript API Deprecation in the Wild: A First Assessment2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER48275.2020.9054854(567-571)Online publication date: Feb-2020
  • (2019)Splitting APIsProceedings of the 16th International Conference on Mining Software Repositories10.1109/MSR.2019.00062(360-370)Online publication date: 26-May-2019

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media