• Corpus ID: 204748461

Toward a Classification Framework for Software Architectural Smells

  title={Toward a Classification Framework for Software Architectural Smells},
  author={Duc Minh Le and Daniel Link and Arman Shahbazian and Yixue Zhao and Chris Mattmann and Nenad Medvidovi{\'c}},
Architectural decay is a commonly occurring phenomenon in long-lived software systems. During a system’s lifetime, its architecture gradually degrades via the appearance of architectural “bad smells”, which are instances of poorly thoughtthrough design decisions. To date, there has been limited in-depth study of this phenomenon, its root causes, its characteristics, or the trends it may follow. Instead, both researchers and practitioners have relied on folklore, and their own intuitions and… 

Figures and Tables from this paper

Architectural smell detection using variable parameters based on project metrics

A new definition is proposed of the God Component, which includes the characteristic of relative size compared to other components in the system, and a threshold-based detection method is proposed, adaptive to the system it analyzes by selecting a system derived or benchmark derived threshold.

A Refactoring Approach for Too Large Packages Using Community Detection and Dependency-based Impacts

This research proposes a refactoring approach for Too Large Packages smell which is one of the architecture smells by using community detection in extracting process and avoids additional impacts from newly appeared dependency-based architecture smell by focusing on Unstable Dependency smell.

Identifying and Evaluating Software Architecture Erosion

These smells violate techniques for defining proper abstraction hierarchies, e.g., apply meaningful classification, ensure substitutability, avoid redundant paths, and ensure proper ordering.



Toward a Catalogue of Architectural Bad Smells

The notion of architectural bad smells, a commonly (although not always intentionally) used set of architectural design decisions that negatively impacts system lifecycle properties, is introduced and four representative architectural smells are described.

Towards a Principle-based Classification of Structural Design Smells

A novel approach is adopted to classify and catalog a number of recurring structural design smells based on how they violate key object oriented (OO) design principles and also highlights several interesting observations and insights that result from the work.

Towards Assessing Software Architecture Quality by Exploiting Code Smell Relations

This paper focuses its attention on the detection of code smells and in particular on their relations and co-occurrences, with the aim to evaluate technical debt in an architectural context.

Are automatically-detected code anomalies relevant to architectural modularity?: an exploratory analysis of evolving systems

An exploratory analysis that investigates to what extent the automatically-detected code anomalies are related to problems that occur with an evolving system's architecture suggests that many of the code anomalies detected by the employed strategies were not related to architectural problems.

Assessing architectural drift in commercial software development: a case study

Assessment of the occurrence of architectural drift in the context of de novo software development, to characterize it, and to evaluate whether its detection leads to inconsistency removal illustrated that detection of inconsistencies was insufficient to prompt their removal, in the small, informal team context studied.

Mapping architectural decay instances to dependency models

The possibility of transforming architectural models and concerns into an extended augmented constraint network (EACN), which can uniformly model the constraints among design decisions and environmental conditions is demonstrated and a pairwise-dependency relation (WDR) can be derived, which can be used to automatically and uniformly detect architectural decay instances.

On the Relevance of Code Anomalies for Identifying Architecture Degradation Symptoms

This paper studied the relationship between code anomalies and architecture problems in 6 software systems, which were intended to adhere different architectural decompositions and found that the refactoring strategies, even when frequently applied in those systems, did not significantly contribute to remove architecturally-relevant code anomalies.

Hierarchical Clustering for Software Architecture Recovery

This paper provides a detailed analysis of the behavior of various similarity and distance measures that may be employed for software clustering, and analyzes the clustering process of various well-known clustering algorithms by using multiple criteria.

Identifying Architectural Bad Smells

This paper defines architectural smells and differentiate them from related concepts, such as architectural antipatterns and code smells, and describes four representative architectural smells the authors encountered in the context of reverse-engineering eighteen grid technologies and refactoring one large industrial system.

DECOR: A Method for the Specification and Detection of Code and Design Smells

DETEX is proposed, a method that embodies and defines all the steps necessary for the specification and detection of code and design smells, and a detection technique that instantiates this method, and an empirical validation in terms of precision and recall of DETEX.