A large-scale study of architectural evolution in open-source software systems
Autor: | Duc Minh Le, Daniel Link, Joshua Garcia, Pooyan Behnamghader, Nenad Medvidovic, Arman Shahbazian |
---|---|
Rok vydání: | 2016 |
Předmět: |
Engineering
Resource-oriented architecture business.industry 020207 software engineering 02 engineering and technology Architectural geometry Architectural pattern 020204 information systems 0202 electrical engineering electronic engineering information engineering Systems engineering Software system Reference architecture Architectural technology Software engineering business Software architecture Software Software architecture description |
Zdroj: | Empirical Software Engineering. 22:1146-1193 |
ISSN: | 1573-7616 1382-3256 |
DOI: | 10.1007/s10664-016-9466-0 |
Popis: | From its very inception, the study of software architecture has recognized architectural decay as a regularly occurring phenomenon in long-lived systems. Architectural decay is caused by repeated, sometimes careless changes to a system during its lifespan. Despite decay's prevalence, there is a relative dearth of empirical data regarding the nature of architectural changes that may lead to decay, and of developers' understanding of those changes. In this paper, we take a step toward addressing that scarcity by introducing an architecture recovery framework, ARCADE, for conducting large-scale replicable empirical studies of architectural change across different versions of a software system. ARCADE includes two novel architectural change metrics, which are the key to enabling large-scale empirical studies of architectural change. We utilize ARCADE to conduct an empirical study of changes found in software architectures spanning several hundred versions of 23 open-source systems. Our study reveals several new findings regarding the frequency of architectural changes in software systems, the common points of departure in a system's architecture during the system's maintenance and evolution, the difference between system-level and component-level architectural change, and the suitability of a system's implementation-level structure as a proxy for its architecture. |
Databáze: | OpenAIRE |
Externí odkaz: |