Architectural Smells Detected by Tools: a Catalogue Proposal

Architectural smells can negatively impact on different software qualities and can represent a relevant source of architectural debt. Several architectural smells have been defined by different researchers. Moreover, both academia and industry proposed several tools for software quality analysis, but it is not always clear to understand which tools provide also support for architectural smells detection and if the tools developed for this specific purpose are effectively available or not. In this paper we propose a catalogue of architectural smells for which, at least one tool able to detect the smell exists. We outline the main differences in the detection techniques exploited by the tools and we propose a classification of these architectural smells according to the violation of three design principles.

[1]  Alberto Sillitti,et al.  A Survey on Code Analysis Tools for Software Maintenance Prediction , 2018, SEDA.

[2]  Davide Taibi,et al.  On the Definition of Microservice Bad Smells , 2018, IEEE Software.

[3]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[4]  Yuanfang Cai,et al.  Hotspot Patterns: The Formal Definition and Automatic Detection of Architecture Smells , 2015, 2015 12th Working IEEE/IFIP Conference on Software Architecture.

[5]  Yuanfang Cai,et al.  Detecting and Quantifying Architectural Debt: Theory and Practice , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).

[6]  Antonio Martini,et al.  Identifying and Prioritizing Architectural Debt Through Architectural Smells: A Case Study in a Large Software Company , 2018, ECSA.

[7]  Patricia Lago,et al.  Architectural Technical Debt Identification: The Research Landscape , 2018, 2018 IEEE/ACM International Conference on Technical Debt (TechDebt).

[8]  Alessandro F. Garcia,et al.  On the Relevance of Code Anomalies for Identifying Architecture Degradation Symptoms , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.

[9]  Diomidis Spinellis,et al.  A survey on software smells , 2018, J. Syst. Softw..

[10]  Neil A. Ernst,et al.  Measure it? Manage it? Ignore it? software practitioners and technical debt , 2015, ESEC/SIGSOFT FSE.

[11]  Alberto Sillitti,et al.  Analyzing Forty Years of Software Maintenance Models , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).

[12]  Girish Suryanarayana,et al.  Refactoring for Software Design Smells: Managing Technical Debt , 2014 .

[13]  Thomas J. Mowbray,et al.  AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis , 1998 .

[14]  Sebastian Herold,et al.  Architecture consistency: State of the practice, challenges and requirements , 2017, Empirical Software Engineering.

[15]  Girish Suryanarayana,et al.  Towards a Principle-based Classification of Structural Design Smells , 2013, J. Object Technol..

[16]  Nenad Medvidovic,et al.  Toward a Catalogue of Architectural Bad Smells , 2009, QoSA.

[17]  Jens Dietrich,et al.  On the Existence of High-Impact Refactoring Opportunities in Programs , 2012, ACSC.

[18]  Claudia Raibulet,et al.  An Experience Report on Detecting and Repairing Software Architecture Erosion , 2016, 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA).

[19]  Nenad Medvidovic,et al.  Relating Architectural Decay and Sustainability of Software Systems , 2016, 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA).

[20]  Francesca Arcelli Fontana,et al.  Automatic Detection of Instability Architectural Smells , 2016, 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[21]  Francesca Arcelli Fontana,et al.  On evaluating the impact of the refactoring of architectural problems on software quality , 2016, XP Workshops.

[22]  Francesca Arcelli Fontana,et al.  Automatic detection of bad smells in code: An experimental assessment , 2012, J. Object Technol..

[23]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[24]  M. Mäntylä,et al.  Subjective evaluation of software evolvability using code smells: An empirical study , 2006, Empirical Software Engineering.

[25]  David Notkin,et al.  Software Reflexion Models: Bridging the Gap between Design and Implementation , 2001, IEEE Trans. Software Eng..

[26]  Claus Pahl,et al.  Architectural Patterns for Microservices: A Systematic Mapping Study , 2018, CLOSER.