Smell Removal Recipes from Repository Mining: an initial exploration Universidad Politécnica de Madrid! (Erasmus student at Ansymo) Javier Pérez Ansymo, University of Antwerp, Belgium
printDocument(): void lastDocument: Document formatDocument: String formatSummary(): String content: String name: String author: String creationDate: Date Document ✤ formatSummary() of PrintServer suffers from Feature Envy ✤ Trivial strategy: apply Move Method from PrintServer to Document ✤ Refactoring precondition violation: same signature conflict ✤ Additional refactorings are needed to enable the precondition ✤ Different refactoring sequences for each particular case
computable Recipes to Refactoring Strategies “Refactoring Planning for Design Smell Correction in Object-Oriented Software” Javier Pérez; PhD Thesis, July 2011, University of Valladolid
Evolution database XML Quality reports transformation and load Bad smell disappearances repository inFusion analysis Evolu datab XML Quality reports transformation and load Analyse revisions before and after the smell Manually inspect the refactorings detected Evolution database transformation and load refFinder analysis Bad smell disappearances Ref-Finder
care about removing bad smells • Recipes found refine those from common catalogues (Fowler, …) • Smarter interpretation of the detections needed • understands semantics of changes • Bad Smell Detection • time consuming • 5 revisions sample frequency • Smells tracking (renamings) • Refactoring Detection • False positives & false negatives • More fine-grained revisions (Git, IDE recording)