Refactorings of Design Defects using Relational Concept Analysis
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 an 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 using 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.
Abstract : The present study shows by example the potential amount of information available in a set of observations of targets where there are known relations between these targets. Known relations between objects significantly reduces the set of possible explanations behind a set of observations. The application here is classification of military targets. Cost functions and interaction with decision makers extend the feasibility of the present approach meaningfully to treat many observations and possible targets behind these.