Design patterns represent best practices in software design and are particularly relevant for Model-Driven Engineering (MDE) due to their ability to describe conceptual source code knowledge. As a consequence, effective design pattern recovery approaches provide a great support for understanding complex software systems. However, although design pattern definitions come with a canonical form, their implementations can diverge from such form for different reasons, such as, the chosen software architecture or additional design requirements, making their detection in source code rather challenging. In this paper, we investigate the use of different design pattern implementation variants in software systems and how they affect the retrieval performance of design pattern recovery tools. In particular, we focus on different variants of Adapter and Observer design patterns, by analyzing the available documentation of six open source software systems and a public repository of design pattern instances, and we analyze the performance of three different design pattern recovery tools with respect to these variants.
Dealing with design pattern variants in reverse engineering: An exploratory study
De Lucia, Andrea;Deufemia, Vincenzo;Gravino, Carmine;Risi, Michele
2018
Abstract
Design patterns represent best practices in software design and are particularly relevant for Model-Driven Engineering (MDE) due to their ability to describe conceptual source code knowledge. As a consequence, effective design pattern recovery approaches provide a great support for understanding complex software systems. However, although design pattern definitions come with a canonical form, their implementations can diverge from such form for different reasons, such as, the chosen software architecture or additional design requirements, making their detection in source code rather challenging. In this paper, we investigate the use of different design pattern implementation variants in software systems and how they affect the retrieval performance of design pattern recovery tools. In particular, we focus on different variants of Adapter and Observer design patterns, by analyzing the available documentation of six open source software systems and a public repository of design pattern instances, and we analyze the performance of three different design pattern recovery tools with respect to these variants.I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.