Eclipse API usage: the good and the bad
Loading...
Date
2015
Journal Title
Journal ISSN
Volume Title
Publisher
Software Quality Journal
Abstract
Today, when constructing software systems, many developers build their
systems on top of frameworks. Eclipse is such a framework that has been in existence for
over a decade. Like many other evolving software systems, the Eclipse platform has both
stable and supported interfaces (‘‘good’’) and unstable, discouraged and unsupported
interfaces (‘‘bad’’). In this study, we investigate Eclipse interface usage by Eclipse thirdparty
plug-ins (ETPs) based on whether they use bad interfaces or not. The investigations,
based on empirical analysis present the following observations. First, we discovered that
44 % of the 512 analyzed Eclipse third-party plug-ins depend on ‘‘bad’’ interfaces and that
developers continue to use ‘‘bad’’ interfaces. Second, we have observed that plug-ins that
use or extend at least one ‘‘bad’’ interface are comparatively larger and use more functionality
from Eclipse than those that use only ‘‘good’’ interfaces. Third, the findings show
that the ETPs use a diverse set of ‘‘bad’’ interfaces. Fourth, we observed that the reason
why the bad interfaces are being eliminated from the ETPs’ source code is, because (ETP
developers believe) these non-APIs will cause incompatibilities when a version of the ETP
is ported to new Eclipse SDK release. Finally, we observed that when developers eliminate
problematic ‘‘bad’’ interfaces, they either re-implement the same functionality in their own
API, find equivalent SDK good interfaces, or completely delete the entities in the ETPs’
source code that use the functionality from the ‘‘bad’’ interfaces.
Description
Keywords
Eclipse, API usage, Software evolution
Citation
Businge, J., Serebrenik, A., & Van Den Brand, M. G. (2015). Eclipse API usage: the good and the bad. Software Quality Journal, 23, 107-141. DOI 10.1007/s11219-013-9221-3