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-01-01

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.
2018
9781538658413
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11386/4722202
 Attenzione

Attenzione! I dati visualizzati non sono stati sottoposti a validazione da parte dell'ateneo

Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 0
  • ???jsp.display-item.citation.isi??? 0
social impact