A review of design pattern mining techniques

Jing Dong*, Yajing Zhao, Tu Peng

*Corresponding author for this work

Research output: Contribution to journalReview articlepeer-review

78 Citations (Scopus)

Abstract

The quality of a software system highly depends on its architectural design. High quality software systems typically apply expert design experience which has been captured as design patterns. As demonstrated solutions to recurring problems, design patterns help to reuse expert experience in software system design. They have been extensively applied in the industry. Mining the instances of design patterns from the source code of software systems can assist in the understanding of the systems and the process of re-engineering them. More importantly, it also helps to trace back to the original design decisions, which are typically missing in legacy systems. This paper presents a review on current techniques and tools for mining design patterns from source code or design of software systems. We classify different approaches and analyze their results in a comparative study. We also examine the disparity of the discovery results of different approaches and analyze possible reasons with some insight.

Original languageEnglish
Pages (from-to)823-855
Number of pages33
JournalInternational Journal of Software Engineering and Knowledge Engineering
Volume19
Issue number6
DOIs
Publication statusPublished - Sept 2009
Externally publishedYes

Keywords

  • Design pattern
  • Discovery
  • Reverse engineering

Fingerprint

Dive into the research topics of 'A review of design pattern mining techniques'. Together they form a unique fingerprint.

Cite this