Abstract

Software architecture is crucial in determining success or failure in a variety of software development and design fields. Typically, as a system evolves, software architecture deteriorates. This phenomenon is known as architectural erosion. Several studies have addressed architectural erosion based on different solutions. As a result, the metrics technique is the most prevalent solution for architectural erosion. Nevertheless, a comprehensive description of architectural erosion metrics remains unorganized and scattered. This work aims to conduct a systematic mapping to describe and analyze the architectural erosion metrics to provide an overview of erosion metrics and their current trends. Furthermore, no systematic attempts have been made on architectural erosion metrics. The final samples of this study were specified as a total of 43 included papers. Nearly 100 architectural erosion metrics were found. We proposed nine classifications to address architectural erosion challenges, based on adopted approaches in primary studies. The metrics of architectural erosion provide strong evidence for identifying decay and a rapid enabler factor for the adoption of numerous metrics mechanisms to address architectural erosion. The classification of metrics, which is the first of its kind, benefits researchers and practitioners. However, it can be concluded that various aspects are still ambiguous and require further research on architectural erosion measures.

Highlights

  • Since late 1989, software architecture has appeared as the initial conception of the large-widely structures of software systems

  • All these classifications are defined in Appendix C. Our classification makes it possible to determine the metrics related to each architectural erosion type. This classification of metrics is defined using the prioritization of the proposed metric of an empirical study based on two identified vital criteria: 1) metric repeatability in used approach, which means a measure is considered to be repeatable by how many this metric in stated classification is performed 2) obtained positive value, which refers to what extent the value is being met positively

  • The results indicate that metrics such as FANOUT, FAN-IN, the coupling between objects (CBO), afferent coupling (Ca), and efferent coupling (Ce), size metrics such as line of code (LOC), number of clusters (NOCL), number of classes (NOC), and weighted methods per class (WMC), and Lack of Cohesion in Methods (LCOM) are most commonly used metrics among the various attributes of architectural quality

Read more

Summary

Introduction

Since late 1989, software architecture has appeared as the initial conception of the large-widely structures of software systems. It plays a prominent role in many aspects of software development: analysis, reuse, understanding, evolution, construction, and management. SA plays a pivotal and essential role within the software engineering environment, in software development aspects: understanding, analysis, construction, evolution, reuse, and management; thereby, it's a crucial and high-priority factor to identify success or failure of system development and design [1, 13, 14]. SA is concerned with the high-level structure and system attributes [16, 17] It involves and interacts with software families studying component-based reuse, limited classes of components, domain-particular design, and software analysis [14]. Its prominence and representation have to be led to the initial understanding of the structure of any software system and analyzing crucial early design decisions [18]

Objectives
Results
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call