Detection and correction of design defects in object-oriented designs

Design defects come from poor design choices and have the effect of degrading the quality of object-oriented designs.Therefore, they present opportunities for improvements.However, design defects have not been precisely specified and there are few appropriate tools that allow their detection as well as their correction. Our goal is to provide a systematic method to specify systematically design defects precisely and to generate automatically detection and correction algorithms from their specifications. The detection algorithms are based not only on metrics but also on semantical and structural properties whereas the correction algorithms are based on refactorings. We apply and validate these algorithms on open-source object-oriented programs to show that our method allows a systematic specification, a precise detection, and a suitable correction of design defects.

[1]  Ladan Tahvildari,et al.  Journal of Software Maintenance and Evolution: Research and Practice Improving Design Quality Using Meta-pattern Transformations: a Metric-based Approach , 2022 .

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

[3]  Hany H. Ammar,et al.  Dynamic metrics for object oriented designs , 1999, Proceedings Sixth International Software Metrics Symposium (Cat. No.PR00403).

[4]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach (McGraw-Hill Series in Computer Science) , 2004 .

[5]  Forrest Shull,et al.  Detecting defects in object-oriented designs: using reading techniques to increase software quality , 1999, OOPSLA '99.

[6]  Michael B. Spring,et al.  Shared defect detection: the effects of annotations in asynchronous software inspection , 2000 .

[7]  Houari A. Sahraoui,et al.  Can metrics help to bridge the gap between the improvement of OO design quality and its automation? , 2000, Proceedings 2000 International Conference on Software Maintenance.

[8]  R. Stephenson A and V , 1962, The British journal of ophthalmology.

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

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

[11]  M.J. Munro,et al.  Product Metrics for Automatic Identification of "Bad Smell" Design Problems in Java Source-Code , 2005, 11th IEEE International Software Metrics Symposium (METRICS'05).

[12]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[13]  Kostas Kontogiannis,et al.  Improving design quality using meta-pattern transformations: a metric-based approach: Research Articles , 2004 .

[14]  Jan Verelst,et al.  Refactoring - improving coupling and cohesion of existing code , 2004, 11th Working Conference on Reverse Engineering.

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