Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Building an Eclipse plugin to recommend changes to developers
1. Building an Eclipse plugin to
recommend changes to developers
Master thesis defense – June 2013
Snaps François – Université catholique de Louvain – EPL
Advisor & Guidance – Prof. Kim Mens & Dr. Angela Lozano
Slide 1 / 13
Master thesis defense
2. Context
!
Maintenance and extension of existing systems
!
!
!
Frequent and complex operations
Difficulty: developers need to interact with unfamiliar code
Before becoming productive, a developer needs to know:
!
!
!
The limits and bounds of the existing system
Where and how to integrate his modifications in the system
The conventions, coding idioms, etc…
Slide 2 / 13
Master thesis defense
3. Solution
!
Build a tool to facilitate this interaction between the
developer and the existing system
!
Mendel’s approach:
!
!
Extract regularities from an existing system
Recommend implementation hints
as changes to the developer
Slide 3 / 13
Master thesis defense
4. Mendel: a Genetic Metaphor
!
“Tell me who your family is, I will tell you what you should
look like”
!
Select an entity
!
Find its family members according to a family definition
!
!
Extract dominant and recessive traits of the family
!
!
Family definition (in this example):
all apples belonging to the previous picture
Dominant trait: “color: green” is shared by all other family members
Recommend family trait not implemented by the selected entity
!
Recommendation: the selected apple should also have the color green
Slide 4 / 13
Master thesis defense
5. Family Definition: a Key Factor
!
What if, instead of the previous definition, we now use
this definition:
!
All apples belonging to the same tree as the selected apple
Ø No more “color: green” trait recommended
Ø Possible other family traits (taste, form,…)
!
!
Objective: supporting multiple family definitions
Study the impact of the family definition on:
!
!
The quality of the recommendations produced
The type of the recommendations produced
Slide 5 / 13
Master thesis defense
6. Predefined families
!
Default family (Mendel definition)
!
For classes & interfaces : all siblings and nephews of the
selected class or interface
!
!
+ distinction between abstract and concrete classes.
For methods : all methods with the same name as the selected
method within the siblings and nephews of the selected
method’s class.
Slide 6 / 13
Master thesis defense
7. Predefined families
!
Identifiers Family
!
!
!
Implements Family
!
!
!
Relation: part of the entity’s
name
Parameterized family
Relation: implements and
extends links
Specialized family: classes and
interfaces
Callers Family
!
!
!
Relation: method called
Parameterized family
Specialized family: methods
and constructors
Slide 7 / 13
Master thesis defence
8. Validation
!
Hypothesis : a “relevant” recommendation is one that has
actually been implemented by developers
!
Technique : analyzing multiple versions of a same project
!
!
Produce recommendations for each version
Verify if these recommendations are implemented in a later
version
Slide 8 / 13
Master thesis defense
9. Validation: implementation
!
Multiple parsing issue
!
!
Particularity of Mendel’s approach
Solution used: database
!
Extractor tool
!
!
Parses the entire source code of the version and stores it into the
database
Validation on the database
Slide 9 / 13
Master thesis defense
10. Results
!
Some family definitions are more suited for some
recommendations types than others
!
“Method implemented” type
!
Implements family
23 of 1505 recommendations are actually implemented
¨ 41 of 50 recommendations are rated as relevant
¨
!
Identifiers family (M2)
0 of 828 recommendations are actually implemented
¨ 22 of 50 recommendations are rated as relevant
¨
Slide 10 / 13
Master thesis defense
11. Future Work
!
Improve the validation filters
!
!
!
!
Better family thresholds
Better family definitions
!
!
Restrict the number of entities analyzed
Restrict the number of irrelevant recommendations produced
Example: “extends” type and our Default family
Validation with real users
Slide 11 / 13
Master thesis defense
12. Conclusion
!
Supporting multiple family definitions
!
!
!
Allows to select the most appropriate family for a type of
recommendation
Avoids the case where a family definition struggles to produce
some recommendation types
Allows to compare recommendations from a different point of
view (different family definitions)
Slide 12 / 13
Master thesis defense