An empirical investigation into problems caused by breaking changes in API evolution

To evolve an API, providers update the API and publish new versions, which consumers have to adopt. As the API defines the interface to a service, changing it can have severe consequences to consum ...

[1]  M. Godfrey,et al.  Bertillonage Determining the provenance of software development artifacts , 2011 .

[2]  Daqing Hou,et al.  Exploring the Intent behind API Evolution: A Case Study , 2011, 2011 18th Working Conference on Reverse Engineering.

[3]  Jens Dietrich,et al.  Broken promises: An empirical study into evolution problems in Java programs caused by library upgrades , 2014, 2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE).

[4]  Marco Tulio Valente,et al.  Historical and impact analysis of API breaking changes: A large-scale study , 2017, 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[5]  Robert J. Walker,et al.  Seeking the ground truth: a retroactive study on the evolution and migration of software libraries , 2012, SIGSOFT FSE.

[6]  Ralph E. Johnson,et al.  How do APIs evolve? A story of refactoring , 2006, J. Softw. Maintenance Res. Pract..

[7]  Ralph E. Johnson,et al.  Automated Detection of Refactorings in Evolving Components , 2006, ECOOP.

[8]  Jun Li,et al.  How Does Web Service API Evolution Affect Clients? , 2013, 2013 IEEE 20th International Conference on Web Services.

[9]  Anders Møller,et al.  Type Regression Testing to Detect Breaking Changes in Node.js Libraries , 2018, ECOOP.

[10]  Jens Dietrich,et al.  What Java developers know about compatibility, and why this matters , 2014, Empirical Software Engineering.

[11]  Eleni Stroulia,et al.  API-Evolution Support with Diff-CatchUp , 2007, IEEE Transactions on Software Engineering.

[12]  Romain Robbes,et al.  How do developers react to API deprecation?: the case of a smalltalk ecosystem , 2012, SIGSOFT FSE.

[13]  Miryung Kim,et al.  A graph-based approach to API usage adaptation , 2010, OOPSLA.

[14]  Michael Rudolf,et al.  Refactoring-based support for binary compatibility in evolving frameworks , 2007, GPCE '07.

[15]  Wei Wu,et al.  The impact of imperfect change rules on framework API evolution identification: an empirical study , 2014, Empirical Software Engineering.

[16]  Peri L. Tarr,et al.  Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications , 2006, OOPSLA 2006.

[17]  Hong Zhu,et al.  Software unit test coverage and adequacy , 1997, ACM Comput. Surv..

[18]  Arie van Deursen,et al.  Semantic Versioning versus Breaking Changes: A Study of the Maven Repository , 2014, 2014 IEEE 14th International Working Conference on Source Code Analysis and Manipulation.

[19]  Shaohua Wang,et al.  How Do Developers React to RESTful API Evolution? , 2014, ICSOC.

[20]  Claus Brabrand,et al.  Variability through the Eyes of the Programmer , 2017, 2017 IEEE/ACM 25th International Conference on Program Comprehension (ICPC).

[21]  Premek Brada,et al.  Automated Versioning in OSGi: A Mechanism for Component Software Consistency Guarantee , 2009, 2009 35th Euromicro Conference on Software Engineering and Advanced Applications.

[22]  J. Henkel,et al.  CatchUp! Capturing and replaying refactorings to support API evolution , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[23]  Marco Tulio Valente,et al.  How do developers react to API evolution? The Pharo ecosystem case , 2015, 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[24]  Miryung Kim,et al.  An Empirical Study of API Stability and Adoption in the Android Ecosystem , 2013, 2013 IEEE International Conference on Software Maintenance.

[25]  Tudor Groza,et al.  SemVersion: RDF-based ontology versioning system , 2006 .

[26]  Martin P. Robillard,et al.  SemDiff: Analysis and recommendation support for API evolution , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[27]  Claus Brabrand,et al.  How Does the Degree of Variability Affect Bug Finding? , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[28]  Sam Newman,et al.  Building microservices - designing fine-grained systems, 1st Edition , 2015 .

[29]  Andy Zaidman,et al.  Web API growing pains: Loosely coupled yet strongly tied , 2014, J. Syst. Softw..

[30]  Jens Dietrich,et al.  How Java APIs break - An empirical study , 2015, Inf. Softw. Technol..

[31]  Tao Xie,et al.  An Empirical Study on Evolution of API Documentation , 2011, FASE.

[32]  Andy Zaidman,et al.  Web API growing pains: Stories from client developers and their code , 2014, 2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE).

[33]  Perry Alexander,et al.  SPARTACAS: automating component reuse and adaptation , 2004, IEEE Transactions on Software Engineering.

[34]  Miryung Kim,et al.  An empirical investigation into the role of API-level refactorings during software evolution , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[35]  Anand Ashok Sawant,et al.  Why are Features Deprecated? An Investigation Into the Motivation Behind Deprecation , 2018, ICSME.

[36]  Jeff H. Perkins,et al.  Automatically generating refactorings to support API evolution , 2005, PASTE '05.

[37]  Andrzej Wasowski,et al.  Intention-Based Integration of Software Variants , 2019, 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE).

[38]  David F. Redmiles,et al.  On The Roles of APIs in the Coordination of Collaborative Software Development , 2009, Computer Supported Cooperative Work (CSCW).