Reuse in Self-Adaptive Software Systems: A Literature Review

Abstract

Software engineers and researchers in the field are constantly developing new technologies to manage the complexity of current software systems. There is an increasing need for mechanisms that can deal with dynamics in the systems’ environment, goals, and requirements. Self-adaptive software systems are a solution to manage the complexity caused by dynamics or runtime variations. Software reuse is a classical solution to deal with complexity and increase the quality of a system in a systematic and efficient way. Despite the large amount of research on self-adaptation, no systematic study has been found, which surveys and reports the application of reuse methods and techniques for the development of self-adaptive software systems. A systematic analysis of reuse methods and techniques for the development of self-adaptive systems is interesting as it provides useful insights for researchers and practitioners in the self-adaptive area. This study systematically reviews relevant research work published between the years 2000 and 2020 at eight well-known venues on self-adaptation and software engineering. By following the systematic litera-ture review method, 97 studies were reviewed and 40 primary studies identi-fied for addressing the research questions. The main objectives of the review are 1) to collect and analyse the reuse-based methods studied and applied for the design and development of self-adaptive software systems, 2) analyse the challenges in the application of reuse-based methods for the development of self-adaptive software systems. The review shows that most of the analysed studies support reuse with component-based software engineering. The pri-mary studies propose different reuse-based methods to allow faster and sim-pler development of self-adaptive systems. Furthermore, the analysis shows that the reviewed studies report several challenges related to the configura-tion process, design, performance and uncertainty in the application of reuse methods for the development of self-adaptive systems

    Similar works