Design pattern detection approaches: a systematic review of the literature
- PDF / 2,360,495 Bytes
- 58 Pages / 439.37 x 666.142 pts Page_size
- 55 Downloads / 281 Views
Design pattern detection approaches: a systematic review of the literature Hadis Yarahmadi1 · Seyed Mohammad Hossein Hasheminejad1
© Springer Nature B.V. 2020
Abstract Nowadays, software engineers have a great tendency to use design patterns (DPs) because they are considered to have an important role in software engineering in the sense that they can make the understanding of nonentities easier. However, most of the systems have no document helping engineers recognize DPs from the codes. As a result, different approaches for design pattern detection have been suggested. The current paper reviews different available literature on design pattern detection and reports a number of different aspects of them such as data representation, type of design pattern, advantages and disadvantages for different approaches, quantitative results, etc. The current paper reviews research studies published between 2008 until 2019 and represents a list of datasets used for evaluations. The present investigation paper is not only to lay the ground for the selection of the optimal design patterns, but also hopes to guide the future studies through raising awareness about the potential defects in the previous researches. Keywords Design pattern detection · GoF · Object-oriented source codes · Systematic review
1 Introduction Design patterns (DPs) are commonly used in software design phases to solve most of the problems in engineering and to facilitate the software development process. Nowadays, design patterns are used in the design phase, but their use is not trouble-free because DPs are considered in the design phase and sometimes they are forgotten in the implementation. According to Gamma (1995), design patterns can be classified into three categories including structural, behavioral and creational. The design patterns apply experts’ knowledge to solve common software problems which have similar solutions (Riaz et al. 2015). Generally, design patterns are very important because they are helpful in reverse engineering
* Seyed Mohammad Hossein Hasheminejad [email protected] Hadis Yarahmadi [email protected] 1
Department of Computer Engineering, Alzahra University, Tehran, Iran
13
Vol.:(0123456789)
H. Yarahmadi, S. M. H. Hasheminejad
and system understanding (Kaczor et al. 2010). Design patterns should be used in software development mainly because: • They increase the speed of software development. • They prevent unforeseen problems. • They can help the programmers to easily understand the code and solve the problem.
Design patterns enhance reusability of modularization, the quality and consistency of design and implementation, and the relationship between design and implementation teams. They also make the system flexible and scalable (Thongrak and Vatanawood 2014). They are also very important when a developer tries to regenerate a previously generated code for a particular system (Thankappan and Patil 2015). In fact, one of the challenges of design pattern use corresponds to code and design. More
Data Loading...