Article Preview
Top1. Introduction
Perry and Wolf introduced the significance and foundation of software architecture (Taylor et al., 2021). A software system’s architecture is the system’s structure in terms of the program units (components) with externally visible proper- ties and connections between these components (Bass et al., 2003; Hasselbring, 2018). Semantically, the high-level design of a system bridges the gap between the problem space (requirements) and the solution space (implementation). The architecture of a system can be represented in different ways that are (Land, 2002; Malavolta et al., 2013; Hasselbring, 2018): (i) informally by utilizing boxes-and-lines, (ii) semi-formally by utilizing a modeling language (e.g., UML) (Deryugina et al., 2019) and (iii) formally by utilizing an Architectural Description Language (ADL) (Fuxman, 2000).
For software systems, architecture dependent on boxes and lines has constrained expressiveness-ability; henceforth, it’s not valuable for in-depth analysis and documentation. Interestingly, a formal portrayal dependent on an ADL includes further subtle elements and depictions of the design, which can be helpful for various purposes (e.g., better dependency and consistency analyses) (Taylor, 2019). Despite its promising highlights, ADLs are not generally utilized in industry (Fuxman, 2000) due to the trouble of utilization and the absence of tool support. The primary explanations behind this are ADLs are created in confinement (Garlan et al., 2010), ADLs are not general purpose (Woods and Bashroush, 2012), have no standard (Mishra and Dutt, 2005), produced for scholastic viewpoint (Fuxman, 2000) and communication gap among researchers and practitioners (Bradbury et al., 2004). Due to convenience, UML-based representation is being utilized at a wider scale in the industry (Fuxman, 2000; Taylor, 2019). In the software component model survey (OMG, 2007), UML is considered an ADL. Rather than boxes-and-lines portrayal, ADL (and UML) based representation is better for human and machine readability. But UML-based representation does not solve structural and technical issues (Taylor, 2019).
In the existing work, surveys are used to categorize the architecture representations and identify the architecture- related issues. For example, surveys carried out to explore and categorize the features of ADL based representations (Bass et al., 2003; Land, 2002; OMG, 2007; Fuxman, 2000; Kamal and Avgeriou, 2007; Khan et al., 2016; Capilla et al., 2016; Shahin et al., 2014) and identification of architecture related issues (Tian et al., 2019; Tamburri et al., 2019; Othmane and Lamm, 2019; Cai and Kazman, 2019). All these studies are a sort of specialized work as these include findings depending on some pre-defined criteria/ framework. For example, the work in (OMG, 2007; Kamal and Avgeriou, 2007) is carried out for a limited set of ADLs. Tian et al. (Tian et al., 2019) applied grounded theory on 207 Stack Overflow posts to extract architecture smells. In another paper, Tamburri et al. (Tamburri et al., 2019) surveyed and identified 10 architecture smells in an agile environment. A tool DV8 (Cai and Kazman, 2019) was developed to detect architecture anti-patterns and measure modularity. Similarly, Othmane et al. (Othmane and Lamm, 2019) found that architects do not properly document architecture; therefore, a tool based on a gamification mechanism was proposed.