Refactorings of Design Defects using Relational Concept Analysis
Résumé
Software engineers often need to identify and correct design defects, i.e., recurring design problems that hinder development and maintenance by making programs harder to comprehend and/or evolve. While detection of design defects is actively researched area, their correction -- mainly a manual and time-consuming activity -- is yet to be extensively investigated for automation. In this paper, we propose an automated approach for suggesting defect-correcting refactorings based on relational concept analysis (RCA). The added value of RCA consists in exploiting the links between formal objects which abound in a software re-engineering context. We validated our approach on instances of the 'Blob' design defect taken from four different open-source programs.