compatibility prediction of eclipse third-party plug-ins in new eclipse releases
TRANSCRIPT
Compatibility Prediction of Eclipse Third-party Plug-ins in
new Eclipse Releases
John Businge, Alexander Serebrenik, Mark van den Brand
Software Engineering and Technology (SET) 12-04-2023
The Eclipse Framework
PAGE 2
P1 P4P3P2
Eclipse Framework
Eclipse Third-party Plug-ins (ETPs)
Software Engineering and Technology (SET) 12-04-2023
The Eclipse Framework …
PAGE 3
P1 P4P3P2
Eclipse Framework
Eclipse Third-party Plug-ins (ETPs)
Eclipse APIs(“good”)• no “internal”• stable, • supported
Eclipse non-APIs (“bad”)• “internal”• unstable,• discouraged,• unsupported
Software Engineering and Technology (SET) 12-04-2023
The Eclipse Framework …
PAGE 4
P1 P4P3P2
Eclipse Framework
Eclipse Third-party Plug-ins (ETPs)
Eclipse APIs(“good”)• no “internal”• stable, • supported
Eclipse non-APIs (“bad”)• “internal”• unstable,• discouraged,• unsupported
P3 – ETP-APIs P1, P2 and P4 – ETP-non-APIs
Software Engineering and Technology (SET) 12-04-2023
Motivation
• Previous study (Survival of ETPs – ICSM 2012), we tested compatibility of 345 ETP-APIs and 288 ETP-non-APIs with different Eclipse releases.
• Our observations:1. ETP-APIs always compatible in new Eclipse releases.
2. Bad interfaces are the main cause of incompatibilities.
3. Informally, found old bad interfaces stable. • Formally verified observation 2. • Trained prediction models• Tested the prediction models.
PAGE 5
Software Engineering and Technology (SET) 12-04-2023
Motivation
• Previous study (Survival of ETPs – ICSM 2012), we tested compatibility of 345 ETP-APIs and 288 ETP-non-APIs with different Eclipse releases.
• Our observations:1. ETP-APIs always compatible in new Eclipse releases.
2. Bad interfaces are the main cause of incompatibilities.
3. Informally, found old bad interfaces stable. • Formally verified observation 2. • Trained prediction models• Tested the prediction models.
PAGE 6
Software Engineering and Technology (SET) 12-04-2023
Compatibility prediction
• Requirements of compatibility prediction:
− Current SDK compatible with ETP− Later SDK to make prediction
• We built 36 prediction models in total• Models are bases on bad interfaces
used by ETPs
PAGE 8
Software Engineering and Technology (SET) 12-04-2023
ETP-non-APIs supported in Eclipse Releases
PAGE 9
Eclipse 2.1 3.0 3.1 3.2 3.3 3.4 3.5 3.6 Total
# ETPs 29 48 34 40 38 36 33 30 288
Model Training
Statistics – Binary Logistic Regression
Dependent variablep # Independent variables
24-09-201210
Model Training Example
In put
P1 P2 P3
ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0
24-09-2012 11
Model Training Example
In put
1.0
1.0 2.0 2.1 3.0
Eclipse 3.0 non-APIs
P1 P2 P3
ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0
24-09-2012 12
Model Training Example
In put
1.0
1.0 2.0 2.1 3.0
Eclipse 3.0 non-APIs
P1 P2 P3
ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0
1 0 0
24-09-2012 13
Model Training Example
In put
1.0
1.0 2.0 2.1 3.0
Eclipse 3.0 non-APIs
P115
P24
P38
ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0
1 0 0
24-09-2012 14
Model Training Example
In put
1.0
1.0 2.0 2.1 3.0
Eclipse 3.0 non-APIs
P115
P24
P38
6 28 74
ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0
1 0 0
24-09-2012 15
Model Training Example
In put
1.0
1.0 2.0 2.1 3.0
Eclipse 3.0 non-APIs
P115
P24
P38
6 28 74
ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0
1 0 0
24-09-2012 16
Dependent variable
Independent variables
Model Training Example
In put
1.0
1.0 2.0 2.1 3.0
Eclipse 3.0 non-APIs
P115
P24
P38
6 28 74
Logistic Regression
Machine
ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0
1 0 0
24-09-2012 17
Dependent variable
Independent variables
Model Training Example
In put
1.0
1.0 2.0 2.1 3.0
Eclipse 3.0 non-APIs
P115
P24
P38
6 28 74
Logistic Regression
Out put
1.0
1.0 2.0 2.1 3.0
Eclipse 3.0 non-APIs
𝑏2𝑏1 𝑏3 𝑏4
Machine
ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0
1 0 0
24-09-2012 18
Dependent variable
Independent variables
Model Training Example
In put
1.0
1.0 2.0 2.1 3.0
Eclipse 3.0 non-APIs
P115
P24
P38
6 28 74
Logistic Regression
Out put
1.0
1.0 2.0 2.1 3.0
Eclipse 3.0 non-APIs
𝑏2𝑏1 𝑏3 𝑏4
Machine
ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0
1 0 0
24-09-2012 19
Dependent variable
Independent variables
Model Training Example
1.0
1.0 2.0 2.1 3.0
Eclipse 3.0 non-APIs
P420
8 5
ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0
24-09-2012 20
7
Model Training Example
1.0
1.0 2.0 2.1 3.0
Eclipse 3.0 non-APIs
P420
8 5
ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0
24-09-2012 21
7 <0.5 – incompatibility>=0.5 – compatibility
Results
• In both model training and testing: High Precision, Accuracy, and Recall, where some were 80% and more
24-09-2012 22
Model Testing Error Analysis3.5 3.6 3.7
A P R A P R A P R
3.4 94 100 94 93 100 93 93 100 93
3.5 91 94 96 88 91 96
Software Engineering and Technology (SET) 12-04-2023
Conclusion and Future Work
• Mining interface usage from ETPs to detect or predict compatibility shows good results.
• Next, develop a domain specific tool to make predictions.
• Who can use the tool? users and developers of ETPs
•
PAGE 23
Software Engineering and Technology (SET) 12-04-2023
Thank you for listening
PAGE 24