Abstract
Context: Several studies suggest that there is a relation between code smells and architecture degradation. They claim that classes, which have degraded architecture -wise, can be detected on the basis of code smells, at least if these are manually identified in the source code. Objective: To evaluate the suitability of contemporary code smell detection tools by combining different smell categories for finding classes that show symptoms of architecture degradation. Method: A case study is performed in which architectural inconsistencies in an open source system are detected via reflexion modeling and code smell metrics are collected through several tools. Using data mining techniques, we investigate if it is possible to automatically and accurately classify classes connected to architectural inconsistencies based on the gathered code smell data. Results: Results suggest that existing code smell detection techniques, as implemented in contemporary tools, are not sufficiently accurate for classifying whether a class contains architectural inconsistencies, even when combining categories of code smells. Conclusion: It seems that current automated code smell detection techniques require fine-tuning for a specific system if they are to be used for finding classes with architectural inconsistencies. More research on architecture violation causes is needed to build more accurate detection techniques that work out-of-the -box.