Building an Eclipse plugin to recommend changes to developers
Upcoming SlideShare
Loading in...5
×
 

Building an Eclipse plugin to recommend changes to developers

on

  • 178 views

 

Statistics

Views

Total Views
178
Views on SlideShare
178
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Building an Eclipse plugin to recommend changes to developers Building an Eclipse plugin to recommend changes to developers Presentation Transcript

  • 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 View slide
  • 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 View slide
  • 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