The Study on Software Architecture Smell Refactoring

The Study on Software Architecture Smell Refactoring

Kuo Jong-Yih, Hsieh Ti-Feng, Lin Yu-De, Lin Hui-Chi
Copyright: © 2024 |Pages: 17
DOI: 10.4018/IJSI.339884
Article PDF Download
Open access articles are freely available for download

Abstract

Maintenance and complexity issues in software development continue to increase because of new requirements and software evolution, and refactoring is required to help software adapt to the changes. The goal of refactoring is to fix smells in the system. Fixing architectural smells requires more effort than other smells because it is tangled in multiple components in the system. Architecture smells refer to commonly used architectural decisions that negatively impact system quality. They cause high software coupling, create complications when developing new requirements, and are hard to test and reuse. This paper presented a tool to analyze the causes of architectural smells such as cyclic dependency and unstable dependency and included a priority metric that could be used to optimize the smell with the most refactoring efforts and simulate the most cost-effective refactoring path sequence for a developer to follow. Using a real case scenario, a refactoring path was evaluated with real refactoring execution, and the validity of the path was verified.
Article Preview
Top

Architecture Smell

Architecture smell is considered to violate the common design principle and affects the internal quality of software. It increases the coupling of components and may break the modularity of the system. Different authors have provided different definitions of AS according to different levels, such as Lippert et al., (2006), who defined AS’s in dependency graphs, packages, subsystems, layers, and so on. Fontana et al., (2019) propose a tool called Arcan developed for the detection of architectural smells. Evaluate the PageRank and Criticality of these smells through the analysis of six projects These architectural smells are categorized into three types based on dependency issues, such as cyclic dependency (CD), unstable dependency (UD), and hub-like dependency (HL). This analysis has provided the architecture smell related to dependency issues, such as cyclic dependency (CD), unstable dependency (UD), and hub-like dependency (HL). Azadi et al., (2019) provide a proposal for AS classification (Figure 1) based on the violation of three design principles, including the principles of modularity (Suryanarayana et al., 2014), hierarchy (Suryanarayana et al., 2014), and healthy dependency structure (Caracciolo et al., 2016).

The AS chosen in this study included CD and UD, which can be detected by the Arcan tool in the detection of three smells in two industrial projects (Arcelli et al., 2016), and both violate the principle of the healthy dependency structure. CD also violates the principle of modularity, making it difficult to modify the requirements in the system and affecting the changeability and reusability of components related to the AS.

Figure 1.

Architectural Smell Classification

IJSI.339884.f01

Complete Article List

Search this Journal:
Reset
Volume 12: 1 Issue (2024)
Volume 11: 1 Issue (2023)
Volume 10: 4 Issues (2022): 2 Released, 2 Forthcoming
Volume 9: 4 Issues (2021)
Volume 8: 4 Issues (2020)
Volume 7: 4 Issues (2019)
Volume 6: 4 Issues (2018)
Volume 5: 4 Issues (2017)
Volume 4: 4 Issues (2016)
Volume 3: 4 Issues (2015)
Volume 2: 4 Issues (2014)
Volume 1: 4 Issues (2013)
View Complete Journal Contents Listing