Building an Eclipse plugin to recommend changes to developers

9,534 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
9,534
On SlideShare
0
From Embeds
0
Number of Embeds
8,358
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Building an Eclipse plugin to recommend changes to developers

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

×