@article{10582, author = {Marek Vok{\'a}c}, title = {An Efficient Tool for Recovering Design Patterns From C++ Code}, abstract = {Design Patterns are informal descriptions of tested solutions to recurring problems. Most design tools have little or no support for documenting the presence and usage of patterns in code. Reverse engineering is therefore often required to recover Design Patterns from code in existing projects. Knowledge of what Design Patterns have been used can aid in code comprehension, as well as support research. Since pattern descriptions are abstract and informal, they offer no algorithmic translation into concrete code. Some patterns prescribe class structures that are easy to recognize, while others lead to structures that are difficult or impossible to recognize. This work presents a tool that can recover five different design patterns from C++ code with high precision and at a speed of 3x10^6 LOC/hr. This makes it suitable for analysis of large (multi-millon LOC) systems.}, year = {2006}, journal = {Journal of Object Technology}, volume = {5}, number = {1}, pages = {139-157}, month = {January/February}, }