## 1 Introduction  
The software constantly evolves due to constant technological changes and diversification in their needs, either from the customer or the execution environment. This evolution leads to self-adaptive software systems, whose main feature is adapting the system to the different needs at runtime, either through customer requirements or the environment [1]. In [2], the authors state that facing the challenges associated with changes in runtime system variability has led to the development of various approaches to adapt to changing needs. These approaches include the self-adaptive, agent-based, autonomous, emergent, and bio-inspired systems. Dynamic software product lines (DSPL) are one approach to meet these needs by providing a conceptual framework for managing variability in such systems, generating runtime variability changes, and managing system change according to the needs of the problem context [3]. DSPLs are usually not concerned with pre-runtime system variability, allowing mixed approaches, incorporating points of variation related to the environment's static properties prior to runtime and others related to dynamic properties at runtime [4]. Therefore, variability management throughout the DSPL lifecycle is a central task, where the user, application, or generic middleware can perform these tasks manually or automatically [2]. [PERSON] and [PERSON] grouped several challenges related to DSPL variability [5]. These challenges include detection of feature removal for DSPL approaches, reconfiguration of components, state transfer derived from reconfigurations, the adaptation of interfaces, management of processing contexts, and handling references that are no longer available. Therefore, studying runtime variability through reconfigurations becomes an important issue when it is required to correctly design, build and produce software artifacts using the DSPL approach. [PERSON] et al. [3] mention similar challenges associated with managing runtime variability, such as the need to support evolution regardless of the domain, implementation technique, or modeling approach in DSPL. Securing consistency of the models and the running system to manage runtime variability and support evolution activated by the running system or model, i.e., if the system or model changes its variability, it must be visualized. Over the years, several methodologies have emerged to manage system variability using the DSPL approach, which can be grouped into three major groups [3]. The first approach is related to changes in system customization manually, e.g., updating a software code base. The second approach allows changes to be made manually, while the adaptation process is automated, e.g., through a DevOps process. The third approach presents an autonomous execution environment that automatically allows variability changes and subsequent reconfigurations, providing an optimal execution environment for self-adaptive systems. Variability management in self-adaptive systems using DSPL typically manages adaptation using a MAPE-K approach [3]. This approach provides a framework for logical adaptation of a system based on four phases _Monitoring, Analysis, Planning, and Execution_ that are executed in a particular order and access a shared _Knowledge_ component [6]. Several problems with this approach are presented in [7], such as the need for significant training data and low initial performance due to the online learning of the approach. These problems are similar to those encountered in machine-learning and a massive amount of data, such as the problems reported in using machine-learning in agricultural big data [8]. This work aims to collect several proposed approaches, methodologies, or design patterns for managing runtime variability through software reconfigurations in DSPL for self-adaptive systems present in the literature.