A Metric-Based Approach for Anti-pattern Detection in UML Designs

Anti-patterns are poor solutions of recurring design problems, which decrease software quality. Numerous anti-patterns have been outlined in the literature as violations of various quality rules. Most of these anti-patterns have been defined in terms of code quality metrics. However, identifying anti-patterns at the design level would improve considerably the code quality and substantially reduce the cost of correcting their effects during the coding and maintenance phases. Within this context, we propose an approach that identifies anti-patterns in UML designs through the use of existing and newly defined quality metrics. Operating at the design level, our approach examines structural and behavioral information through the class and sequence diagrams. It is illustrated through five, well-known anti-patterns: Blob, Lava Flow, Functional Decomposition, Poltergeists, and Swiss Army Knife.

[1]  Cristina Marinescu,et al.  iPlasma: An Integrated Platform for Quality Assessment of Object-Oriented Design , 2005, ICSM.

[2]  Mahesh H. Dodani OO Learning AntiPatterns: Rewiring Data and Functional Thinkers into Object Technology Developers , 1999, J. Object Oriented Program..

[3]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[4]  Arthur J. Riel,et al.  Object-Oriented Design Heuristics , 1996 .

[5]  Mahesh H. Dodani Patterns of Anti-Patterns , 2006, J. Object Technol..

[6]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[7]  Adrian Trifu,et al.  Automated design flaw correction in object-oriented systems , 2004, Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings..

[8]  J.-Y. Chen,et al.  A new metric for object-oriented design , 1993, Inf. Softw. Technol..

[9]  Yann-Gaël Guéhéneuc,et al.  Automatic Generation of Detection Algorithms for Design Defects , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[10]  Demis Ballis,et al.  A Minimalist Visual Notation for Design Patterns and Antipatterns , 2008, Fifth International Conference on Information Technology: New Generations (itng 2008).

[11]  Klaus R. Dittrich,et al.  The MeTHOOD Approach: Measures, Transformation Rules, and Heuristicsfor Object-Oriented Design , 1997 .

[12]  Yann-Gaël Guéhéneuc,et al.  A Domain Analysis to Specify Design Defects and Generate Detection Algorithms , 2008, FASE.

[13]  Perdita Stevens,et al.  Modelling Recursive Calls with UML State Diagrams , 2003, FASE.

[14]  Radu Marinescu,et al.  Detection strategies: metrics-based rules for detecting design flaws , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[15]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[16]  James M. Bieman,et al.  Cohesion and reuse in an object-oriented system , 1995, SSR '95.

[17]  Christian Percebois,et al.  Bad smells in design and design patterns , 2009 .

[18]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[19]  Demis Ballis,et al.  A Rule-based Method to Match Software Patterns Against UML Models , 2008, RULE@RDP.