Research on Object-Oriented Design Defect Detection Method Based on Machine Learning

  • Yiming Wang
  • Tie FengEmail author
  • Yanfang Cheng
  • Haiyan Che
Conference paper
Part of the Advances in Intelligent Systems and Computing book series (AISC, volume 1084)


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.


Design defect detection Object-oriented metrics Feature extraction Machine learning Classifier 



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.


  1. 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. 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. 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. 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. 5.
    Feng, T.: An approach to automated software design improvement. J. Softw. 17(4), 703–712 (2006)CrossRefGoogle Scholar
  6. 6.
    Fowler, M.: Refactoring: Improving the Design of Existing Programs. Addison-Wesley, Boston (1999)zbMATHGoogle Scholar
  7. 7.
    Robert, M.: Design principle and design patterns (2000)Google Scholar
  8. 8.
    Kerievsky, J.: Refactoring to Patterns. Addison-Wesley, Boston (2004)CrossRefGoogle Scholar
  9. 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. 10.
    ISO 9126: Software Product Quality Characteristics.
  11. 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. 12.
    Hitz, M., Montazeri, B.: Measuring coupling and cohesion in object-oriented systems (1995)Google Scholar
  13. 13.
    Lorenz, M., Kidd, J.: Object-oriented software metrics: a practical guide. Prentice-Hall Inc, Englewood Cliffs (1994)Google Scholar
  14. 14.
    Abreu, F.: MOOD-metrics for object-oriented design. In: Proceedings of Oopsla 94 Workshop Paper Presentation (1994)Google Scholar
  15. 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. 16.
    Shari, L.P.: Software Engineering Theory and Practice (2003)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2020

Authors and Affiliations

  • Yiming Wang
    • 1
  • Tie Feng
    • 2
    Email author
  • Yanfang Cheng
    • 1
  • Haiyan Che
    • 2
  1. 1.Department of SoftwareJilin UniversityChangchunChina
  2. 2.Department of Computer Science and TechnologyJilin UniversityChangchunChina

Personalised recommendations