Research on Object-Oriented Design Defect Detection Method Based on Machine Learning
Abstract
Design defects are one of the main reasons for the decline of software design quality. Effective detection of design defects plays an important role in improving software maintainability and scalability. On the basis of defining software design defects, according to C&K design metrics and heuristics, this paper extracts the relevant features of design defects. Based on classical machine learning methods, classifiers are trained for design defect, and candidate designs are classified by classifiers, so as to identify whether there is a design defect in the design. Experiments show that the method has high accuracy and recall rate in identifying design defects.
Keywords
Design defect detection Object-oriented metrics Feature extraction Machine learning ClassifierNotes
Acknowledgments
At the end of this paper, I would like to thank the teachers and classmates who have contributed to this paper, and secondly to those who came to help me.
References
- 1.D’Ambros, M., Lanza, M., Robbes, R.: Evaluating defect prediction approaches: a benchmark and an extensive comparison. Empirical Softw. Eng. 17(4–5), 531–577 (2012)CrossRefGoogle Scholar
- 2.Brown, W.H., Malveau, R.C.: “Skip” McCormick III HW, Mowbray TJ, Antipatterns: Refactoring Software, Architectures, and Projects in Crisis. Wiley Computer Publishing, New York (1998)Google Scholar
- 3.Zhiqiang, L., Xiao-Yuan, J., Xiaoke, Z.: Progress on approaches to software defect prediction. IET Softw. 12(3), 161–175 (2018)CrossRefGoogle Scholar
- 4.Moha, N.: Detection and correction of design defects in object-oriented designs. In: Companion to the ACM Sigplan Conference on Object-Oriented Programming Systems & Applications Companion. ACM (2007)Google Scholar
- 5.Feng, T.: An approach to automated software design improvement. J. Softw. 17(4), 703–712 (2006)CrossRefGoogle Scholar
- 6.Fowler, M.: Refactoring: Improving the Design of Existing Programs. Addison-Wesley, Boston (1999)zbMATHGoogle Scholar
- 7.Robert, M.: Design principle and design patterns (2000)Google Scholar
- 8.Kerievsky, J.: Refactoring to Patterns. Addison-Wesley, Boston (2004)CrossRefGoogle Scholar
- 9.Tahvildare, L., Kontogiannis, K.: Improving design quality using meta-pattern transformations: a metric-based approach. J. Softw. Maint. Evol. Res. Pract. 16(4–5), 331–361 (2004)CrossRefGoogle Scholar
- 10.ISO 9126: Software Product Quality Characteristics. http://www.cse.dcu.ie/essiscope/
- 11.Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Trans. Software Eng. 20(6), 476–493 (1994)CrossRefGoogle Scholar
- 12.Hitz, M., Montazeri, B.: Measuring coupling and cohesion in object-oriented systems (1995)Google Scholar
- 13.Lorenz, M., Kidd, J.: Object-oriented software metrics: a practical guide. Prentice-Hall Inc, Englewood Cliffs (1994)Google Scholar
- 14.Abreu, F.: MOOD-metrics for object-oriented design. In: Proceedings of Oopsla 94 Workshop Paper Presentation (1994)Google Scholar
- 15.Guéhéneuc, Y.G., Sahraoui, H., Zaidi, F.: Fingerprinting design patterns. In: 11th Working Conference on Reverse Engineering, pp. 172–181. IEEE (2004)Google Scholar
- 16.Shari, L.P.: Software Engineering Theory and Practice (2003)Google Scholar