Software architecture is an artifact that expresses how the initial concept of a software system has actually been implemented. However, changes to the requirement imply continuous modification of the software system and may affect its architecture. It is expected that when a software system reaches the mature state, the requirements for evolution decrease and its architecture becomes more stable. The paper analyzes how the architecture of a software system evolves during its life cycle, with the aim of obtaining quantitative information on its possible instability after it has been declared mature. The goal is to verify if the architectural instability decreases with the increase of the software system maturity and to identify the software components that are more unstable among multiple releases. The paper proposes metrics that measure the instability of the architecture of a software system and its components through different releases. Open source software projects classified as mature and active and related historical data are analyzed. The results of the empirical study point out that the instability of software projects continues to evolve even after they are declared mature. The proposed metrics give a useful support for investigating the instability of a software project, even if further factors can be analyzed. Furthermore, the study can be replicated on other software systems belonging to different domains and developed using different programming languages.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.