TITLE:
Detecting Design Patterns in Object-Oriented Program Source Code by Using Metrics and Machine Learning
AUTHORS:
Satoru Uchiyama, Atsuto Kubo, Hironori Washizaki, Yoshiaki Fukazawa
KEYWORDS:
Design Patterns, Software Metrics, Machine Learning, Object-Oriented Programming, Software Maintenance
JOURNAL NAME:
Journal of Software Engineering and Applications,
Vol.7 No.12,
November
14,
2014
ABSTRACT: Detecting well-known
design patterns in object-oriented program source code can help maintainers
understand the design of a program. Through the detection, the
understandability, maintainability, and reusability of object-oriented programs
can be improved. There are automated detection techniques; however, many
existing techniques are based on static analysis and use strict conditions
composed on class structure data. Hence, it is difficult for them to detect and
distinguish design patterns in which the class structures are similar.
Moreover, it is difficult for them to deal with diversity in design pattern
applications. To solve these problems in existing techniques, we propose a
design pattern detection technique using source code metrics and machine
learning. Our technique judges candidates for the roles that compose design
patterns by using machine learning and measurements of several metrics, and it
detects design patterns by analyzing the relations between candidates. It
suppresses false negatives and distinguishes patterns in which the class
structures are similar. As a result of experimental evaluations with a set of
programs, we confirmed that our technique is more accurate than two
conventional techniques.