SlideShare a Scribd company logo
Architectural Smells Detected
by Tools: a Catalogue Proposal
Umberto Azadi
u.azadi@campus.unimib.it
Francesca Arcelli Fontana
arcelli@disco.unimib.it
Davide Taibi
davide.taibi@tut.fi
What is an
Architectural Smell?
27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 1
What is an
Architectural Smell? Poor or
rushed design
choices
Architectural
Smells
27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 1
Architectural
problems or
anomalies
What is an
Architectural Smell? Poor or
rushed design
choices
Architectural
Debt
increases
Architectural
Smells
27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 1
Software
faults, failures
or quality
downfalls
Architectural
problems or
anomalies
What is an
Architectural Smell? Poor or
rushed design
choices
Architectural
Debt
increases
Architectural
Smells
27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 1
Architectural
Erosion
Software
faults, failures
or quality
downfalls
Architectural
problems or
anomalies
What is an
Architectural Smell? Poor or
rushed design
choices
Architectural
Debt
increases
Architectural
Smells
27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 1
Objectives of our work
Q1: Which Architectural Smells are detected by at least one tool?
Q1.1: Can we provide a catalogue of these Architectural Smells?
Q2: How an Architectural Smell is detected?
Which are the main differences in the detection rules adopted by different tools?
Q3: Which kind of classification/s of Architectural Smells can be proposed?
27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 2
Related Works
Number of smells Number of categories Main focus
Garcia et al. (2009) 4 No categorization Industrial usefulness
Le et al. (2015, 2016) 11 4 Architectural Recovery
Lippert and Roock (2006) 30 3 Exhaustiveness
Ganesh et al. (2014) 25 4
Design Principles-based
classification
Mo et al. (2015) 5 No categorization Change and Error proneness
Our work 12 3 Automatic detection
27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 3
Study design
1
Selection
ofthe
tools
2
Selection
ofthe
sm
ells
3
Classification
ofthe
Architecturalsm
ells
4
Com
parison
ofthe
detection
strategies
27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 4
1 Selection of the tools1
The list of smells detected;
A definition or a description of each smell
detected;
At least a high-level description or the
implementation of the detection strategy/rule
used for each smell.
Selection
Criteria
27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 5
Tools Selected
ARCADE
Hotspot Detector Massey Architecture Explorer
Arcan
27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 6
1 Selection of the smells
2
All the smells
definitions for each tool
The definitions of the
Architectural Smells only
Catalogue of
Architectural Smells
Smell evaluation and filtering:
All the smells more closely related to the
concept of code smell have been filtered out
Architectural smells linkage:
All the Architectural Smells with an identical or
similar description have been joined together.
27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 7
AI
Reviewer
ARCADE Arcan Designite
Hotspot
Detector
Massey
Architecture
Explorer
Sonargraph STAN
Structure
101
Cyclic Dependency ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Cyclic Hierarchy ✔ ✔
Hub-like Dependency ✔ ✔
Architectural Violation
God Component ✔ ✔
Implicit Cross-module Dependency ✔
Unstable Dependency
Abstraction without Decoupling
Ambiguous Interface
Multipath Hierarchy
Scattered Functionality
Unutilized Abstraction
Q1: Which Architectural Smells are detected by at least one tool?
27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 8
1
Classification of the Architectural smells
based on the Design principles violations3
Modularity
HierarchyAbstraction
Encapsulation
Classification
proposed by
Ganesh et al. (2014)
Modularity is the property of a system that has been
decomposed into a set of cohesive and loosely
coupled modules.
Hierarchy is a ranking or ordering of abstractions.
An abstraction denotes the essential characteristics of an object
that distinguish it from all other kinds of objects and thus provides
crisply defined conceptual boundaries, relative to the perspective of
the viewer.
Too closely
related to the
concept of
code smell
Healthy
Dependency
Structure
The dependency structure of a (sub-)system is
considered unhealthy when it promotes a chain of
changes in the system each time it is modified.
27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 9
Q3: Which kind of classification of
Architectural Smells can be proposed?
Multipath
Hierarchy
Cyclic
Hierarchy
Unutilized
Abstraction
Ambiguous
Interface
God
Component
Cyclic
Dependency
Hub-like
Dependency
Unstable
Dependency
Scattered
Functionality
Abstraction
without
Decoupling
Implicit
Cross-module
Dependency
Architectural
Violation
Modularity Hierarchy
Healthy Dependency Structure
27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 10
1 Comparison of the
detection strategies
4
Modularity Healthy Dependency Structure Hierarchy
Hierarchy
Graphs
Software
Quality
Metrics
Dependency
Graph
Concern
Detection
Software
Changes
A
B C
D E
27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 11
Q2: How an Architectural Smell is detected?
Q1.1:
Can we provide
a catalogue of these
Architectural Smells?
Name
Also Known As
Description
Variant/s
Violated principle/s
Tools
Detection Comparison
Description Template
27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 12
Conclusion
Q1: Which Architectural Smells are detected by at least one tool?
○ 12 Architectural Smells gathered by 9 detection tools;
Q2: How an Architectural Smell is detected?
○ 5 main approaches different based on the category;
Q3: Which kind of classification of Architectural Smells can be proposed?
○ 3 not exclusive categories related to the design principles violation;
Future development
Considering to extend
this catalog to
microservices smells
Extend the template in the
catalogue by considering also
possible refactoring
suggestions
Extend and refine the
catalogue by considering
other detector tools
Refine the classification
and evaluate other
kinds of classification
27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 13
Thank you for your
attention
References
Garcia et al (2009) Garcia J., Popescu D., Edwards G., Medvidovic N., Toward a Catalogue of Architectural Bad Smells. In: Mirandola R., Gorton I.,
Hofmeister C. (eds) Architectures for Adaptive Software Systems. QoSA 2009. Lecture Notes in Computer Science, vol 5581, 2009. Springer, Berlin,
Heidelberg. doi: https://doi.org/10.1007/978-3-642-02351-4_10
Le et al (2015) D. M. Le, P. Behnamghader, J. Garcia, D. Link, A. Shahbazian and N. Medvidovic, "An Empirical Study of Architectural Change in
Open-Source Software Systems," 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories, Florence, 2015, pp. 235-245. doi:
10.1109/MSR.2015.29
Le et al (2016) D. M. Le, C. Carrillo, R. Capilla and N. Medvidovic, "Relating Architectural Decay and Sustainability of Software Systems," 2016 13th
Working IEEE/IFIP Conference on Software Architecture (WICSA), Venice, 2016, pp. 178-181. doi: 10.1109/WICSA.2016.15
Lippert and Roock (2006) M. Lippert and S. Roock, “Refactoring in Large Software Projects: Performing Complex Restructurings Successfully”.
Wiley, May 2006.
Ganesh et al. (2014) Ganesh Samarthyam, G. Suryanarayana and Tushar Sharma, “Refactoring for Software Design Smells: Managing Technical
Debt”. Burlington, Massachusetts, USA: Morgan Kaufmann, 2014.
Mo et al. (2015) R. Mo, Y. Cai, R. Kazman and L. Xiao, "Hotspot Patterns: The Formal Definition and Automatic Detection of Architecture Smells,"
2015 12th Working IEEE/IFIP Conference on Software Architecture, Montreal, QC, 2015, pp. 51-60. doi: 10.1109/WICSA.2015.12

More Related Content

What's hot

Flutter vs React Native 2019
Flutter vs React Native 2019Flutter vs React Native 2019
Flutter vs React Native 2019
Rockers Technology
 
Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version Control
Jeremy Coates
 
Trunk based development for Beginners
Trunk based development for BeginnersTrunk based development for Beginners
Trunk based development for Beginners
Nebulaworks
 
GitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott RigbyGitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott Rigby
Weaveworks
 
Lets talk about: Azure Kubernetes Service (AKS)
Lets talk about: Azure Kubernetes Service (AKS)Lets talk about: Azure Kubernetes Service (AKS)
Lets talk about: Azure Kubernetes Service (AKS)
Pedro Sousa
 
2023 May Patch Tuesday
2023 May Patch Tuesday2023 May Patch Tuesday
2023 May Patch Tuesday
Ivanti
 
Low-code Platform: Tìm hiểu về nền tảng ít lập trình
Low-code Platform: Tìm hiểu về nền tảng ít lập trìnhLow-code Platform: Tìm hiểu về nền tảng ít lập trình
Low-code Platform: Tìm hiểu về nền tảng ít lập trình
Ho Quang Thanh
 
.Net Core
.Net Core.Net Core
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandCI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
Troublemaker Khunpech
 
Cluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards KubernetesCluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards Kubernetes
QAware GmbH
 
Breaking the Monolith
Breaking the MonolithBreaking the Monolith
Breaking the Monolith
VMware Tanzu
 
Intro to Azure DevOps
Intro to Azure DevOpsIntro to Azure DevOps
Intro to Azure DevOps
Lorenzo Barbieri
 
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
Simplilearn
 
2020-02-20 - HashiCorpUserGroup Madring - Integrating HashiCorp Vault and Kub...
2020-02-20 - HashiCorpUserGroup Madring - Integrating HashiCorp Vault and Kub...2020-02-20 - HashiCorpUserGroup Madring - Integrating HashiCorp Vault and Kub...
2020-02-20 - HashiCorpUserGroup Madring - Integrating HashiCorp Vault and Kub...
Andrey Devyatkin
 
Get started with gitops and flux
Get started with gitops and fluxGet started with gitops and flux
Get started with gitops and flux
LibbySchulze1
 
CI/CD Pipeline as a Code using Jenkins 2
CI/CD Pipeline as a Code using Jenkins 2CI/CD Pipeline as a Code using Jenkins 2
CI/CD Pipeline as a Code using Jenkins 2
Mayank Patel
 
.NET Core, ASP.NET Core Course, Session 6
.NET Core, ASP.NET Core Course, Session 6.NET Core, ASP.NET Core Course, Session 6
.NET Core, ASP.NET Core Course, Session 6
aminmesbahi
 
CI/CT/CD and Role of Quality Engineering
CI/CT/CD and Role of Quality EngineeringCI/CT/CD and Role of Quality Engineering
CI/CT/CD and Role of Quality Engineering
Sushma
 
Gitops: a new paradigm for software defined operations
Gitops: a new paradigm for software defined operationsGitops: a new paradigm for software defined operations
Gitops: a new paradigm for software defined operations
Mariano Cunietti
 
Build beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutterBuild beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutter
RobertLe30
 

What's hot (20)

Flutter vs React Native 2019
Flutter vs React Native 2019Flutter vs React Native 2019
Flutter vs React Native 2019
 
Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version Control
 
Trunk based development for Beginners
Trunk based development for BeginnersTrunk based development for Beginners
Trunk based development for Beginners
 
GitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott RigbyGitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott Rigby
 
Lets talk about: Azure Kubernetes Service (AKS)
Lets talk about: Azure Kubernetes Service (AKS)Lets talk about: Azure Kubernetes Service (AKS)
Lets talk about: Azure Kubernetes Service (AKS)
 
2023 May Patch Tuesday
2023 May Patch Tuesday2023 May Patch Tuesday
2023 May Patch Tuesday
 
Low-code Platform: Tìm hiểu về nền tảng ít lập trình
Low-code Platform: Tìm hiểu về nền tảng ít lập trìnhLow-code Platform: Tìm hiểu về nền tảng ít lập trình
Low-code Platform: Tìm hiểu về nền tảng ít lập trình
 
.Net Core
.Net Core.Net Core
.Net Core
 
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandCI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
 
Cluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards KubernetesCluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards Kubernetes
 
Breaking the Monolith
Breaking the MonolithBreaking the Monolith
Breaking the Monolith
 
Intro to Azure DevOps
Intro to Azure DevOpsIntro to Azure DevOps
Intro to Azure DevOps
 
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
 
2020-02-20 - HashiCorpUserGroup Madring - Integrating HashiCorp Vault and Kub...
2020-02-20 - HashiCorpUserGroup Madring - Integrating HashiCorp Vault and Kub...2020-02-20 - HashiCorpUserGroup Madring - Integrating HashiCorp Vault and Kub...
2020-02-20 - HashiCorpUserGroup Madring - Integrating HashiCorp Vault and Kub...
 
Get started with gitops and flux
Get started with gitops and fluxGet started with gitops and flux
Get started with gitops and flux
 
CI/CD Pipeline as a Code using Jenkins 2
CI/CD Pipeline as a Code using Jenkins 2CI/CD Pipeline as a Code using Jenkins 2
CI/CD Pipeline as a Code using Jenkins 2
 
.NET Core, ASP.NET Core Course, Session 6
.NET Core, ASP.NET Core Course, Session 6.NET Core, ASP.NET Core Course, Session 6
.NET Core, ASP.NET Core Course, Session 6
 
CI/CT/CD and Role of Quality Engineering
CI/CT/CD and Role of Quality EngineeringCI/CT/CD and Role of Quality Engineering
CI/CT/CD and Role of Quality Engineering
 
Gitops: a new paradigm for software defined operations
Gitops: a new paradigm for software defined operationsGitops: a new paradigm for software defined operations
Gitops: a new paradigm for software defined operations
 
Build beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutterBuild beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutter
 

Similar to Architectural Smells Detected by Tools: a Catalogue Proposal

Exploiting dynamic analysis for architectural smell detection: a preliminary ...
Exploiting dynamic analysis for architectural smell detection: a preliminary ...Exploiting dynamic analysis for architectural smell detection: a preliminary ...
Exploiting dynamic analysis for architectural smell detection: a preliminary ...
SEAA 2022
 
Towards a Principle-based Classification of Structural Design Smells
Towards a Principle-based Classification of Structural Design SmellsTowards a Principle-based Classification of Structural Design Smells
Towards a Principle-based Classification of Structural Design Smells
Tushar Sharma
 
Design Circular Colours
Design Circular ColoursDesign Circular Colours
Design Circular Colours
Systemic Design Association (SDA)
 
Needs challenges and_opportunites_in_architectural_languages (bolzano_dec2013)
Needs challenges and_opportunites_in_architectural_languages (bolzano_dec2013)Needs challenges and_opportunites_in_architectural_languages (bolzano_dec2013)
Needs challenges and_opportunites_in_architectural_languages (bolzano_dec2013)
Henry Muccini
 
Synopsis minor project
Synopsis minor projectSynopsis minor project
Synopsis minor project
Nidhi Chauhan
 
Synopsis ( Code Smells)
Synopsis ( Code Smells)Synopsis ( Code Smells)
Synopsis ( Code Smells)
DeepAnshu Sharma
 
From Microservices to Serverless. A new hype or a new hope?
From Microservices to Serverless. A new hype or a new hope?From Microservices to Serverless. A new hype or a new hope?
From Microservices to Serverless. A new hype or a new hope?
Davide Taibi
 
How to Write Abstracts
How to Write AbstractsHow to Write Abstracts
How to Write Abstracts
CodeOps Technologies LLP
 
How to Write Abstracts (for White Papers, Research Papers, ...)
How to Write Abstracts (for White Papers, Research Papers, ...)How to Write Abstracts (for White Papers, Research Papers, ...)
How to Write Abstracts (for White Papers, Research Papers, ...)
Ganesh Samarthyam
 
Assessing the impact of a user item collaborative attack on class of users
Assessing the impact of a user item collaborative attack on class of usersAssessing the impact of a user item collaborative attack on class of users
Assessing the impact of a user item collaborative attack on class of users
FeliceAntonioMerra
 
Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013
Henry Muccini
 
SLAS 2017 - "Multiple Research Platforms: One Single Data Sharing Portal"
SLAS 2017 - "Multiple Research Platforms:  One Single Data Sharing Portal"SLAS 2017 - "Multiple Research Platforms:  One Single Data Sharing Portal"
SLAS 2017 - "Multiple Research Platforms: One Single Data Sharing Portal"
CSols, Inc.
 
Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]
Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]
Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]
Yuriy Tymchuk
 
Go open2010 sde_20100417
Go open2010 sde_20100417Go open2010 sde_20100417
Go open2010 sde_20100417
Sandro D'Elia
 
6.1 method for system design for sustainability vezzoli 14-15 (71)
6.1 method for system design for sustainability vezzoli 14-15 (71)6.1 method for system design for sustainability vezzoli 14-15 (71)
6.1 method for system design for sustainability vezzoli 14-15 (71)
LeNS_slide
 
6.1 method for system design for sustainability vezzoli 14-15 (71)
6.1 method for system design for sustainability vezzoli 14-15 (71)6.1 method for system design for sustainability vezzoli 14-15 (71)
6.1 method for system design for sustainability vezzoli 14-15 (71)
Emanuela Emy
 
OpenAIRE provide dashboard #OpenAIREweek2020
OpenAIRE provide dashboard #OpenAIREweek2020OpenAIRE provide dashboard #OpenAIREweek2020
OpenAIRE provide dashboard #OpenAIREweek2020
Pedro Príncipe
 
V5 i3201613
V5 i3201613V5 i3201613
V5 i3201613
kisekkaVicent2
 
0.0 Sds Course Introduction Vezzoli 07 08 (28.10.08)
0.0 Sds Course Introduction Vezzoli 07 08 (28.10.08)0.0 Sds Course Introduction Vezzoli 07 08 (28.10.08)
0.0 Sds Course Introduction Vezzoli 07 08 (28.10.08)
vezzoli
 
Refactoring for Design Smells - ICSE 2014 Tutorial
Refactoring for Design Smells - ICSE 2014 TutorialRefactoring for Design Smells - ICSE 2014 Tutorial
Refactoring for Design Smells - ICSE 2014 Tutorial
Tushar Sharma
 

Similar to Architectural Smells Detected by Tools: a Catalogue Proposal (20)

Exploiting dynamic analysis for architectural smell detection: a preliminary ...
Exploiting dynamic analysis for architectural smell detection: a preliminary ...Exploiting dynamic analysis for architectural smell detection: a preliminary ...
Exploiting dynamic analysis for architectural smell detection: a preliminary ...
 
Towards a Principle-based Classification of Structural Design Smells
Towards a Principle-based Classification of Structural Design SmellsTowards a Principle-based Classification of Structural Design Smells
Towards a Principle-based Classification of Structural Design Smells
 
Design Circular Colours
Design Circular ColoursDesign Circular Colours
Design Circular Colours
 
Needs challenges and_opportunites_in_architectural_languages (bolzano_dec2013)
Needs challenges and_opportunites_in_architectural_languages (bolzano_dec2013)Needs challenges and_opportunites_in_architectural_languages (bolzano_dec2013)
Needs challenges and_opportunites_in_architectural_languages (bolzano_dec2013)
 
Synopsis minor project
Synopsis minor projectSynopsis minor project
Synopsis minor project
 
Synopsis ( Code Smells)
Synopsis ( Code Smells)Synopsis ( Code Smells)
Synopsis ( Code Smells)
 
From Microservices to Serverless. A new hype or a new hope?
From Microservices to Serverless. A new hype or a new hope?From Microservices to Serverless. A new hype or a new hope?
From Microservices to Serverless. A new hype or a new hope?
 
How to Write Abstracts
How to Write AbstractsHow to Write Abstracts
How to Write Abstracts
 
How to Write Abstracts (for White Papers, Research Papers, ...)
How to Write Abstracts (for White Papers, Research Papers, ...)How to Write Abstracts (for White Papers, Research Papers, ...)
How to Write Abstracts (for White Papers, Research Papers, ...)
 
Assessing the impact of a user item collaborative attack on class of users
Assessing the impact of a user item collaborative attack on class of usersAssessing the impact of a user item collaborative attack on class of users
Assessing the impact of a user item collaborative attack on class of users
 
Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013
 
SLAS 2017 - "Multiple Research Platforms: One Single Data Sharing Portal"
SLAS 2017 - "Multiple Research Platforms:  One Single Data Sharing Portal"SLAS 2017 - "Multiple Research Platforms:  One Single Data Sharing Portal"
SLAS 2017 - "Multiple Research Platforms: One Single Data Sharing Portal"
 
Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]
Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]
Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]
 
Go open2010 sde_20100417
Go open2010 sde_20100417Go open2010 sde_20100417
Go open2010 sde_20100417
 
6.1 method for system design for sustainability vezzoli 14-15 (71)
6.1 method for system design for sustainability vezzoli 14-15 (71)6.1 method for system design for sustainability vezzoli 14-15 (71)
6.1 method for system design for sustainability vezzoli 14-15 (71)
 
6.1 method for system design for sustainability vezzoli 14-15 (71)
6.1 method for system design for sustainability vezzoli 14-15 (71)6.1 method for system design for sustainability vezzoli 14-15 (71)
6.1 method for system design for sustainability vezzoli 14-15 (71)
 
OpenAIRE provide dashboard #OpenAIREweek2020
OpenAIRE provide dashboard #OpenAIREweek2020OpenAIRE provide dashboard #OpenAIREweek2020
OpenAIRE provide dashboard #OpenAIREweek2020
 
V5 i3201613
V5 i3201613V5 i3201613
V5 i3201613
 
0.0 Sds Course Introduction Vezzoli 07 08 (28.10.08)
0.0 Sds Course Introduction Vezzoli 07 08 (28.10.08)0.0 Sds Course Introduction Vezzoli 07 08 (28.10.08)
0.0 Sds Course Introduction Vezzoli 07 08 (28.10.08)
 
Refactoring for Design Smells - ICSE 2014 Tutorial
Refactoring for Design Smells - ICSE 2014 TutorialRefactoring for Design Smells - ICSE 2014 Tutorial
Refactoring for Design Smells - ICSE 2014 Tutorial
 

Recently uploaded

一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
upoux
 
This study Examines the Effectiveness of Talent Procurement through the Imple...
This study Examines the Effectiveness of Talent Procurement through the Imple...This study Examines the Effectiveness of Talent Procurement through the Imple...
This study Examines the Effectiveness of Talent Procurement through the Imple...
DharmaBanothu
 
Call For Paper -3rd International Conference on Artificial Intelligence Advan...
Call For Paper -3rd International Conference on Artificial Intelligence Advan...Call For Paper -3rd International Conference on Artificial Intelligence Advan...
Call For Paper -3rd International Conference on Artificial Intelligence Advan...
ijseajournal
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
uqyfuc
 
Properties of Fluids, Fluid Statics, Pressure Measurement
Properties of Fluids, Fluid Statics, Pressure MeasurementProperties of Fluids, Fluid Statics, Pressure Measurement
Properties of Fluids, Fluid Statics, Pressure Measurement
Indrajeet sahu
 
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
IJCNCJournal
 
ELS: 2.4.1 POWER ELECTRONICS Course objectives: This course will enable stude...
ELS: 2.4.1 POWER ELECTRONICS Course objectives: This course will enable stude...ELS: 2.4.1 POWER ELECTRONICS Course objectives: This course will enable stude...
ELS: 2.4.1 POWER ELECTRONICS Course objectives: This course will enable stude...
Kuvempu University
 
309475979-Creativity-Innovation-notes-IV-Sem-2016-pdf.pdf
309475979-Creativity-Innovation-notes-IV-Sem-2016-pdf.pdf309475979-Creativity-Innovation-notes-IV-Sem-2016-pdf.pdf
309475979-Creativity-Innovation-notes-IV-Sem-2016-pdf.pdf
Sou Tibon
 
DESIGN AND MANUFACTURE OF CEILING BOARD USING SAWDUST AND WASTE CARTON MATERI...
DESIGN AND MANUFACTURE OF CEILING BOARD USING SAWDUST AND WASTE CARTON MATERI...DESIGN AND MANUFACTURE OF CEILING BOARD USING SAWDUST AND WASTE CARTON MATERI...
DESIGN AND MANUFACTURE OF CEILING BOARD USING SAWDUST AND WASTE CARTON MATERI...
OKORIE1
 
Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
Atif Razi
 
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
upoux
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
aryanpankaj78
 
FUNDAMENTALS OF MECHANICAL ENGINEERING.pdf
FUNDAMENTALS OF MECHANICAL ENGINEERING.pdfFUNDAMENTALS OF MECHANICAL ENGINEERING.pdf
FUNDAMENTALS OF MECHANICAL ENGINEERING.pdf
EMERSON EDUARDO RODRIGUES
 
SENTIMENT ANALYSIS ON PPT AND Project template_.pptx
SENTIMENT ANALYSIS ON PPT AND Project template_.pptxSENTIMENT ANALYSIS ON PPT AND Project template_.pptx
SENTIMENT ANALYSIS ON PPT AND Project template_.pptx
b0754201
 
3rd International Conference on Artificial Intelligence Advances (AIAD 2024)
3rd International Conference on Artificial Intelligence Advances (AIAD 2024)3rd International Conference on Artificial Intelligence Advances (AIAD 2024)
3rd International Conference on Artificial Intelligence Advances (AIAD 2024)
GiselleginaGloria
 
Open Channel Flow: fluid flow with a free surface
Open Channel Flow: fluid flow with a free surfaceOpen Channel Flow: fluid flow with a free surface
Open Channel Flow: fluid flow with a free surface
Indrajeet sahu
 
UNIT-III- DATA CONVERTERS ANALOG TO DIGITAL CONVERTER
UNIT-III- DATA CONVERTERS ANALOG TO DIGITAL CONVERTERUNIT-III- DATA CONVERTERS ANALOG TO DIGITAL CONVERTER
UNIT-III- DATA CONVERTERS ANALOG TO DIGITAL CONVERTER
vmspraneeth
 
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls ChennaiCall Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
paraasingh12 #V08
 
AN INTRODUCTION OF AI & SEARCHING TECHIQUES
AN INTRODUCTION OF AI & SEARCHING TECHIQUESAN INTRODUCTION OF AI & SEARCHING TECHIQUES
AN INTRODUCTION OF AI & SEARCHING TECHIQUES
drshikhapandey2022
 
OOPS_Lab_Manual - programs using C++ programming language
OOPS_Lab_Manual - programs using C++ programming languageOOPS_Lab_Manual - programs using C++ programming language
OOPS_Lab_Manual - programs using C++ programming language
PreethaV16
 

Recently uploaded (20)

一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
 
This study Examines the Effectiveness of Talent Procurement through the Imple...
This study Examines the Effectiveness of Talent Procurement through the Imple...This study Examines the Effectiveness of Talent Procurement through the Imple...
This study Examines the Effectiveness of Talent Procurement through the Imple...
 
Call For Paper -3rd International Conference on Artificial Intelligence Advan...
Call For Paper -3rd International Conference on Artificial Intelligence Advan...Call For Paper -3rd International Conference on Artificial Intelligence Advan...
Call For Paper -3rd International Conference on Artificial Intelligence Advan...
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
Properties of Fluids, Fluid Statics, Pressure Measurement
Properties of Fluids, Fluid Statics, Pressure MeasurementProperties of Fluids, Fluid Statics, Pressure Measurement
Properties of Fluids, Fluid Statics, Pressure Measurement
 
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
Particle Swarm Optimization–Long Short-Term Memory based Channel Estimation w...
 
ELS: 2.4.1 POWER ELECTRONICS Course objectives: This course will enable stude...
ELS: 2.4.1 POWER ELECTRONICS Course objectives: This course will enable stude...ELS: 2.4.1 POWER ELECTRONICS Course objectives: This course will enable stude...
ELS: 2.4.1 POWER ELECTRONICS Course objectives: This course will enable stude...
 
309475979-Creativity-Innovation-notes-IV-Sem-2016-pdf.pdf
309475979-Creativity-Innovation-notes-IV-Sem-2016-pdf.pdf309475979-Creativity-Innovation-notes-IV-Sem-2016-pdf.pdf
309475979-Creativity-Innovation-notes-IV-Sem-2016-pdf.pdf
 
DESIGN AND MANUFACTURE OF CEILING BOARD USING SAWDUST AND WASTE CARTON MATERI...
DESIGN AND MANUFACTURE OF CEILING BOARD USING SAWDUST AND WASTE CARTON MATERI...DESIGN AND MANUFACTURE OF CEILING BOARD USING SAWDUST AND WASTE CARTON MATERI...
DESIGN AND MANUFACTURE OF CEILING BOARD USING SAWDUST AND WASTE CARTON MATERI...
 
Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
 
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
 
FUNDAMENTALS OF MECHANICAL ENGINEERING.pdf
FUNDAMENTALS OF MECHANICAL ENGINEERING.pdfFUNDAMENTALS OF MECHANICAL ENGINEERING.pdf
FUNDAMENTALS OF MECHANICAL ENGINEERING.pdf
 
SENTIMENT ANALYSIS ON PPT AND Project template_.pptx
SENTIMENT ANALYSIS ON PPT AND Project template_.pptxSENTIMENT ANALYSIS ON PPT AND Project template_.pptx
SENTIMENT ANALYSIS ON PPT AND Project template_.pptx
 
3rd International Conference on Artificial Intelligence Advances (AIAD 2024)
3rd International Conference on Artificial Intelligence Advances (AIAD 2024)3rd International Conference on Artificial Intelligence Advances (AIAD 2024)
3rd International Conference on Artificial Intelligence Advances (AIAD 2024)
 
Open Channel Flow: fluid flow with a free surface
Open Channel Flow: fluid flow with a free surfaceOpen Channel Flow: fluid flow with a free surface
Open Channel Flow: fluid flow with a free surface
 
UNIT-III- DATA CONVERTERS ANALOG TO DIGITAL CONVERTER
UNIT-III- DATA CONVERTERS ANALOG TO DIGITAL CONVERTERUNIT-III- DATA CONVERTERS ANALOG TO DIGITAL CONVERTER
UNIT-III- DATA CONVERTERS ANALOG TO DIGITAL CONVERTER
 
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls ChennaiCall Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
 
AN INTRODUCTION OF AI & SEARCHING TECHIQUES
AN INTRODUCTION OF AI & SEARCHING TECHIQUESAN INTRODUCTION OF AI & SEARCHING TECHIQUES
AN INTRODUCTION OF AI & SEARCHING TECHIQUES
 
OOPS_Lab_Manual - programs using C++ programming language
OOPS_Lab_Manual - programs using C++ programming languageOOPS_Lab_Manual - programs using C++ programming language
OOPS_Lab_Manual - programs using C++ programming language
 

Architectural Smells Detected by Tools: a Catalogue Proposal

  • 1. Architectural Smells Detected by Tools: a Catalogue Proposal Umberto Azadi u.azadi@campus.unimib.it Francesca Arcelli Fontana arcelli@disco.unimib.it Davide Taibi davide.taibi@tut.fi
  • 2. What is an Architectural Smell? 27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 1
  • 3. What is an Architectural Smell? Poor or rushed design choices Architectural Smells 27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 1
  • 4. Architectural problems or anomalies What is an Architectural Smell? Poor or rushed design choices Architectural Debt increases Architectural Smells 27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 1
  • 5. Software faults, failures or quality downfalls Architectural problems or anomalies What is an Architectural Smell? Poor or rushed design choices Architectural Debt increases Architectural Smells 27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 1
  • 6. Architectural Erosion Software faults, failures or quality downfalls Architectural problems or anomalies What is an Architectural Smell? Poor or rushed design choices Architectural Debt increases Architectural Smells 27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 1
  • 7. Objectives of our work Q1: Which Architectural Smells are detected by at least one tool? Q1.1: Can we provide a catalogue of these Architectural Smells? Q2: How an Architectural Smell is detected? Which are the main differences in the detection rules adopted by different tools? Q3: Which kind of classification/s of Architectural Smells can be proposed? 27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 2
  • 8. Related Works Number of smells Number of categories Main focus Garcia et al. (2009) 4 No categorization Industrial usefulness Le et al. (2015, 2016) 11 4 Architectural Recovery Lippert and Roock (2006) 30 3 Exhaustiveness Ganesh et al. (2014) 25 4 Design Principles-based classification Mo et al. (2015) 5 No categorization Change and Error proneness Our work 12 3 Automatic detection 27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 3
  • 10. 1 Selection of the tools1 The list of smells detected; A definition or a description of each smell detected; At least a high-level description or the implementation of the detection strategy/rule used for each smell. Selection Criteria 27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 5
  • 11. Tools Selected ARCADE Hotspot Detector Massey Architecture Explorer Arcan 27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 6
  • 12. 1 Selection of the smells 2 All the smells definitions for each tool The definitions of the Architectural Smells only Catalogue of Architectural Smells Smell evaluation and filtering: All the smells more closely related to the concept of code smell have been filtered out Architectural smells linkage: All the Architectural Smells with an identical or similar description have been joined together. 27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 7
  • 13. AI Reviewer ARCADE Arcan Designite Hotspot Detector Massey Architecture Explorer Sonargraph STAN Structure 101 Cyclic Dependency ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ Cyclic Hierarchy ✔ ✔ Hub-like Dependency ✔ ✔ Architectural Violation God Component ✔ ✔ Implicit Cross-module Dependency ✔ Unstable Dependency Abstraction without Decoupling Ambiguous Interface Multipath Hierarchy Scattered Functionality Unutilized Abstraction Q1: Which Architectural Smells are detected by at least one tool? 27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 8
  • 14. 1 Classification of the Architectural smells based on the Design principles violations3 Modularity HierarchyAbstraction Encapsulation Classification proposed by Ganesh et al. (2014) Modularity is the property of a system that has been decomposed into a set of cohesive and loosely coupled modules. Hierarchy is a ranking or ordering of abstractions. An abstraction denotes the essential characteristics of an object that distinguish it from all other kinds of objects and thus provides crisply defined conceptual boundaries, relative to the perspective of the viewer. Too closely related to the concept of code smell Healthy Dependency Structure The dependency structure of a (sub-)system is considered unhealthy when it promotes a chain of changes in the system each time it is modified. 27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 9
  • 15. Q3: Which kind of classification of Architectural Smells can be proposed? Multipath Hierarchy Cyclic Hierarchy Unutilized Abstraction Ambiguous Interface God Component Cyclic Dependency Hub-like Dependency Unstable Dependency Scattered Functionality Abstraction without Decoupling Implicit Cross-module Dependency Architectural Violation Modularity Hierarchy Healthy Dependency Structure 27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 10
  • 16. 1 Comparison of the detection strategies 4 Modularity Healthy Dependency Structure Hierarchy Hierarchy Graphs Software Quality Metrics Dependency Graph Concern Detection Software Changes A B C D E 27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 11 Q2: How an Architectural Smell is detected?
  • 17. Q1.1: Can we provide a catalogue of these Architectural Smells? Name Also Known As Description Variant/s Violated principle/s Tools Detection Comparison Description Template 27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 12
  • 18. Conclusion Q1: Which Architectural Smells are detected by at least one tool? ○ 12 Architectural Smells gathered by 9 detection tools; Q2: How an Architectural Smell is detected? ○ 5 main approaches different based on the category; Q3: Which kind of classification of Architectural Smells can be proposed? ○ 3 not exclusive categories related to the design principles violation;
  • 19. Future development Considering to extend this catalog to microservices smells Extend the template in the catalogue by considering also possible refactoring suggestions Extend and refine the catalogue by considering other detector tools Refine the classification and evaluate other kinds of classification 27/05/2019 Architectural Smells Detected by Tools: a Catalogue Proposal 13
  • 20. Thank you for your attention
  • 21. References Garcia et al (2009) Garcia J., Popescu D., Edwards G., Medvidovic N., Toward a Catalogue of Architectural Bad Smells. In: Mirandola R., Gorton I., Hofmeister C. (eds) Architectures for Adaptive Software Systems. QoSA 2009. Lecture Notes in Computer Science, vol 5581, 2009. Springer, Berlin, Heidelberg. doi: https://doi.org/10.1007/978-3-642-02351-4_10 Le et al (2015) D. M. Le, P. Behnamghader, J. Garcia, D. Link, A. Shahbazian and N. Medvidovic, "An Empirical Study of Architectural Change in Open-Source Software Systems," 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories, Florence, 2015, pp. 235-245. doi: 10.1109/MSR.2015.29 Le et al (2016) D. M. Le, C. Carrillo, R. Capilla and N. Medvidovic, "Relating Architectural Decay and Sustainability of Software Systems," 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA), Venice, 2016, pp. 178-181. doi: 10.1109/WICSA.2016.15 Lippert and Roock (2006) M. Lippert and S. Roock, “Refactoring in Large Software Projects: Performing Complex Restructurings Successfully”. Wiley, May 2006. Ganesh et al. (2014) Ganesh Samarthyam, G. Suryanarayana and Tushar Sharma, “Refactoring for Software Design Smells: Managing Technical Debt”. Burlington, Massachusetts, USA: Morgan Kaufmann, 2014. Mo et al. (2015) R. Mo, Y. Cai, R. Kazman and L. Xiao, "Hotspot Patterns: The Formal Definition and Automatic Detection of Architecture Smells," 2015 12th Working IEEE/IFIP Conference on Software Architecture, Montreal, QC, 2015, pp. 51-60. doi: 10.1109/WICSA.2015.12