Abstract: The only constant in software development is change: As society, business, or technology changes, so must the underlying software. For that reason, software engineering researchers have been investigating software change and evolution intensively in the past decade. What makes changing software hard? How do developers cope with change? What underlying patterns can be discovered in software change?
In this presentation I will look at change from the perspective of released application programming interfaces (APIs). Can I expect backward compatibility when using an API? Do I need to protect myself from changes in the API? How common are breaking changes? What is the typical impact of a breaking change? How do developers deal with deprecation? What language features could address today’s modularization problems? How should I manage my dependencies?
To answer questions like these, I will explore what can be learned from the Maven dataset, a collection of around 150,000 versions libraries and their usage over a period of over 5 years.
The presentation is based on joint work with Steven Raemaekers and Joost Visser, both from the Software Improvement Group, Amsterdam.
Bio: Arie van Deursen is professor at Delft University of Technology, where he heads the Software Engineering Research Gorup. His research interests include software architecture, software testing, software evolution, and empirical software engineering. He is a member of the editorial board of the ACM Transactions on Software Engineering and Methodology (TOSEM), Empirical Software Engineering (EMSE), and the Journal of Software: Evolution and Process. He is also a member of the Program Board of the International Conference on Software Engineering (ICSE).