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