RADAR: An Approach for the Detection of Antipatternsin UML Class Diagrams
Sammanfattning
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
measurement- regarding 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.
Examinationsnivå
Student essay
Samlingar
Fil(er)
Datum
2015-07-20Författare
Béczi, Petra
Nyckelord
Anti-pattern
UML class diagram
Software design metric
Detection rule
Detection algorithm
Testing
Statistical analysis
Språk
eng