Analyzing Software Architecture Evolvability Based on Multiple Architectural Attributes Measurements

2019 
When the erosion of software architecture occurs, there is an increase in software maintenance costs, a decrease in software quality, and degradation of software performance, etc. Therefore, it is particularly crucial to find a feasible way to evaluate software architecture to detect and avoid the erosion of software architecture in a timely manner. Through empirical study, we find that software architecture (SA) evolvability is one of the critical causes that leads to the erosion of software architecture. In this paper, we propose an approach to analyze SA evolvability based on multiple architectural attribute measurements and further solve the above problems in software architecture evolution. Our approach consists of the following steps: first, according to the evolutionary process, we propose four corresponding architectural attributes; second, these attributes are measured based on basic information and dependency information; third, SA evolvability is measured based on multiple architectural attribute measurements. Our experiments are conducted on thirteen Java open-source projects to verify the effectiveness of our approach. The experimental results show that our approach can effectively reflect the SA evolvability from the following two aspects: a single attribute can reflect a specific aspect of the SA evolvability; the composition of attributes can reflect the composite SA evolvability. Furthermore, we can locate the causes of the erosion of SA by combining the measurements and the evolutionary activities, and we further propose evolutionary proposals to improve the SA evolvability.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    38
    References
    0
    Citations
    NaN
    KQI
    []