Compatibility Prediction of Eclipse Third-Party Plug-ins in New Eclipse Releases

Incompatibility between applications developed on top of frameworks with new versions of the frameworks is a big nightmare to both developers and users of the applications. Understanding the factors that cause incompatibilities is a step to solving them. One such direction is to analyze and identify parts of the reusable code of the framework that are prone to change. In this study we carried out an empirical investigation on 11 Eclipse SDK releases (1.0 to 3.7) and 288 Eclipse third-party plug-ins (ETPs) with two main goals: First, to determine the relationship between the age of Eclipse non-APIs (internal implementations) used by an ETP and the compatibility of the ETP. We found that third-party plug-in that use only old non-APIs have a high chance of compatibility success in new SDK releases compared to those that use at least one newly introduced non-API. Second, our goal was to build and test a predictive model for the compatibility of an ETP, supported in a given SDK release in a newer SDK release. Our findings produced 23 statistically significant prediction models having high values of the strength of the relationship between the predictors and the prediction (logistic regression R2 of up to 0.810). In addition, the results from model testing indicate high values of up to 100% of precision and recall and up to 98% of accuracy of the predictions. Finally, despite the fact that SDK releases with API breaking changes, i.e., 1.0, 2.0 and 3.0, have got nothing to do with non-APIs, our findings reveal that non-APIs introduced in these releases have a significant impact on the compatibility of the ETPs that use them.

[1]  James M. Bieman,et al.  Design patterns and change proneness: an examination of five evolving systems , 2003, Proceedings. 5th International Workshop on Enterprise Networking and Computing in Healthcare Industry (IEEE Cat. No.03EX717).

[2]  David W. Hosmer,et al.  Applied Logistic Regression , 1991 .

[3]  Martin P. Robillard,et al.  Recommending adaptive changes for framework evolution , 2011, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[4]  Tibor Gyimóthy,et al.  Empirical validation of object-oriented metrics on open source software for fault prediction , 2005, IEEE Transactions on Software Engineering.

[5]  Alan Agresti,et al.  Categorical Data Analysis , 2003 .

[6]  Michael English,et al.  Fault detection and prediction in an open-source software project , 2009, PROMISE '09.

[7]  Alexander Serebrenik,et al.  Theil index for aggregation of software metrics values , 2010, 2010 IEEE International Conference on Software Maintenance.

[8]  Alexander Serebrenik,et al.  Survival of Eclipse third-party plug-ins , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[9]  Alexander Serebrenik,et al.  Eclipse API usage: the good and the bad , 2013, Software Quality Journal.

[10]  Tom Tourwé,et al.  Automated Support for Framework-Based Software Evolution , 2003 .

[11]  Yuming Zhou,et al.  Empirical Analysis of Object-Oriented Design Metrics for Predicting High and Low Severity Faults , 2006, IEEE Transactions on Software Engineering.

[12]  Alexander Serebrenik,et al.  You can't control the unfamiliar: A study on the relations between aggregation techniques for software metrics , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).

[13]  M. J. Norušis,et al.  SPSS 13.0 Guide to Data Analysis , 2000 .

[14]  Tom Mens,et al.  Automated support for framework-based software , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[15]  Tijs van der Storm,et al.  RASCAL: A Domain Specific Language for Source Code Analysis and Manipulation , 2009, 2009 Ninth IEEE International Working Conference on Source Code Analysis and Manipulation.

[16]  Yann-Gaël Guéhéneuc,et al.  An empirical study of the relationships between design pattern roles and class change proneness , 2008, 2008 IEEE International Conference on Software Maintenance.

[17]  Nicolas Anquetil,et al.  Software quality metrics aggregation in industry , 2013, J. Softw. Evol. Process..

[18]  Wei Wu,et al.  AURA: a hybrid approach to identify framework evolution , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[19]  Antonio Cisternino,et al.  Trends in Robotic Software Frameworks , 2005, PPSDR@ICRA.

[20]  N. C. Barford Experimental Measurements: Precision, Error and Truth , 1967 .

[21]  W. W. Muir,et al.  Regression Diagnostics: Identifying Influential Data and Sources of Collinearity , 1980 .

[22]  Alexander Serebrenik,et al.  An empirical study of the evolution of Eclipse third-party plug-ins , 2010, IWPSE-EVOL '10.

[23]  Rainer Koschke,et al.  Effort-Aware Defect Prediction Models , 2010, 2010 14th European Conference on Software Maintenance and Reengineering.

[24]  Andrew Walenstein,et al.  Clone Detector Use Questions: A List of Desirable Empirical Studies , 2006, Duplication, Redundancy, and Similarity in Software.

[25]  Daniele Romano,et al.  Using source code metrics to predict change-prone Java interfaces , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).