Collocations of Class Level Design Smells Using Associative Rules Mining
摘要
Code smells are warnings of upcoming software design flaws that could compromise the system’s maintainability. Based on object-oriented design concepts, design smell is one of the classifications for code smells. Frequent occurrences of some design smells within the same class and in highly coupled classes is the inter-smell relationship among design smells. It has a stronger negative impact than a single design smell. Frequent occurrences of some design smells in the same class are collocations of design smells. In this study, we used the associative rule mining technique to identify the frequent occurrence of 17 design smells found in three publicly available Java-based software systems having the same domain. The study’s findings indicate that some pairs of design smells frequently coexist. Some relationships are quite expected (Broken Hierarchy \(\rightarrow \) Unutilized Abstraction) and (Insufficient Modularization \(\rightarrow \) Unutilized Abstraction), while others are indirect. Collocation of design smells could aid in prioritizing the classes that require refactoring to address code smells, and in developing or optimizing detectors to generate an optimal refactoring order.