SOS-Evol 2012

SOS - Evol 2012 : Seminar on Open Source Evolution

John Businge

Co-evolution of Eclipse Framework and its Third-party Plug-ins

Abstract of talk. Today, when constructing a new software system, many developers build their systems on top of frameworks. Eclipse is such a framework that has been in existence for over a decade and has so far released 11 major releases. Like many other evolving software systems, the Eclipse platform has both stable and supported APIs ("good") and unstable, discouraged and unsupported non-APIs ("bad"). However, despite being discouraged by Eclipse, in our experience, the usage of "bad" non-APIs is relatively common in practice.

We conducted an empirical investigation based on a total of 512 Eclipse third-party plug-ins (ETPs) altogether having a total of 1,873 versions to answer the following questions: 1) to what extent developers depend on "bad" non-APIs?, 2) what are the differences between the third-party plug-ins that use non-APIs and those that do not?, and 3) what is the impact of the use of non-APIs in the during co-evolution of the plug-in with Eclipse framework?.

Our findings to the questions are as follows: 1) About 44% of the analyzed ETPs depend on "bad" APIs, 2) ETPs that use or extend at least one "bad" API are comparatively larger and use more functionality from Eclipse than those that use only "good" APIs, 3) ETPs that use only "good" APIs (ETP-APIs) have a very high source compatibility success rate with Eclipse compared to ETPs that use at least one "bad" API (ETP-non-APIs). Furthermore, ETP-non-APIs that depend more on old Eclipse non-APIs and less on newly introduced Eclipse non-APIs have a very high forward source compatibility success rate.


Back to main page of SOS-Evol 2012

Software Languages Lab
Vrije Universiteit Brussel
Université de Mons
MoVES PAI project