Third-party libraries are used frequently in modern software development. Websites that are visited millions of times a day often make heavy use of open-source software libraries. As a software developer, using these libraries has a number of advantages. Developers save time and
...
Third-party libraries are used frequently in modern software development. Websites that are visited millions of times a day often make heavy use of open-source software libraries. As a software developer, using these libraries has a number of advantages. Developers save time and effort because functionality does not have to be rebuilt from scratch. Additionally, these libraries are often completely free to use, have been tested extensively by other users and contain a large amount of expertise of other developers. There are also a number of disadvantages to using these libraries. When the interface of a software library changes, this has direct impact on software systems using this interface. In this thesis, the origin, impact and costs of interface instability is investigated. As it turns out, public interfaces of software libraries frequently change without providing proper signals to users of that interface. These changes have measurable impact in systems using these interfaces. Besides changes in interfaces, changes in functionality can also impact end users of a library. In this thesis, compression is employed to measure changes in functionality that a library provides. These changes in functionality are then used in a software growth model that relates the concepts of software growth, quality, work done and size to each other.@en