On Investigating Code Smells Correlations

Code smells are characteristics of the software that may indicate a code or design problem that can make software hard to evolve and maintain. Detecting and removing code smells, when necessary, improves the quality and maintainability of a system. Code smells have been defined in [5], and different detection tools have been developed, each one characterized by particular features and providing often different results. Usually detection techniques are based on the computation of a particular set of combined metrics, or standard object-oriented metrics [8] or metrics defined ad hoc for the smell detection. As outlined in [3] there is the need for a clearer research strategy on smells identification and measurement. Other knowledge has to be exploited for their detection. In this work we are interested to investigate the direct and indirect correlations existing between smells. Moreover we propose to analyze if other relations exist between code smell and another kind of micro structure, called micro pattern[6]. We started this research since we think that the knowledge on these relations between smells could be exploited by code smell detection tools to improve their results. If one code smell exists, this can imply the existence of another code smell, or if one smell exists, another one cannot be there, or perhaps we could observe that some code smells tend to go together.

[1]  Stéphane Ducasse,et al.  Object-Oriented Metrics in Practice , 2005 .

[2]  Itay Maman,et al.  Micro patterns in Java code , 2005, OOPSLA '05.

[3]  Francesca Arcelli Fontana,et al.  An Experience Report on Using Code Smells Detection Tools , 2011, 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops.

[4]  Robert M. Hierons,et al.  Is a strategy for code smell assessment long overdue? , 2010, WETSoM '10.

[5]  Francesca Arcelli Fontana,et al.  A tool for design pattern detection and software architecture reconstruction , 2011, Inf. Sci..