230 likes | 423 Views
Compatibility Prediction of Eclipse Third-party Plug-ins in new Eclipse Releases. John Businge , Alexander Serebrenik , Mark van den Brand. The Eclipse Framework. Eclipse Framework. Eclipse Third-party Plug-ins (ETPs). P1. P2. P3. P4. The Eclipse Framework ….
E N D
Compatibility Prediction of Eclipse Third-party Plug-ins in new Eclipse Releases John Businge, Alexander Serebrenik, Mark van den Brand
The Eclipse Framework Eclipse Framework Eclipse Third-party Plug-ins (ETPs) P1 P2 P3 P4 Software Engineering and Technology (SET)
The Eclipse Framework … • Eclipse non-APIs (“bad”) • “internal” • unstable, • discouraged, • unsupported • Eclipse APIs(“good”) • no “internal” • stable, • supported Eclipse Framework Eclipse Third-party Plug-ins (ETPs) P1 P2 P3 P4 Software Engineering and Technology (SET)
The Eclipse Framework … • Eclipse non-APIs (“bad”) • “internal” • unstable, • discouraged, • unsupported • Eclipse APIs(“good”) • no “internal” • stable, • supported Eclipse Framework Eclipse Third-party Plug-ins (ETPs) P1 P2 P3 P4 • P3 – ETP-APIs • P1, P2 and P4 – ETP-non-APIs Software Engineering and Technology (SET)
Motivation • Previous study (Survival of ETPs – ICSM 2012), we testedcompatibilityof 345 ETP-APIsand288 ETP-non-APIswithdifferent Eclipse releases. • Ourobservations: • ETP-APIsalwayscompatible in new Eclipse releases. • Bad interfaces are the main cause of incompatibilities. • Informally, found oldbad interfacesstable. • Formallyverifiedobservation2. • Trainedpredictionmodels • Testedthe predictionmodels. Software Engineering and Technology (SET)
Motivation • Previousstudy(Survival of ETPs– ICSM 2012), we testedcompatibilityof 345 ETP-APIsand288 ETP-non-APIswithdifferent Eclipse releases. • Ourobservations: • ETP-APIsalwayscompatible in new Eclipse releases. • Bad interfacesare the main cause of incompatibilities. • Informally, found oldbad interfacesstable. • Formallyverifiedobservation2. • Trainedpredictionmodels • Testedthe predictionmodels. Software Engineering and Technology (SET)
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 interfacesused by ETPs Software Engineering and Technology (SET)
ETP-non-APIs supported in Eclipse Releases Software Engineering and Technology (SET)
Model Training • Statistics – Binary Logistic Regression • Dependent variable • p # Independent variables
Model Training Example ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0 In put P1 P2 P3
Model Training Example ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0 In put P1 P2 P3 2.0 2.1 1.0 3.0 1.0 Eclipse 3.0 non-APIs
Model Training Example ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0 In put P1 P2 P3 0 1 0 2.0 2.1 1.0 3.0 1.0 Eclipse 3.0 non-APIs
Model Training Example ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0 In put P3 P2 P1 0 1 0 15 4 8 2.0 2.1 1.0 3.0 1.0 Eclipse 3.0 non-APIs
Model Training Example ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0 In put P3 P2 P1 0 1 0 15 4 8 2 8 7 6 4 2.0 2.1 1.0 3.0 1.0 Eclipse 3.0 non-APIs
Model Training Example ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0 In put Dependent variable P2 P1 P3 0 1 0 15 4 8 2 8 7 6 4 2.0 2.1 1.0 3.0 1.0 Independent variables Eclipse 3.0 non-APIs
Model Training Example ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0 In put Dependent variable P3 P1 P2 0 1 0 15 4 8 Machine Logistic Regression 2 8 7 6 4 2.0 2.1 1.0 3.0 1.0 Independent variables Eclipse 3.0 non-APIs
Model Training Example ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0 In put Dependent variable Out put P2 P3 P1 0 1 0 15 4 8 Machine Logistic Regression 2 7 8 6 4 2.0 2.1 1.0 3.0 1.0 1.0 1.0 2.0 3.0 2.1 Independent variables Eclipse 3.0 non-APIs Eclipse 3.0 non-APIs
Model Training Example ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0 In put Dependent variable Out put P2 P3 P1 0 1 0 15 4 8 Machine Logistic Regression 2 7 8 6 4 2.0 2.1 1.0 3.0 1.0 1.0 1.0 2.0 3.0 2.1 Independent variables Eclipse 3.0 non-APIs Eclipse 3.0 non-APIs
Model Training Example ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0 P4 20 7 8 2.0 2.1 1.0 3.0 1.0 5 Eclipse 3.0 non-APIs
Model Training Example ETPs supported in Eclipse 3.0 – Prediction in Eclipse X, where X > 3.0 P4 <0.5 – incompatibility >=0.5 – compatibility 20 7 8 2.0 2.1 1.0 3.0 1.0 5 Eclipse 3.0 non-APIs
Results In both model training and testing: High Precision, Accuracy, and Recall, where some were 80% and more
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 Software Engineering and Technology (SET)
Thank you for listening Software Engineering and Technology (SET)