Classification and comparison of architecture evolution-reuse knowledge: A systematic review
MetadataShow full item record
Context: Architecture-centric software evolution (ACSE) enables changes in system?s structure and behaviour while maintaining a global view of the software to address evolution-centric trade-offs. The existing research and practices for ACSE primarily focus on design-time evolution and runtime adaptations to accommodate changing requirements in existing architectures. Objectives: We aim to identify, taxonomically classify and systematically compare the existing research focused on enabling or enhancing change reuse to support ACSE. Method: We conducted a systematic literature review (SLR) of 32 qualitatively selected studies, and taxonomically classified these studies based on solutions that enable i) empirical acquisition and ii) systematic application of architecture evolution-reuse knowledge to guide ACSE. Results: We identified six distinct research themes that support acquisition and application of architecture evolution-reuse knowledge. We investigated: a) how evolution-reuse knowledge is defined, classified and represented in the existing research to support ACSE, b) what are the existing methods, techniques, and solutions to support: b) empirical acquisition and c) systematic application of architecture evolution-reuse knowledge. Conclusions: Change patterns (34% of selected studies) represent a predominant solution, followed by evolution styles (25%) and adaptation strategies and policies (22%) to enable application of reuse knowledge. Empirical methods for acquisition of reuse knowledge represent 19% including pattern discovery, configuration analysis, evolution and maintenance prediction techniques (approximately 6% each). A lack of focus on empirical acquisition of reuse knowledge suggests the need of solutions with architecture change mining as a complementary and integrated phase for architecture change execution.