Vol 4 No.2

Patterns Mining from Java Source Code

ABSTRACT One of the most repeatable and time consuming tasks in the software development process is trying to analyze and understand the technical implementation and design of an existing program source code. Design patterns encapsulate solutions to common object oriented design problems which make them an aid to understand different design decisions taken by software designers in existing software. This paper presents a new, fully automated patterns mining approach. The new approach is based on redescribing design patterns from a reverse engineering point of view. We claim that a design pattern description has a great impact on the accuracy of a design patterns mining tool. Our approach is capable of detecting a variety of design patterns’ implementations based on the proposed pattern description template. This paper also describes our tool, DPM, that implements the new pattern description template based on a model transformation approach. DPM is using graph matching and Constrain Satisfaction Problem (CSP) search algorithms to detect patterns’ instances. DPM has been tested against benchmark applications, including JUnit and Java AWT. Comparison to other existing pattern detection tools proven that DPM is capable of detecting more pattern instances with better accuracy.

Authors
Ayman M. Wahba
  • Organization : Department of Computer and Systems.Ain Shams University (Egypt)
  • Email : ayman.wahba@gmail.com
Read More
Islam A. M. ElMaddah
Read More
Mohamed A. Soliman
  • Organization : Department of Computer and Systems.Ain Shams University (Egypt)
  • Email : maboubakr@gmail.com
Read More