RADAR: An Approach for the Detection of Antipatternsin UML Class Diagrams

Anti-patterns in UML designs, alias bad design choices that are claimed as due to the incompetent participation of the designer to Object-Oriented (OO) system could lead to later issues regarding to its maintenance. That is why the earlycapture of those is a common desirability and emphasized as it would be a highly important action for the prevention of issues. However, the discovery of anti-patterns is a difficult procedure in case of working with a large scale and complex OO system. There are existing metric based solutions in which the detection of anti-patterns is automatized, however, none of those operates on UML class diagrams. In this paper, we introduce our approach called RADAR, which is a solution to detect inter alia, Complex Class, Large Class, Lazy Class, and ManyFieldAttributesButNotComplex (MFABNC) in UML class diagrams and returns warnings of the results. Essentially, RADAR uses a combination of some existing software design (SD) metrics and rules of the anti-patterns, moreover provides a flexible algorithmic procedure. Since each class diagrams are structured uniquely, meaning that those consists of a different number of classes; where each classes are variedly sized; and sometimes the classes are purposely implements large number of attributes and operations, thereby causing hasty judgements in the detection procedure due to the characteristics of some anti-patterns, which can be detected specifically by the large number of attributes and operations of a class. Therefore, we are providing a supplementation for the detection algorithms to compare the size of each classes inside the diagrams with the calculations of quartiles and average. The purpose of this approach is not only the detection of anti-patterns, but the measurement of significance. The computations are used to analyze each classes in a class diagram, where the resulted values will be unique for every diagrams. Taking these uniquenesses into the detection rules, we enabled a more accurate decision-making for our algorithms in RADAR, such as the measurement of significance whether the suspected element is still considerable as an anti-pattern after the comparisons made against to the other classes. Hence, as the name of our approach indicates, RADAR “sees” the size of the suspects, but only “warns” in case of necessity. This research was carried out by the application of design research methodology with the induction of statistical analysis made on the test results compared to Ptidej tool suite v5.8. 1. The test was performed on the same test materials and anti-pattern types, whereas the measurementregarding to the test coverage from the aspect of what percentage can our RADAR approach locate from those classes per anti-pattern categories that Ptidej doesresulted to the average of 26% accuracy for RADAR in the detection of Complex Class, and 61% for the detection of Lazy Class symptoms. Unfortunately, this measurement could not be made for Large Class and MFABNC anti-patterns based on the reason that Ptidej tool could not detect those. We claimed this problem as due to code generation procedure by the software we used regarding to the arbitrarily generated lines of code (LOC), which is if is long, is actually one of the main symptom of the latter mentioned two anti-patterns. To compensate the deficiencies of the measurement regarding to the detection accuracy of the four anti-patterns, we requested a review for RADAR from various people in the person of PhD students. Based on their feedback, the accuracy of RADAR in the detection of Large Class is between the averages of 38%-75%, and 55%80% for MFABNC. Regarding to the average accuracy of the other two anti-patterns, the detection of Complex Class is determined as between 68%-70%, and 80%-99% for Lazy Class. Keywords—Anti-pattern; UML class diagram; Software design metric; Detection rule; Detection algorithm; Testing; Statistical analysis.