Title :
Broken promises: An empirical study into evolution problems in Java programs caused by library upgrades
Author :
Dietrich, Jens ; Jezek, Kamil ; Brada, P.
Author_Institution :
Sch. of Eng. & Adv. Technol., Massey Univ., Palmerston North, New Zealand
Abstract :
It has become common practice to build programs by using libraries. While the benefits of reuse are well known, an often overlooked risk are system runtime failures due to API changes in libraries that evolve independently. Traditionally, the consistency between a program and the libraries it uses is checked at build time when the entire system is compiled and tested. However, the trend towards partially upgrading systems by redeploying only evolved library versions results in situations where these crucial verification steps are skipped. For Java programs, partial upgrades create additional interesting problems as the compiler and the virtual machine use different rule sets to enforce contracts between the providers and the consumers of APIs. We have studied the extent of the problem on the qualitas corpus, a data set consisting of Java open-source programs widely used in empirical studies. In this paper, we describe the study and report its key findings. We found that the above mentioned issues do occur in practice, albeit not on a wide scale.
Keywords :
Java; object-oriented programming; program compilers; virtual machines; API changes; Java open-source programs; application program interface; compiler; library upgrades; library versions; partially upgrading systems; qualitas corpus; reuse approach; system runtime failures; virtual machine; Contracts; Couplings; Educational institutions; Java; Joining processes; Libraries; Runtime;
Conference_Titel :
Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE), 2014 Software Evolution Week - IEEE Conference on
Conference_Location :
Antwerp
DOI :
10.1109/CSMR-WCRE.2014.6747226