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
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
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
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
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
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
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
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
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
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
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
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

Building an Eclipse plugin to recommend changes to developers

  • 1.
    Building an Eclipseplugin 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 extensionof 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 toolto 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 GeneticMetaphor !  “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: aKey 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 !  !  !  ImplementsFamily !  !  !  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 parsingissue !  !  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 definitionsare 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 thevalidation 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 familydefinitions !  !  !  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