Understanding the relevance of micro-structures for design patterns detection
One important issue concerning design patterns in reverse engineering is their detection to support program comprehension, design recovery, system (re-)documentation, and software evolution. The objectives of this paper are to identify and analyze different types of building blocks of design patterns and to evaluate if the detection of these building blocks (called micro-structures) is relevant for the detection of occurrences of the design patterns. This analysis is useful to understand how the different types of micro-structures can be combined to better comprehend design patterns and to improve their detection. To achieve the objectives, the paper provides a description of different micro-structures, an analysis of their relevance in different design motifs, and a statistical analysis on the number and types of micro-structures present in different design patterns. Finally, we investigate if the detection of some design patterns can be performed only through the detection of a combined set of micro-structures, or other techniques should be exploited.