CoEvolution of Eclipse Plugin Architecture and its Thirdparty





















- Slides: 21
“Co-Evolution of Eclipse Plug-in Architecture and its Third-party Plug-ins” By: John Businge Ph. D Student Promoters: Prof. Mark van den Brand & Dr. Alexander Serebrenik
The Eclipse Framework Eclipse Thirdparty Plug-ins Software Engineering and Technology (SET) 25 -10 -2021 PAGE 1
The Eclipse Framework … Eclipse Framework Eclipse Thirdparty Plug-ins Software Engineering and Technology (SET) 25 -10 -2021 PAGE 2
Eclipse “APIs” • non-APIs – internal implementation elements found in packages with segment “internal” § Consumers/adopters strongly discouraged from using them § Considered very unstable • APIs – Public Java classes/interfaces that can be found in packages that do not contain the segment “internal” § Considered stable Software Engineering and Technology (SET) 25 -10 -2021 PAGE 3
The Eclipse Platform and its plug-ins • Eclipse platform has evolved for over a decade • From 1. 0 (2001) – 3. 6 (2010) - # milestones (2011) • The platform is comprised of different kinds of plugins: • Core plug-ins • Extension plug-ins • Third-party plug-ins Software Engineering and Technology (SET) 25 -10 -2021 PAGE 4
The Eclipse Platform and its plug-ins • Eclipse platform has evolved for over a decade • From 1. 0 (2001) – 3. 6 (2010) - # milestones (2011) • The platform is comprised of different kinds of plugins: • Core plug-ins • Extension plug-ins • Third-party plug-ins Software Engineering and Technology (SET) Comprise the Framework 25 -10 -2021 PAGE 5
Eclipse core plug-ins (ECPs) • Projects built into Eclipse and are shipped as part of Eclipse platform • They provide core frameworks and services upon which all plug-ins are created • Examples – UI, JFace, SWT, Core, etc Software Engineering and Technology (SET) 25 -10 -2021 PAGE 6
Eclipse extension plug-ins (EEPs) • Mainly projects and sub-projects built with a main goal of extending the Eclipse platform • Most include large generic applications frameworks • Examples: EMF, PDT, CDT, etc. Software Engineering and Technology (SET) 25 -10 -2021 PAGE 7
Eclipse third-party plug-ins (ETPs) • Projects built by independent software vendors • Use functionality provided by ECPs and may use functionality provided by EEPs Software Engineering and Technology (SET) 25 -10 -2021 PAGE 8
Dependency structure of ETPs Eclipse Extension Plug-ins Eclipse Core Plug-ins Eclipse Thirdparty Plug-ins External Libraries Software Engineering and Technology (SET) 25 -10 -2021 PAGE 9
Questions we would like to answer 1) Qn. 1 - Do the ETPs Eclipse-based-softwareevolutionary trends compare to general-softwareevolution identified by some researchers? 2) Qn. 2 - What is the survival rate of the Eclipse-based -evolution of the ETPs? 3) Qn. 3 - What factors or characteristics of Eclipse APIs have an impact on the evolution of an ETP? 4) Qn. 4 - Can we quantify the error rate of an evolving ETP? Software Engineering and Technology (SET) 25 -10 -2021 PAGE 10
Qn. 1 – Comparison of software-evolutionary trends • Answered - Eclipse-based-evolutionary trends of ETPs. An empirical study of the evolution of ETPs [J. Businge, 2010] § Similar trends are exhibited. Software Engineering and Technology (SET) 25 -10 -2021 PAGE 11
Results… Continuing Change law (Deps) • Software system must be continually adapted else it becomes less satisfactory • Confirmed Software Engineering and Technology (SET) 25 -10 -2021 PAGE 12
Self-Regulation law (Deps-Uniq) • System will adjust its size throughout its lifetime • Confirmed Software Engineering and Technology (SET) 25 -10 -2021 PAGE 13
Continuing growth law (NOC-Deps) • Systems usually grow over time to accommodate pressure for change. • Confirmed Software Engineering and Technology (SET) 25 -10 -2021 PAGE 14
Qn. 1 – Comparison of software-evolutionary trends … • Currently we are carrying out a more detailed study on ETPs Eclipse-based-evolutionary trends § We categorize ETPs into two: ETP-APIs and ETPnon-APIs Software Engineering and Technology (SET) 25 -10 -2021 PAGE 15
Qn. 1 – Comparison of software-evolutionary trends … Eclipse Rel. 2. 1 3. 0 3. 1 3. 2 3. 3 3. 4 3. 5 3. 6 Total Software Engineering and Technology (SET) ETP - Total ETP-non-API ETP-API <91, 423> <33, 183> <35, 93> <80, 365> <35, 143> <33, 93> <72, 334> <27, 157> <42, 99> <101, 435> <25, 138> <62, 135> <62, 221> <16, 35> <37, 123> <70, 180> <22, 60> <38, 90> <58, 105> <11, 18> <26, 35> <40, 66> <10, 11> <17, 29> <574, 2129> <179, 745> <290, 697> 25 -10 -2021 PAGE 16
Qn. 2 – Survival rate of third-party plug-ins • We plan to compare the survival rate of ETP-API and ETP-non-API • We plan to employ – API binary compatibility and API source Compatibility Software Engineering and Technology (SET) 25 -10 -2021 PAGE 17
Qn. 3 Factors of Eclipse APIs that impact evolution of ETPs • Is age of an Eclipse APIs proportional to API Stability? • API graduation: what is the average graduation time for a new API? • Can we identify ECPs or parts of ECPs that change frequently over the years? • What could be some of the other factors? ? ? Software Engineering and Technology (SET) 25 -10 -2021 PAGE 18
Error rate Quantification of evolving ETPs • Identify all possible factors that cause Eclipse-based -evolutionary errors in ETPs: § Average of the “APIs” – APIs and non-APIs § Number of “API” used by the ETP – Unique and total § Frequency of API usage in an ETP (methods and fields) § NOC that depend on Eclipse APIs § etc. . • Plan to build a error prediction model based on these factors Software Engineering and Technology (SET) 25 -10 -2021 PAGE 19
Questions …. ? ? ? Software Engineering and Technology (SET) 25 -10 -2021 PAGE 20