Design patterns are recommended solutions for typical software design problems, with an extensively studied and documented impact on various quality factors. Flaws in design at a higher levels of abstraction are manifested in architectural smells. Some of those smells, similarly to code smells, can reduce the expected advantages of design patterns or even prevent their proper implementation. In this paper we study if and how design patterns and architectural smells are related, and how this knowledge could be exploited in practice. We present an empirical study with an analysis of 16 design patterns and 3 architectural smells in 60 open source Java systems. We analyze their diffuseness and correlation, and we extract association rules that describe their presence and dependencies. We demonstrate that there exist relationships between architectural smells and design patterns, both at the class and package levels. Some smells appear falsely positive, as they result from conscious decisions made by programmers, while the application of some patterns can be a cause of certain smells. Our results provide evidence that design patterns and architectural smells are related and affect each other. With knowledge about the relationships, programmers can avoid the side effects of applying some design patterns.

Pigazzini, I., ARCELLI FONTANA, F., Walter, B. (2021). A study on correlations between architectural smells and design patterns. THE JOURNAL OF SYSTEMS AND SOFTWARE, 178(August 2021) [10.1016/j.jss.2021.110984].

A study on correlations between architectural smells and design patterns

Pigazzini I.
;
Francesca Arcelli Fontana.
;
2021

Abstract

Design patterns are recommended solutions for typical software design problems, with an extensively studied and documented impact on various quality factors. Flaws in design at a higher levels of abstraction are manifested in architectural smells. Some of those smells, similarly to code smells, can reduce the expected advantages of design patterns or even prevent their proper implementation. In this paper we study if and how design patterns and architectural smells are related, and how this knowledge could be exploited in practice. We present an empirical study with an analysis of 16 design patterns and 3 architectural smells in 60 open source Java systems. We analyze their diffuseness and correlation, and we extract association rules that describe their presence and dependencies. We demonstrate that there exist relationships between architectural smells and design patterns, both at the class and package levels. Some smells appear falsely positive, as they result from conscious decisions made by programmers, while the application of some patterns can be a cause of certain smells. Our results provide evidence that design patterns and architectural smells are related and affect each other. With knowledge about the relationships, programmers can avoid the side effects of applying some design patterns.
Articolo in rivista - Articolo scientifico
Architectural smells; Architectural smells and design patterns relationships; Design patterns;
English
19-apr-2021
2021
178
August 2021
110984
reserved
Pigazzini, I., ARCELLI FONTANA, F., Walter, B. (2021). A study on correlations between architectural smells and design patterns. THE JOURNAL OF SYSTEMS AND SOFTWARE, 178(August 2021) [10.1016/j.jss.2021.110984].
File in questo prodotto:
File Dimensione Formato  
paper245.pdf

Solo gestori archivio

Tipologia di allegato: Publisher’s Version (Version of Record, VoR)
Dimensione 3.1 MB
Formato Adobe PDF
3.1 MB Adobe PDF   Visualizza/Apri   Richiedi una copia

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/10281/327703
Citazioni
  • Scopus 7
  • ???jsp.display-item.citation.isi??? 2
Social impact