SUMMARY Design patterns play a significant role in reverse engineering by providing information not only on how but also on why a solution has been implemented in a specific way because of their semantics. The application of design patterns leads to their personalization to a specific context, hence to the generation of variants. This makes their recognition a challenging task, which may be addressed through the understanding and detection of the micro‐structures design patterns are made of. This is very useful for the detection as well as for the application of design patterns. The principal aim of this paper is to present a survey on these micro‐structures and a comparison among them in the perspective of reverse engineering. Because of their less complex structure and behavior, as well as closer link to the source code, the recognition of these micro‐structures may be automated, which can be considered a step towards the automatic recognition of the more complex design patterns. In this paper, we consider four of the most significant types of micro‐structures: elemental design patterns, clues, sub‐patterns, and micro patterns. To analyze the role of the micro‐structures in the design pattern detection process, we make a comparison among these four types of micro‐structures and among the micro‐structures of various types in order to identify the relations among them. Copyright © 2011 John Wiley & Sons, Ltd.
Design pattern detection, or rather the detection of structures that match design patterns, is useful for reverse engineering, program comprehension and for design recovery as well as for re-documenting object-oriented systems. Finding design patterns inside the code gives hints to software engineers about the methodologies adopted and the problems found during its design phases, and helps the engineers to evolve and maintain the system. In this paper, we present the results provided by four different design pattern detection tools on the analysis of JHotDraw 6.0b1, a well-known Java GUI framework. We show that the tools generally provide different results, even while evaluating the same system. From this observation, we introduce an approach based on micro structures detection that aims to discard the false positives from the detected results, hence improving the precision of the analyzed tools results. For this purpose we exploit a set of micro structures called design pattern clues, which give useful hints for the detection of design patterns.
Micro patterns are class-level patterns which aim to identify and formalize common programming techniques. A type (either a class or an interface) is an instance of a micro pattern if and only if all of its methods and/or attributes satisfy the constraints specified by the micro pattern. We suggest a novel approach to the detection of micro patterns which is aimed to identify types that are very close and similar to a correct micro pattern implementation, even if some of the methods and/or attributes of the type do not comply with the constraints defined by the micro pattern. The new interpretation is based on the number of attributes (NOA) and the number of methods (NOM) of a type. The identification of types similar to micro patterns allows the analysis of software systems along various releases, as well as the identification of possible critical classes that can't be detected with a precise matching approach.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.