Design Defect Detection Rules Generation: A Music Metaphor

We propose an automated approach for design defect detection. It exploits an algorithm that automatically finds rules for the detection of possible design defects, thus relieving the designer from doing so manually. Our algorithm derives rules in the form of metric/threshold combinations, from known instances of design defects (defect examples). Due to the large number of possible combinations, we use a music-inspired heuristic that finds the best harmony when combining metrics. We evaluated our approach on finding potential defects in three open-source systems (Xerces-J, Quick UML and Gantt). For all of them, we found more than 80% of known defects, a better result when compared to a state-of-the-art approach, where the detection rules are manually specified.

[1]  William C. Wake,et al.  Refactoring Workbook , 2003 .

[2]  Foutse Khomh,et al.  A Bayesian Approach for the Detection of Code and Design Smells , 2009, 2009 Ninth International Conference on Quality Software.

[3]  Houari A. Sahraoui,et al.  Deviance from perfection is a better criterion than closeness to evil when identifying risky code , 2010, ASE.

[4]  Thomas J. Mowbray,et al.  AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis , 1998 .

[5]  Mika Mäntylä,et al.  A taxonomy and an initial empirical study of bad smells in code , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[6]  Claus Lewerentz,et al.  Applying design-metrics to object-oriented frameworks , 1996, Proceedings of the 3rd International Software Metrics Symposium.

[7]  De Raedt,et al.  Advances in Inductive Logic Programming , 1996 .

[8]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[9]  Yann-Gaël Guéhéneuc,et al.  DECOR: A Method for the Specification and Detection of Code and Design Smells , 2010, IEEE Transactions on Software Engineering.

[10]  Mel Ó Cinnéide,et al.  Journal of Software Maintenance and Evolution: Research and Practice Search-based Refactoring: an Empirical Study , 2022 .

[11]  Mel Ó Cinnéide,et al.  Search-based refactoring: an empirical study , 2008 .

[12]  Suraj C. Kothari,et al.  A Pattern-Based Framework for Software Anomaly Detection , 2004, Software Quality Journal.

[13]  Pierre Poulin,et al.  Visual Detection of Design Anomalies , 2008, 2008 12th European Conference on Software Maintenance and Reengineering.

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

[15]  John E. Gaffney,et al.  Metrics in software quality assurance , 1981, ACM '81.

[16]  K. Lee,et al.  A new meta-heuristic algorithm for continuous engineering optimization: harmony search theory and practice , 2005 .

[17]  K. Lee,et al.  A new metaheuristic algorithm for continuous engineering optimization : harmony search theory and practice , 2005 .

[18]  Zhendong Niu,et al.  Facilitating software refactoring with appropriate resolution order of bad smells , 2009, ESEC/FSE '09.

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

[20]  K. Lee,et al.  The harmony search heuristic algorithm for discrete structural optimization , 2005 .

[21]  John A. Clark,et al.  Metrics are fitness functions too , 2004, 10th International Symposium on Software Metrics, 2004. Proceedings..