Variability Management in Dynamic Software Product Lines for Self-Adaptive Systems—A Systematic Mapping
Abstract
:1. Introduction
- RQ1:
- What approach was used to apply constraints during software reconfigurations in DSPL?
- RQ3:
- What methodologies are currently used to manage DSPL variability during reconfigurations?
- RQ3:
- What are the current challenges in the management of DSPL?
2. Background
2.1. Software Product Lines
2.2. Variability
2.3. Dynamic Software Product Lines
2.4. Runtime Variability
2.5. Self-Adaptive Systems
- External principle: A self-adaptive system can autonomously manage changes and uncertainties due to the requirements of the environment, the system itself and its objectives.
- Internal principle: A self-adaptive system contains two components for managing communication with and monitoring of the environment, as well as for executing changes in runtime variability.
3. Related Work
4. Methodology
4.1. Protocol Definition
4.1.1. Aim and Need
- Identify the requirements to generate a software reconfiguration while maintaining stability in the running system during the process.
- Know which technologies, tools, approaches, or others are used during the system reconfiguration process in DSPL and understand the justifications for use in each case.
- Avoid activities or processes already performed by other authors.
- Identify existing challenges in the area of reconfigurations for DSPL.
4.1.2. Definition of Research Questions
4.1.3. Definition of Publication Questions
4.1.4. Data Sources
4.1.5. Search Strategy
- Population: In the Software Engineering community, the population includes a specific role, category, application area, or industry group. We selected an application area, specifically runtime variability management in DSPLs.
- Intervention: An intervention consider a methodology, procedure, technology, or tool that addresses a specific issue. We selected a procedure, specifically the proposals for runtime variability management.
- Comparison: We do not consider comparing the selected papers against a specific variability management proposal (control condition). Then, these criteria do not apply to our study.
- Outcomes: The outcomes of our RQs are the approach to managing variability and the architecture used for the problem solved in each proposal.
- Context: The context for this study are DSPL, reconfiguration proposals to manage runtime variability, and self-adaptive systems.
- adaptation, reconfiguration
- dynamic software product lines, software product lines
- self-adaptive systems, adaptive systems, evolution
4.1.6. Selection Process
4.1.7. Protocol Validation
4.2. Pilot Selection
4.3. Classification Scheme and Extraction
- Title.
- Authors (each one).
- Year of publication.
- Publication type and classification (conference, journal).
- Approach used to manage runtime variability in DSPL.
- methodologies used to manage variability.
- Challenges in DSPL management.
- Results and future work.
4.4. SMS Tool Support
5. Results
5.1. Answers to RQs
5.1.1. RQ1: What Approach Was Used to Apply Constraints during Software Reconfigurations in DSPL?
- Closed Dynamic Variability: This approach aims to support the dynamic activation and deactivation of features that have been predefined in advance in the runtime variability design. A potential execution scenario can be a smart home system, where the context data collected by the installed sensors activate or deactivate some predefined features within the system, allowing it to be implemented in any smart system using sensors. In order to apply new variants to the system would require redesigning the feature model, as this approach does not support unforeseen scenarios, contexts, or features.
- Open Dynamic Variability: This approach allows for unforeseen changes in the design variability at runtime, supporting the addition, removal, and modification of features dynamically, facilitating its application in systems that may need to cope with unforeseen scenarios (e.g., smart cities, robots). This variability mechanism supports unforeseen scenarios in a controlled manner.
- Collaborative features: Seeks to represent features that can exchange context information at runtime for specific purposes, e.g., for real-time and critical systems or swarm systems. The main limitation of this approach is that dynamic changes are not supported.
- No proposed approach.
5.1.2. RQ2: What Methodologies Are Currently Used to Manage DSPL Variability during Reconfigurations?
- Proprietary architecture: Methodologies proposed by the authors are mainly composed of context-aware feature models. The variability in execution time is specified during the design stage. It also contains proposals for reconfigurations based on optimization models or constraint language in variability modeling.
- MAPE-K control loop: Control loop for self-adaptive systems presented by Kephart and Chess [6], which allows managing runtime variability through machine learning. This loop consists of five stages [7]. The stages of MAPE-K control loop are presented in Figure 5.
- 1.
- Monitor: Module in charge of monitoring managed resources and collecting, grouping and filtering data. Monitoring is done through sensors, e.g. IoT devices.
- 2.
- Analyze: Module responsible for analyzing the data provided by the monitor, understanding what the current status is and whether measures should be taken to mitigate needs.
- 3.
- Plan: Module responsible for developing an action plan based on the results of the analysis, this being a set of measures that will take the system from its current state to the desired state.
- 4.
- Execute: Module responsible for the execution of the action plan and the follow-up of the measures adopted in the managed element.
- 5.
- Knowledge: Knowledge is the central node of the control loop and is accessible to all components of the loop, incorporating in addition to the data collected and analyzed, additional elements such as architectural models (in the DSPL context, feature or goal models), policies and change plans [6].
- Third-party software: DSPL proposals that require the use of external software for their main operation.
- Agent-Oriented Software Engineering: Proposals in which methodologies associated with software agents are applied, such as multi-Agent Systems Product Lines.
- No specific methodology.
5.1.3. RQ3: What Are the Current Challenges in the Management of DSPL?
- Techniques: While some mechanisms use general techniques supported by almost all programming languages (e.g., cloning, conditional, and module execution), other mechanisms can only be applied in programming languages or even require a specific environment or tool (Aspect Aspect Orientation, Frame Technology).
- Open variation: Mechanisms that allow open variability can enable external developers to provide software artifacts that extend the system after compilation while allowing the kernel to be treated as a “black box” with additionally defined points of variation.
- Explicit variation points: These are mechanisms in which the possible changes it may contain in its variability are explicitly defined.
- Support of defaults: Seeks to support and mitigate possible errors that runtime variability can generate. For example, Zhang mentions that in some cases where the default selection at a variation point can reduce the number of variants (by one) and simplify the variation logic [47].
- Binding time: In the software lifecycle, specific features are instantiated and bound to a variant at a specific time, either at build time (preprocessing and compilation) or run time. Maintaining a mechanism to manage binding times allows variability to be configured in advance and reconfigurations to be optimized.
- Variant isolation: The code variants for each point of variation are written in a source file or isolated modules or files, allowing grouping, for example, of backup systems.
- Proposal validation: Proposed frameworks to manage variability in execution time, where the methodology must be validated in several areas because they are laboratory tests.
- Granularity: Depending on the variability mechanism used, the granularity of variants differs. Some mechanisms are based on textually describing variants or variation points, admitting any granularity in a source file. In contrast, other mechanisms impose a specific size or shape of variants within the code structure (e.g., a function, a class, or a file).
- Non-code artifacts: Software systems include several types of artifacts in addition to code, for example, variability modeling, data files, or text files. However, some of the mechanisms presented are applicable only to code.
- No challenges mentioned.
5.2. Answers to PQs
5.2.1. PQ1: What Year Was the Article Published?
5.2.2. PQ2: Where Was the Article Published?
6. Discussion
6.1. Interpreting Answers to RQs and PQs
6.1.1. Interpreting Answers to RQs
Interpreting Answers for RQ1
Interpreting Answers for RQ2
Interpreting Answers for RQ3
6.1.2. Interpreting Answers to PQs
Interpreting Answers for PQ1
Interpreting Answers for PQ2
6.2. Relationships between RQs
6.3. Bibliometric Analysis
6.3.1. Most Relevant Terms
6.3.2. Most Relevant Authors
6.4. Threats to Validity
6.4.1. Descriptive Validity
- The information to be collected was structured using various forms of data extraction (for RQs and PQs) through a Google Sheets data spreadsheet to support uniform data recording and ensure the objectivity of the data extraction process.
- Weekly meetings were carried out to unify critical concepts with the research and classification criteria, answer any questions and demonstrate how to carry out the process. All the researchers and assistants participated in these meetings.
6.4.2. Theoretical Validity
- We built a search string and adapted it to the five data sources defined.
- We defined a set of exclusion and inclusion criteria to ensure objectivity in the selection process, in addition to performing cross-checks among researchers to visualize the applicability of the criteria.
- We considered that including articles written in English and discarding studies in other languages could have a minimal impact on this criterion.
- The scope of the study was expanded with a first snowballing search review, according to the guidelines provided by Wohlin [42], obtaining sixteen additional papers for the study.
6.4.3. Generalizability
- We assured that the scope of RQs was broad enough to identify and classify results on different DSPL approaches, regardless of specific cases, and industry type, among others.
- We used taxonomies by other authors to classify two of the three RQs.
6.4.4. Interpretive Validity
- Both researchers reviewed and validated the conclusions of the study.
- A researcher with expertise in the area of variability management in SPL assisted us in interpreting the data.
6.4.5. Repeatability
7. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Acknowledgments
Conflicts of Interest
Appendix A
Ref. | Goal | RQs | Time Span and #Papers | Results |
---|---|---|---|---|
[9] | Provide a review on how to capture variability in DSPLs and how these models behave at runtime. | RQ1: How is requirements variability modelled in approaches for Dynamic software product lines? RQ2: How does the variability configuration process occur in dynamic software product lines? | 2006–2015 #54 papers | The author states that most studies use feature models to capture the variability of DSPLs. For changes in system variability, we obtained that 12 studies occupy NFRs as a guide. However, there are 12 studies that do not specify how they would address this issue. |
[31] | This research aims to identify how SPL engineering has been applied along with the IoT paradigm. | RQ1: How are software product lines (SPL) being applied in the context of the Internet of Things (IoT) systems? RQ2: How is the variability management (VM) of SPL carried out in IoT systems? RQ3: Which approaches, frameworks or platforms use SPL in IoT systems? | 2006–2018 #56 papers | In the SPL context, through domain engineering, a problem space is described to represent customized SPL products for IoT through feature models that extend to a multi-perspective process with variation points, variants, relationships and constraints, applied in application engineering. |
[32] | The study seeks to understand how dynamic derivation is performed in DSPL, by defining the inputs needed to perform dynamic derivation, describing what makes up these inputs, and understanding the process for performing dynamic derivation. | RQ1: What are the needed inputs to perform the dynamic derivation in DSPL? RQ2: How do the models, approaches and methods of software engineering address the dynamic derivation problem in DSPL? RQ3: Are the inputs to the dynamic derivation generated in an automatic way? | 2005–2012 #20 papers | The entries for dynamic derivation can be grouped into two parts. The first, a reconfiguration plan that has information about the changes to be made at runtime. The second part are the features that are the artifacts that change at runtime, where to perform the dynamic derivation a configurator is used, where the most used is the MAPE-K loop. |
[13] | To provide a review the status of the evaluation of reported Variability Management (VM) approaches and synthesize the available evidence on the effects of the reported approaches. | RQ1: How have the variability management approaches in SPLE been evaluated? RQ2: What is the quality of the reported evaluations of the variability management approaches? RQ3: What evidence is available about the effects of variability management approaches? | 1990–2007 #97 papers | The authors state that the evaluation of the presented approaches is less rigorous from a scientific point of view, such as "application of examples", "experience report" and "discussion". This finding indicates a general lack of robust evaluation of most approaches. |
[33] | To provide a study that aims to characterize and identify existing research on the use and exploitation of Software Engineering and SPL engineering. | RQ1: In which fora is research on integrating or combining SO and SPLE principles and practices published? RQ2: What is the focus and objective (motivation) of the existing research results on integrating or combining SO and SPLE principle and practices? what are the identified characteristics of the possible exploitation? RQ3: What are the domains and contexts applied in these proposals? RQ4: What types of research and contribution are represented? | 2000–2011 #81 papers | The main research focus of the identified studies have been service variability modeling, service reuse, service identification, service configuration and customization, dynamic software product line and adaptive systems, where most of the studies have focused on service variability modeling and adaptive systems, applying SPLE principles and approaches. In addition, most of the studies are solution proposals (41.4%) and conceptual proposals (23.4%), with the main focus on modeling and variability management. |
Appendix B
ID | Title Authors Year Source Publisher |
---|---|
SP1 | Comparing Configuration Approaches for Dynamic Software Product Lines. Guedes G, Silva C, Soares M. 2017. SBES’17: Proceedings of the 31st Brazilian Symposium on Software Engineering. |
SP2 | Learning and Evolution in Dynamic Software Product Lines. Sharifloo AM, Metzger A, Quinton C, Baresi L, Pohl K, 2016, SEAMS, ACM. |
SP3 | Optimal Reconfiguration of Dynamic Software Product Lines Based on Performance-Influence Models. Weckesser M, Kluge R, Pfannemüller M, Matthé M, Schürr A, Becker C, 2018, SPLC, ACM. |
SP4 | Tailoring Dynamic Software Product Lines Rosenmüller M, Siegmund N, Pukall M, Apel S, 2011, ACM-SN, ACM. |
SP5 | Model Verification of Dynamic Software Product Lines Santos IS, Rocha LS, Neto PA, Andrade RM, 2016, SBES, ACM. |
SP6 | Extending Dynamic Software Product Lines with Temporal Constraints Sousa G, Rudametkin W, Duchien L, 2017, SEAMS, IEEE. |
SP7 | Using Document-Oriented GUIs in Dynamic Software Product Lines Kramer D, Oussena S, Komisarczuk P, Clark T, 2013, ACM-SN, ACM. |
SP8 | Towards Autonomic Software Product Lines. Abbas N, 2011, SPLC, ACM. |
SP9 | Trace Checking for Dynamic Software Product Lines Olaechea R, Atlee J, Legay A, Fahrenberg U, 2018, SEAMS, ACM. |
SP10 | Executable Modelling of Dynamic Software Product Lines in the ABS Language Muschevici R, Clarke D, Proença J, 2013, FOSD, ACM. |
SP11 | Context Variability Modeling for Runtime Configuration of Service-Based Dynamic Software Product Lines. Murguzur A, Capilla R, Trujillo S, Ortiz Ó, Lopez-Herrejon RE, 2014, SPLC, ACM. |
SP12 | Staged Configuration of Dynamic Software Product Lines with Complex Binding Time Constraints. Bürdek J, Lity S, Lochau M, Berens M, Goltz U, Schürr A, 2014, VaMoS, ACM. |
SP13 | Dynamically Evolving the Structural Variability of Dynamic Software Product Lines. Baresi L, Quinton C, 2015, SEAMS, IEEE. |
SP14 | N-Dimensional Tensor Factorization for Self-Configuration of Software Product Lines at Runtime. Pereira JA, Schulze S, Figueiredo E, Saake G, 2018, SPLC, ACM. |
SP15 | A Formal Foundation for Dynamic Delta-Oriented Software Product Lines. Damiani F, Padovani L, Schaefer I, 2012, GPCE, ACM. |
SP16 | Product Line Engineering of Monitoring Functionality in Industrial Cyber-Physical Systems: A Domain Analysis. Iglesias A, Lu H, Arellano C, Yue T, Ali S, Sagardui G, 2017, SPLC, ACM. |
SP17 | Using Reified Contextual Information for Safe Run-Time Adaptation of Software Product Lines. Sunkle S, Pukall M, 2010, RAM-SE, ACM. |
SP18 | Towards a Software Product Line-Based Approach to Adapt IaaS Cloud Configurations. Ruiz C, Duran-Limon HA, Parlavantzas N, 2016, UCC, ACM. |
SP19 | Dynamic Software Adaptation for Service-Oriented Product Lines. Gomaa H, Hashimoto K, 2011, SPLC, ACM. |
SP20 | Constraint-Based Self-Adaptation of Wireless Sensor Networks. Gamez N, Romero D, Fuentes L, Rouvoy R, Duchien L, 2012, WAS4FI-Mashups, ACM. |
SP21 | Reducing Feature Models to Improve Runtime Adaptivity on Resource Limited Devices. Saller K, Oster S, Schürr A, Schroeter J, Lochau M, 2012, SPLC, ACM. |
SP22 | Evaluation of the State-Constraint Transition Modelling Language: A Goal Question Metric Approach. Achtaich A, Roudies O, Souissi N, Salinesi C, Mazo R, 2019, SPLC, ACM. |
SP23 | An SPL Approach for Adaptive Fault Tolerance in SOA. Nascimento AS, Rubira CM, Lee J, 2011, SPLC, ACM. |
SP24 | Dynamic Variability Management Supporting Operational Modes of a Power Plant Product Line. Capilla R, Bosch J, 2016, VaMoS, ACM. |
SP25 | Using Dynamic Adaptive Systems in Safety-Critical Domains. McGee ET, McGregor JD, 2016, SEAMS, ACM. |
SP26 | Using Constraint-Based Optimization and Variability to Support Continuous Self-Adaptation. Parra C, Romero D, Mosser S, Rouvoy R, Duchien L, Seinturier L, 2012, SAC, ACM. |
SP27 | Context-Aware DSPLs: Model-Based Runtime Adaptation for Resource-Constrained Systems. Saller K, Lochau M, Reimund I, 2013, SPLC, ACM. |
SP28 | Research Contributions on Adaptive Software Architectures: A Brazilian Female Perspective at UNICAMP. Venero SK, Eleutério JD, Rubira CM, 2016, ECSAW, ACM. |
SP29 | Coordinated Run-Time Adaptation of Variability-Intensive Systems: An Application in Cloud Computing. Metzger A, Bayer A, Doyle D, Sharifloo AM, Pohl K, Wessling F, 2016, VACE, ACM. |
SP30 | Runtime Monitoring of Behavioral Properties in Dynamically Adaptive Systems. dos Santos EB, de Castro Andrade RM, de Sousa Santos I, 2019, SBES, ACM. |
SP31 | Modeling Dynamic Adaptations Using Augmented Feature Models. Jean-Baptiste L, Maria-Teresa S, Jean-Marie G, Antoine B, 2013, SAC, ACM. |
SP32 | Safe Adaptation in Context-Aware Feature Models. Marinho FG, Maia PH, Andrade RM, Vidal VM, Costa PA, Werner C, 2012, FOSD, ACM. |
SP33 | Towards an Architecture Model for Dynamic Software Product Lines Engineering. Santos E, Machado I, 2018, IRI, IEEE. |
SP34 | An Approach to Clustering Feature Model Based on Adaptive Behavior for Dynamic Software Product Line. Boonon P, Muenchaisri P, 2014, ICISA, IEEE. |
SP35 | Reconfiguration of Service Failures in DAMASCo Using Dynamic Software Product Lines. Cubo J, Gamez N, Pimentel E, Fuentes L, 2015, SCC, IEEE. |
SP36 | Achieving Knowledge Evolution in Dynamic Software Product Lines. Arcega L, Font J, Haugen Ø, Cetina C, 2016, SANER, IEEE. |
SP37 | A Runtime Variability Mechanism Based on Supertypes. Capilla R, Valdezate A, Díaz F, 2016, FAS*W, IEEE. |
SP38 | Creating adaptive software architecture dynamically for recurring new requirements. Ali N, Hong J, 2017, ICOSST, IEEE. |
SP39 | Combining variability, RCA and feature model for context-awareness. Amja A, Obaid A, Mili H, 2016, INTECH, IEEE. |
SP40 | Towards a DSPL for Context Aware BPM. Khiari B, Jilani L, 2017, AICCSA, IEEE. |
SP41 | Dynamic Constraint Satisfaction Algorithm for Online Feature Model Reconfiguration. Entekhabi S, Karataş A, Oğuztüzün H, 2018, CEIT, IEEE. |
SP42 | Dynamic adaptation and reconfiguration of security in mobile devices. Amoud M, Roudies O, 2017, Cyber Incident, IEEE. |
SP43 | Dynamic SPL and Derivative Development with Uncertainty Management for DevOps. Nakanishi T, Furusho H, Hisazumi K, Fukuda A, 2016, IIAI-AAI, IEEE. |
SP44 | Towards Feature-Oriented Variability Reconfiguration in Dynamic Software Product Lines. ShenXin L, Zhao P, 2011, ICSR, Springer. |
SP45 | Designing a Framework for Smart IoT Adaptations. Achtaich A, Souissi N, Mazo R, Salinesi C, Roudies O, 2018, AFRICATEK, Springer. |
SP46 | SmartyCo: Managing Cyber-Physical Systems for Smart Environments. Romero D, Quinton C, Duchien L, Seinturier L, Valdez C, 2015, ECSA, Springer. |
SP47 | Using Models at Runtime to Adapt Self-managed Agents for the IoT. Ayala I, Horcas JM, Amor M, Fuentes L, 2016, MATES, Springer. |
SP48 | Autonomic Adaptation of Multimedia Content Adhering to Application Mobility. Velázquez-García F, Halvorsen P, Stensland H, Eliassen F, 2018, DAIS, Springer. |
SP49 | Specification and automated validation of staged reconfiguration processes for dynamic software product lines. Lochau M, Bürdek J, Hölzle S, Schürr A, 2017, SoSyM, Springer. |
SP50 | An approach based on feature models and quality criteria for adapting component-based systems. Sanchez L, Diaz-Pace J, Zunino A, Moisan S, Rigault J, 2015, JSERD, Springer. |
SP51 | Context-dependent reconfiguration of autonomous vehicles in mixed traffic. Horcas JM, Monteil J, Bouroche M, Pinto M, Fuentes L, Clarke S, 2018, SEaP, Wiley. |
SP52 | ASPLe: A methodology to develop self-adaptive software systems with systematic reuse. Abbas N, Andersson J, Weyns D, 2020, JSS, Science Direct. |
SP53 | Automating the product derivation process of multi-agent systems product lines. Cirilo E, Nunes I, Kulesza U, Lucena C, 2012, JSS, Science Direct. |
SP54 | Unifying design and runtime software adaptation using aspect models. Parra C, Blanc X, Cleve A, Duchien L, 2011, SoCP, Science Direct. |
SP55 | Prototyping Dynamic Software Product Lines to evaluate run-time reconfigurations. Cetina C, Giner P, Fons J, Pelechano V, 2013, SoCP, Science Direct. |
SP56 | A goal-driven software product line approach for evolving multi-agent systems in the Internet of Things. Ayala I, Amor M, Horcas JM, Fuentes L, 2019, KBS, Science Direct. |
SP57 | Achieving autonomic Web service compositions with models at runtime. Alférez GH, Pelechano V, 2017, C&EE, Science Direct. |
SP58 | Building reliable and maintainable Dynamic Software Product Lines: An investigation in the Body Sensor Network domain. Pessoa L, Fernandes P, Castro T, Alves V, Rodrigues GN, Carvalho H, 2017, IST, Science Direct. |
SP59 | Context-aware reconfiguration in evolving software product lines. Mauro J, Nieke M, Seidl C, Chieh Yu I, 2018, SoCP, Science Direct. |
SP60 | Applying multiobjective evolutionary algorithms to dynamic software product lines for reconfiguring mobile applications. Pascual GG, Lopez-Herrejon RE, Pinto M, Fuentes L, Egyed A, 2015, JSS, Science Direct. |
SP61 | Context-aware energy-efficient applications for cyber-physical systems. Horcas JM, Pinto M, Fuentes L, 2019, AHN, Science Direct. |
SP62 | Self-adaptation of service compositions through product line reconfiguration. Bashari M, Bagheri E, Du W, 2018, JSS, Science Direct. |
SP63 | DyMMer 2.0: A Tool for Dynamic Modeling and Evaluation of Feature Model. Bezerra C, Lima R, Silva P, 2021, SBES, ACM. |
SP64 | Static Analysis Techniques for Efficient Consistency Checking of Real-Time-Aware DSPL Specifications. Göttmann H, Bacher I, Gottwald N, Lochau M, 2021, VaMoS, ACM. |
SP65 | ProDSPL: Proactive self-adaptation based on Dynamic Software Product Lines. Ayala I, Papadopoulos AV, Amor M, Fuentes L, 2021, JSS, Science Direct. |
SP66 | Towards Mastering Variability in Software-Intensive Cyber-Physical Production Systems. Rabiser R, Zoitl A, 2021, PCS, Science Direct. |
SP67 | A Software Product Line Design Based Approach for Real-time Scheduling of Reconfigurable Embedded Systems. Gharsellaoui H, Maazoun J, Bouassida N, Ahmed SB, Ben-Abdallah H, 2021, CHB, Science Direct. |
SP68 | Evolution in dynamic software product lines. Quinton C, Vierhauser M, Rabiser R, Baresi L, Grünbacher P, Schuhmayer C, 2021, SEaP, Wiley. |
SP69 | Transfer learning for multiobjective optimization algorithms supporting dynamic software product lines. Ballesteros J, Fuentes L, 2021, SPLC, ACM. |
SP70 | Dynamically Adaptable Software Is All about Modeling Contextual Variability and Avoiding Failures. de Sousa Santos I, de Jesus Souza M, Luciano Carvalho M, Alves Oliveira T, de Almeida E and de Castro Andrade R, 2017, IEEE-S, IEEE. |
SP71 | A study on dynamic aspects variability in the SOLAR educational software ecosystem. Coutinho E, Bezerra C, 2020, JBCS, Springer. |
SP72 | Variable Recovery and Adaptation Connectors for Dynamic Software Product Lines. Albassam E, Gomaa H and Menascé D, 2017, SPLC, ACM. |
SP73 | Creating Self-Adapting Mobile Systems with Dynamic Software Product Lines. Gamez N, Fuentes L, Troya J, 2015, IEEE-S, IEEE. |
SP74 | A Matter of the Mix: Integration of Compile and Runtime Variability. Eichelberger H, 2016, FAS*W, IEEE. |
SP75 | ArCMAPE: A Software Product Line Infrastructure to Support Fault-Tolerant Composite Services. Nascimento A, Rubira C, Castor F, 2014, HASE, IEEE. |
SP76 | Towards a MAS Product Line Engineering Approach. Boufedji D, Guessoum Z, Brandão A, Ziadi T, Mokhtari A, 2018, EMAS, Springer. |
SP77 | Dynamic Software Product Line Engineering: A Reference Framework. Bashari M, Bagheri E, Du W, 2017, IJSEKE, World Scientific. |
SP78 | Using dynamic software product lines to implement adaptive SGX-enabled systems. Krieter S, Thiem T, Leich T, 2019, VaMoS, ACM. |
SP79 | A Dynamic Software Product Line Approach for Adaptation Planning in Autonomic Computing Systems. Pfannemüller M, Krupitzer C, Weckesser M, Becker C, 2017, ICAC, IEEE. |
SP80 | A component-based adaptation approach for multi-cloud applications. Almeida A, Cavalcante E, Batista T, Cacho N, Lopes F, 2014, INFOCOM WKSHPS, IEEE. |
SP81 | A framework for context-aware self-adaptive mobile applications SPL. Mizouni R, Abu Matar M, Al Mahmoud Z, Alzahmi S, Salah A, 2014, ESA, Science Direct. |
SP82 | Software Product Line Engineering for Developing Self-Adaptive Systems: Towards the Domain Requirements. Shen L, Peng X, Zhao W, 2012, COMPSAC, IEEE. |
SP83 | Using constraint programming to manage configurations in self-adaptive systems. Sawyer P, Mazo R, Diaz D, Salinesi C, Hughes D, 2012, Computer, IEEE. |
SP84 | Dynamic Reconfiguration of Security Policies in Wireless Sensor Networks. Pinto M, Gámez N, Fuentes L, Amor M, Horcas JM, Ayala I, 2015, Sensors, MDPI. |
Appendix C
Acronym | Conference/Workshop Title |
---|---|
AFRICATEK | International Conference on Emerging Technologies for Developing Countries |
AICCSA | ACS/IEEE International Conference on Computer Systems and Applications |
CEIT | International Conference on Control, Engineering & Information Technology |
COMPSAC | Annual International Computer Software and Applications Conference |
Cyber Incident | International Conference on Cyber Incident Response, Coordination, Containment & Control |
ECSA | European Conference on Software Architecture |
ECSAW | European Conference on Software Architecture Workshops |
EMAS | International Workshop on Engineering Multi-Agent Systems |
DAIS | IFIP International Conference on Distributed Applications and Interoperable Systems |
FAS*W | International Workshops on Foundations and Applications of Self Systems |
FOSD | International Workshop on Feature-Oriented Software Development |
HASE | International Symposim on High Assurance Systems Engineering |
ICAC | International Conference on Autonomic Computing |
ICISA | International Conference on Information Science and Applications |
ICOSST | International Conference on Open Source Systems and Technologies |
ICSR | International Conference on Software Reuse |
IIAI-AAI | IIAI International Conference on Advanced Applied Informatics |
INFOCOM WKSHPS | Conference on Computer Communications Workshops |
INTECH | International Conference on Innovative Computing Technology |
IRI | International Conference on Information Reuse and Integration |
MATES | German Conference on Multiagent System Technologies |
RAM-SE | Workshop on Reflection, AOP and Meta-Data for Software Evolution |
SAC | Annual ACM Symposium on Applied Computing |
SANER | International Conference on Software Analysis, Evolution and Reengineering |
SBES | Brazilian Symposium on Software Engineering |
SCC | International Conference on Services Computing |
SEAMS | Symposium on Software Engineering for Adaptive and Self-Managing Systems |
SPLC | International Systems and Software Product Line Conference |
VACE | International Workshop on Variability and Complexity in Software Design |
VaMoS | International Workshop on Variability Modelling of Software-Intensive Systems |
UCC | International Conference on Utility and Cloud Computing |
WAS4FI-Mashups | International Workshop on Adaptive Services for the Future Internet and International Workshop on Web APIs and Service |
Acronym | Journal Title |
---|---|
ACM-SN | ACM SIGPLAN Notices |
AHN | Ad Hoc Networks |
CHB | Computers in Human Behavior |
COM | IEEE Computer Society |
C&EE | Computers & Electrical Engineering |
ESA | Expert Systems with Applications |
IEEE-S | IEEE Software |
IJSEKE | International Journal of Software Engineering and Knowledge Engineering |
IST | Information and Software Technology |
JBCS | Journal of the Brazilian Computer Society |
JSERD | Journal of Software Engineering Research and Development |
JSS | Journal of Systems and Software |
KBS | Knowledge-Based Systems |
PCS | Procedia Computer Science |
SEaP | Journal of Software: Evolution and Process |
SEN | Sensors |
SoCP | Science of Computer Programming |
SoSyM | Software & Systems Modeling |
References
- Weyns, D. Software Engineering of Self-adaptive Systems. In Handbook of Software Engineering; Springer International Publishing: Cham, Switzerland, 2019; pp. 399–443. [Google Scholar] [CrossRef]
- Hinchey, M.; Park, S.; Schmid, K. Building Dynamic Software Product Lines. Computer 2012, 45, 22–26. [Google Scholar] [CrossRef]
- Quinton, C.; Vierhauser, M.; Rabiser, R.; Baresi, L.; Grünbacher, P.; Schuhmayer, C. Evolution in dynamic software product lines. J. Softw. Evol. Process. 2021, 33, e2293. [Google Scholar] [CrossRef]
- Hallsteinsen, S.; Hinchey, M.; Park, S.; Schmid, K. Dynamic Software Product Lines. Computer 2008, 41, 93–95. [Google Scholar] [CrossRef]
- Schmid, K.; Eichelberger, H. From Static to Dynamic Software Product Lines. In Proceedings of the SPLC 2008, Limerick, Ireland, 8–12 September 2008; pp. 33–38. [Google Scholar]
- Kephart, J.; Chess, D. The vision of autonomic computing. Computer 2003, 36, 41–50. [Google Scholar] [CrossRef]
- Abbas, N. Towards autonomic software product lines. In Proceedings of the 15th International Software Product Line Conference, Munich, Germany, 21–26 August 2011; Volume 2, pp. 1–8. [Google Scholar]
- Cravero, A.; Pardo, S.; Sepúlveda, S.; Muñoz, L. Challenges to Use Machine Learning in Agricultural Big Data: A Systematic Literature Review. Agronomy 2022, 12, 748. [Google Scholar] [CrossRef]
- Guedes, G.; Silva, C.; Soares, M.; Castro, J. Variability Management in Dynamic Software Product Lines: A Systematic Mapping. In Proceedings of the 2015 IX Brazilian Symposium on Components, Architectures and Reuse Software, Belo Horizonte, Minas Gerais, Brazil, 21–22 September 2015; pp. 90–99. [Google Scholar] [CrossRef]
- Clements, P.; Northrop, L. Software Product Lines, Course Notes of Product Line Systems Program; Software Engineering Institute, Carnegie Mellon University: Pittsburgh, PA, USA, 2003. [Google Scholar]
- Apel, S.; Batory, D.; Kästner, C.; Saake, G. Software Product Lines. In Feature-Oriented Software Product Lines: Concepts and Implementation; Springer: Berlin/Heidelberg, Germany, 2013; pp. 3–15. [Google Scholar] [CrossRef]
- Deelstra, S.; Sinnema, M.; Bosch, J. Experiences in Software Product Families: Problems and Issues During Product Derivation. In Proceedings of the Software Product Lines; Nord, R.L., Ed.; Springer: Berlin/Heidelberg, Germany, 2004; pp. 165–182. [Google Scholar]
- Chen, L.; Ali Babar, M. A systematic review of evaluation of variability management approaches in software product lines. Inf. Softw. Technol. 2011, 53, 344–362. [Google Scholar] [CrossRef] [Green Version]
- Asikainen, T.; Mannisto, T.; Soininen, T. A unified conceptual foundation for feature modelling. In Proceedings of the 10th International Software Product Line Conference (SPLC’06), Baltimore, MD, USA, 21–24 August 2006; pp. 31–40. [Google Scholar] [CrossRef]
- Pohl, K.; Böckle, G.; Van Der Linden, F. Software Product Line Engineering; Springer: Berlin/Heidelberg, Germany, 2005; Volume 10. [Google Scholar]
- Kang, K.C.; Cohen, S.G.; Hess, J.A.; Novak, W.E.; Peterson, A.S. Feature-Oriented Domain Analysis (FODA) Feasibility Study; Technical Report; Carnegie-Mellon Univ Pittsburgh Pa Software Engineering Inst: Pittsburgh, PA, USA, 1990. [Google Scholar]
- Heradio, R.; Perez-Morago, H.; Fernandez-Amoros, D.; Cabrerizo, F.J.; Herrera-Viedma, E. A bibliometric analysis of 20 years of research on software product lines. Inf. Softw. Technol. 2016, 72, 1–15. [Google Scholar] [CrossRef]
- Gacitúa, R.; Sepúlveda, S.; Mazo, R. FM-CF: A framework for classifying feature model building approaches. J. Syst. Softw. 2019, 154, 1–21. [Google Scholar] [CrossRef]
- Sepúlveda, S.; Cravero, A. Reasoning Algorithms on Feature Modeling—A Systematic Mapping Study. Appl. Sci. 2022, 12, 5563. [Google Scholar] [CrossRef]
- Kim, M.; Park, S. Goal and scenario driven product line development. In Proceedings of the 11th Asia-Pacific Software Engineering Conference, Washington, DC, USA, 30 November–3 December 2004; pp. 584–585. [Google Scholar] [CrossRef]
- Fitzgerald, B.; Stol, K.J. Continuous Software Engineering and beyond: Trends and Challenges. In Proceedings of the 1st International Workshop on Rapid Continuous Software Engineering (RCoSE 2014), Hyderabad, India, 3 June 2014; Association for Computing Machinery: New York, NY, USA, 2014; pp. 1–9. [Google Scholar] [CrossRef] [Green Version]
- Rosenmüller, M.; Siegmund, N.; Pukall, M.; Apel, S. Tailoring dynamic software product lines. In Proceedings of the 10th ACM International Conference on Generative Programming and Component Engineering, Portland, OR, USA, 22–23 October 2011; pp. 3–12. [Google Scholar]
- Santos, I.S.; Rocha, L.S.; Neto, P.A.S.; Andrade, R.M. Model verification of dynamic software product lines. In Proceedings of the 30th Brazilian Symposium on Software Engineering, Maringá, Brazil, 19–23 September 2016; pp. 113–122. [Google Scholar]
- Guedes, G.; Silva, C.; Soares, M. Comparing configuration approaches for dynamic software product lines. In Proceedings of the 31st Brazilian Symposium on Software Engineering, Fortaleza, CE, Brazil, 20–22 September 2017; pp. 134–143. [Google Scholar]
- Salehie, M.; Tahvildari, L. Self-Adaptive Software: Landscape and Research Challenges. ACM Trans. Auton. Adapt. Syst. 2009, 4, 1–42. [Google Scholar] [CrossRef]
- de Lemos, R.; Giese, H.; Müller, H.A.; Shaw, M.; Andersson, J.; Litoiu, M.; Schmerl, B.; Tamura, G.; Villegas, N.M.; Vogel, T.; et al. Software Engineering for Self-Adaptive Systems: A Second Research Roadmap. In Software Engineering for Self-Adaptive Systems II: International Seminar, Dagstuhl Castle, Germany, 24–29 October 2010 Revised Selected and Invited Papers; Springer: Berlin/Heidelberg, Germany, 2013; pp. 1–32. [Google Scholar] [CrossRef] [Green Version]
- Bosch, J.; Capilla, R. Dynamic Variability in Software-Intensive Embedded System Families. Computer 2012, 45, 28–35. [Google Scholar] [CrossRef]
- Galster, M.; Weyns, D.; Tofan, D.; Michalik, B.; Avgeriou, P. Variability in software systems—A systematic literature review. IEEE Trans. Softw. Eng. 2013, 40, 282–306. [Google Scholar] [CrossRef]
- Raatikainen, M.; Tiihonen, J.; Männistö, T. Software product lines and variability modeling: A tertiary study. J. Syst. Softw. 2019, 149, 485–510. [Google Scholar] [CrossRef]
- Jaffari, A.; Lee, J.; Kim, E. Variability Modeling in Software Product Line: A Systematic Literature Review. In Software Engineering in IoT, Big Data, Cloud and Mobile Computing; Springer: Cham, Switzerland, 2021; pp. 1–15. [Google Scholar]
- Geraldi, R.T.; Reinehr, S.; Malucelli, A. Software product line applied to the internet of things: A systematic literature review. Inf. Softw. Technol. 2020, 124, 106293. [Google Scholar] [CrossRef]
- da Silva, J.R.F.; da Silva, F.A.P.; do Nascimento, L.M.; Martins, D.A.O.; Garcia, V.C. The dynamic aspects of product derivation in DSPL: A systematic literature review. In Proceedings of the 2013 IEEE 14th International Conference on Information Reuse and Integration (IRI), San Francisco, CA, USA, 14–18 August 2013; pp. 466–473. [Google Scholar] [CrossRef]
- Mohabbati, B.; Asadi, M.; Gašević, D.; Hatala, M.; Müller, H.A. Combining service-orientation and software product line engineering: A systematic mapping study. Inf. Softw. Technol. 2013, 55, 1845–1859. [Google Scholar] [CrossRef]
- Petersen, K.; Vakkalanka, S.; Kuzniarz, L. Guidelines for conducting systematic mapping studies in software engineering: An update. Inf. Softw. Technol. 2015, 64, 1–18. [Google Scholar] [CrossRef]
- Aguayo, O.; Sepúlveda, S. Systematic Mapping Protocol: Variability Management in Dynamic Software Product Lines for Self-Adaptive Systems. arXiv 2022. [Google Scholar] [CrossRef]
- Kitchenham, B.; Charters, S.; Budgen, S.; Brereton, P.; Turner., M.; Linkman, S.; Jørgensen, M.; Mendes, E.; Visaggio, G. Guidelines for Performing Systematic Literature Reviews in Software Engineering; EBSE Technical Report, EBSE-2007-01; Software Engineering Group, School of Computer Science and Mathematics, Keele University: Keele, UK, 2007. [Google Scholar]
- Brereton, P.; Kitchenham, B.A.; Budgen, D.; Turner, M.; Khalil, M. Lessons from applying the systematic literature review process within the software engineering domain. J. Syst. Softw. 2007, 80, 571–583. [Google Scholar] [CrossRef] [Green Version]
- Petticrew, M.; Roberts, H. How to Find the Studies: The Literature Search. In Systematic Reviews in the Social Sciences; John Wiley & Sons, Ltd.: New York, NY, USA, 2006; Chapter 4; pp. 79–124. [Google Scholar] [CrossRef]
- Sharifloo, A.M.; Metzger, A.; Quinton, C.; Baresi, L.; Pohl, K. Learning and evolution in dynamic software product lines. In Proceedings of the 2016 IEEE/ACM 11th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS), Austin, TX, USA, 16–17 May 2016; pp. 158–164. [Google Scholar]
- Arcega, L.; Font, J.; Haugen, Ø.; Cetina, C. Achieving knowledge evolution in dynamic software product lines. In Proceedings of the 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), Suita, Osaka, Japan, 14–18 March 2016; Volume 1, pp. 505–516. [Google Scholar]
- Gusenbauer, M.; Haddaway, N.R. Which academic search systems are suitable for systematic reviews or meta-analyses? Evaluating retrieval qualities of Google Scholar, PubMed, and 26 other resources. Res. Synth. Methods 2020, 11, 181–217. [Google Scholar] [CrossRef] [Green Version]
- Wohlin, C. Guidelines for Snowballing in Systematic Literature Studies and a Replication in Software Engineering. In Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering (EASE ’14), London, UK, 13–14 May 2014; Association for Computing Machinery: New York, NY, USA, 2014. [Google Scholar] [CrossRef]
- Gwet, K. Inter-rater reliability: Dependency on trait prevalence and marginal homogeneity. Stat. Methods Inter-Rater Reliab. Assess. Ser. 2002, 2, 9. [Google Scholar]
- Fleiss, J.L. Statistical Methods for Rates and Proportions, 2nd ed.; Probability & Mathematical Statistics S.; John Wiley & Sons: Nashville, TN, USA, 1981. [Google Scholar]
- Ancán, O.; Reyes, M. Cabuplot: Categorical Bubble Plot for Systematic Mapping Studies; Departamento de Ciencias de la Computación e Informática, Universidad de La Frontera: Temuco, Chile, 2020. [Google Scholar]
- Mens, K.; Capilla, R.; Cardozo, N.; Dumas, B. A Taxonomy of Context-Aware Software Variability Approaches. In MODULARITY Companion 2016, Proceedings of the 15th International Conference on Modularity, Málaga, Spain, 14–17 March 2016; Association for Computing Machinery: New York, NY, USA, 2016; pp. 119–124. [Google Scholar] [CrossRef]
- Zhang, B.; Duszynski, S.; Becker, M. Variability Mechanisms and Lessons Learned in Practice. In Proceedings of the 1st International Workshop on Variability and Complexity in Software Design ( VACE ’16), Austin, TX, USA, 15 May 2016; Association for Computing Machinery: New York, NY, USA, 2016; pp. 14–20. [Google Scholar] [CrossRef]
- Sousa, G.; Rudametkin, W.; Duchien, L. Extending dynamic software product lines with temporal constraints. In Proceedings of the 2017 IEEE/ACM 12th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS), Buenos Aires, Argentina, 22–23 May 2017; pp. 129–139. [Google Scholar]
- Ruiz, C.; Duran-Limon, H.A.; Parlavantzas, N. Towards a software product line-based approach to adapt IaaS cloud configurations. In Proceedings of the 9th International Conference on Utility and Cloud Computing, Shanghai, China, 6–9 December 2016; pp. 398–403. [Google Scholar]
- Kramer, D.; Oussena, S.; Komisarczuk, P.; Clark, T. Using document-oriented GUIs in dynamic software product lines. ACM SIGPLAN Notices 2013, 49, 85–94. [Google Scholar] [CrossRef] [Green Version]
- Weckesser, M.; Kluge, R.; Pfannemüller, M.; Matthé, M.; Schürr, A.; Becker, C. Optimal reconfiguration of dynamic software product lines based on performance-influence models. In Proceedings of the 22nd International Systems and Software Product Line Conference, Gothenburg, Sweden, 10–14 September 2018; Volume 1, pp. 98–109. [Google Scholar]
- Nascimento, A.S.; Rubira, C.M.F.; Lee, J. An spl approach for adaptive fault tolerance in soa. In Proceedings of the 15th International Software Product Line Conference, Munich, Germany, 21–26 August 2011; Volume 2, pp. 1–8. [Google Scholar]
- Venero, S.K.; Eleutério, J.D.; Rubira, C.M. Research contributions on adaptive software architectures: A Brazilian female perspective at UNICAMP. In Proceedings of the 10th European Conference on Software Architecture Workshops, Copenhagen, Denmark, 28 November–2 December 2016; pp. 1–6. [Google Scholar]
- dos Santos, E.B.; de Castro Andrade, R.M.; de Sousa Santos, I. Runtime monitoring of behavioral properties in dynamically adaptive systems. In Proceedings of the XXXIII Brazilian Symposium on Software Engineering, Salvador, Brazil, 23–27 September 2019; pp. 377–386. [Google Scholar]
- Santos, E.; Machado, I. Towards an architecture model for dynamic software product lines engineering. In Proceedings of the 2018 IEEE International Conference on Information Reuse and Integration (IRI), Salt Lake City, UT, USA, 6–9 July 2018; pp. 31–38. [Google Scholar]
- Boonon, P.; Muenchaisri, P. An approach to clustering feature model based on adaptive behavior for dynamic software product line. In Proceedings of the 2014 IEEE International Conference on Information Science &Applications (ICISA), Seoul, Korea, 6–9 May 2014; pp. 1–4. [Google Scholar]
- Amja, A.M.; Obaid, A.; Mili, H. Combining variability, RCA and feature model for context-awareness. In Proceedings of the 2016 Sixth IEEE International Conference on Innovative Computing Technology (INTECH), Dublin, Ireland, 24–26 August 2016; pp. 15–23. [Google Scholar]
- Khiari, B.; Jilani, L.L. Towards a DSPL for Context Aware BPM. In Proceedings of the 2017 IEEE/ACS 14th International Conference on Computer Systems and Applications (AICCSA), Hammamet, Tunisia, 30 October–3 November 2017; pp. 12–18. [Google Scholar]
- Amoud, M.; Roudies, O. Dynamic adaptation and reconfiguration of security in mobile devices. In Proceedings of the 2017 IEEE International Conference On Cyber Incident Response, Coordination, Containment & Control (Cyber Incident), London, UK, 19–20 June 2017; pp. 1–6. [Google Scholar]
- Velázquez-García, F.J.; Halvorsen, P.; Stensland, H.K.; Eliassen, F. Autonomic adaptation of multimedia content adhering to application mobility. In Proceedings of the IFIP International Conference on Distributed Applications and Interoperable Systems, Madrid, Spain, 18–21 June 2018; Springer: Berlin, Germany, 2018; pp. 153–168. [Google Scholar]
- Abbas, N.; Andersson, J.; Weyns, D. ASPLe: A methodology to develop self-adaptive software systems with systematic reuse. J. Syst. Softw. 2020, 167, 110626. [Google Scholar] [CrossRef]
- Cirilo, E.; Nunes, I.; Kulesza, U.; Lucena, C. Automating the product derivation process of multi-agent systems product lines. J. Syst. Softw. 2012, 85, 258–276. [Google Scholar] [CrossRef]
- Ayala, I.; Amor, M.; Horcas, J.M.; Fuentes, L. A goal-driven software product line approach for evolving multi-agent systems in the Internet of Things. Knowl.-Based Syst. 2019, 184, 104883. [Google Scholar] [CrossRef]
- Parra, C.; Blanc, X.; Cleve, A.; Duchien, L. Unifying design and runtime software adaptation using aspect models. Sci. Comput. Program. 2011, 76, 1247–1260. [Google Scholar] [CrossRef]
- Olaechea, R.; Atlee, J.; Legay, A.; Fahrenberg, U. Trace checking for dynamic software product lines. In Proceedings of the 13th International Conference on Software Engineering for Adaptive and Self-Managing Systems, Gothenburg, Sweden, 28–29 May 2018; pp. 69–75. [Google Scholar]
- Cubo, J.; Gamez, N.; Pimentel, E.; Fuentes, L. Reconfiguration of service failures in damasco using dynamic software product lines. In Proceedings of the 2015 IEEE International Conference on Services Computing, New York, NY, USA, 27 June–2 July 2015; pp. 114–121. [Google Scholar]
- Nakanishi, T.; Furusho, H.; Hisazumi, K.; Fukuda, A. Dynamic SPL and derivative development with uncertainty management for DevOps. In Proceedings of the 2016 5th IEEE IIAI International Congress on Advanced Applied Informatics (IIAI-AAI), Kumamoto, Japan, 10–14 July 2016; pp. 244–249. [Google Scholar]
- Shen, L.; Peng, X.; Zhao, W. Software Product Line Engineering for Developing Self-Adaptive Systems: Towards the Domain Requirements. In Proceedings of the 2012 IEEE 36th Annual Computer Software and Applications Conference, Izmir, Turkey, 16–20 July 2012; pp. 289–296. [Google Scholar] [CrossRef]
- Nascimento, A.S.; Rubira, C.M.; Castor, F. ArCMAPE: A Software Product Line Infrastructure to Support Fault-Tolerant Composite Services. In Proceedings of the 2014 IEEE 15th International Symposium on High-Assurance Systems Engineering, Miami Beach, FL, USA, 9–11 January 2014; pp. 41–48. [Google Scholar] [CrossRef]
- Metzger, A.; Bayer, A.; Doyle, D.; Sharifloo, A.M.; Pohl, K.; Wessling, F. Coordinated run-time adaptation of variability-intensive systems: An application in cloud computing. In Proceedings of the 2016 IEEE/ACM 1st International Workshop on Variability and Complexity in Software Design (VACE), Austin, TX, USA, 15 May 2016; pp. 5–11. [Google Scholar]
- Lochau, M.; Bürdek, J.; Hölzle, S.; Schürr, A. Specification and automated validation of staged reconfiguration processes for dynamic software product lines. Softw. Syst. Model. 2017, 16, 125–152. [Google Scholar] [CrossRef]
- Gamez, N.; Romero, D.; Fuentes, L.; Rouvoy, R.; Duchien, L. Constraint-based self-adaptation of wireless sensor networks. In Proceedings of the 2nd International Workshop on Adaptive Services for the Future Internet and 6th International Workshop on Web APIs and Service Mashups, Bertinoro, Italy, 19 September 2012; pp. 20–27. [Google Scholar]
- de Sousa Santos, I.; de Jesus Souza, M.L.; Luciano Carvalho, M.L.; Alves Oliveira, T.; de Almeida, E.S.; de Castro Andrade, R.M. Dynamically Adaptable Software Is All about Modeling Contextual Variability and Avoiding Failures. IEEE Softw. 2017, 34, 72–77. [Google Scholar] [CrossRef]
- Pfannemuller, M.; Krupitzer, C.; Weckesser, M.; Becker, C. A Dynamic Software Product Line Approach for Adaptation Planning in Autonomic Computing Systems. In Proceedings of the 2017 IEEE International Conference on Autonomic Computing (ICAC), Columbus, Ohio, USA, 17–21 July 2017; pp. 247–254. [Google Scholar] [CrossRef]
- Göttmann, H.; Bacher, I.; Gottwald, N.; Lochau, M. Static Analysis Techniques for Efficient Consistency Checking of Real-Time-Aware DSPL Specifications. In Proceedings of the 15th International Working Conference on Variability Modelling of Software-Intensive Systems (VaMoS’21), Krems, Austria, 9–11 February 2021; Association for Computing Machinery: New York, NY, USA, 2021. [Google Scholar] [CrossRef]
- Marinho, F.G.; Maia, P.H.; Andrade, R.M.; Vidal, V.M.; Costa, P.A.; Werner, C. Safe adaptation in context-aware feature models. In Proceedings of the 4th International Workshop on Feature-Oriented Software Development, Dresden, Germany, 24–25 September 2012; pp. 54–61. [Google Scholar]
- Murguzur, A.; Capilla, R.; Trujillo, S.; Ortiz, Ó.; Lopez-Herrejon, R.E. Context variability modeling for runtime configuration of service-based dynamic software product lines. In Proceedings of the 18th International Software Product Line Conference: Companion Volume for Workshops, Demonstrations and Tools, Florence, Italy, 15–19 September 2014; Volume 2, pp. 2–9. [Google Scholar]
- Baresi, L.; Quinton, C. Dynamically evolving the structural variability of dynamic software product lines. In Proceedings of the 2015 IEEE/ACM 10th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, Florence, Italy, 18–19 May 2015; pp. 57–63. [Google Scholar]
- Pessoa, L.; Fernandes, P.; Castro, T.; Alves, V.; Rodrigues, G.N.; Carvalho, H. Building reliable and maintainable dynamic software product lines: An investigation in the body sensor network domain. Inf. Softw. Technol. 2017, 86, 54–70. [Google Scholar] [CrossRef]
- Achtaich, A.; Roudies, O.; Souissi, N.; Salinesi, C.; Mazo, R. Evaluation of the State-Constraint Transition Modelling Language: A Goal Question Metric Approach. In Proceedings of the 23rd International Systems and Software Product Line Conference, Paris, France, 9–13 September 2019; Volume B. pp. 106–113. [Google Scholar]
- Frantzi, K.; Ananiadou, S.; Mima, H. Automatic recognition of multi-word terms: The c-value/nc-value method. Int. J. Digit. Libr. 2000, 3, 115–130. [Google Scholar] [CrossRef] [Green Version]
- Petersen, K.; Gencel, C. Worldviews, Research Methods, and their Relationship to Validity in Empirical Software Engineering Research. In Proceedings of the 2013 Joint Conference of the 23rd International Workshop on Software Measurement and the 8th International Conference on Software Process and Product Measurement, Ankara, Turkey, 23–26 October 2013; pp. 81–89. [Google Scholar] [CrossRef] [Green Version]
- Alférez, G.H.; Pelechano, V. Achieving autonomic Web service compositions with models at runtime. Comput. Electr. Eng. 2017, 63, 332–352. [Google Scholar] [CrossRef]
- Bezerra, C.; Lima, R.; Silva, P. DyMMer 2.0: A Tool for Dynamic Modeling and Evaluation of Feature Model. In Brazilian Symposium on Software Engineering; Association for Computing Machinery: New York, NY, USA, 2021; pp. 121–126. [Google Scholar]
Software Product Lines | Dynamic Software Product Lines |
---|---|
SPLs are used in systems where variability behaves statically. | DSPLs are used in software systems where variability is constantly changing. |
Variability management provides a description of the possible systems that can be produced. | Variability management provides the definition of various system adaptations at runtime. |
Market segment identifies the common set of software products to be developed using the SPL approach. | Variation points specified identifies the level of reconfigurations supported by the DSPL. |
The approach provides a framework for a set of individual software systems with common features. | The approach provides a unique system, which describes the basis for possible adaptations. |
SPLs has two stages, domain and application engineering. | DSPLs have two life cycles, the engineering stage and runtime variability management. |
Variability in SPL | Runtime Variability in DSPL |
---|---|
Activation/deactivation of system features prior to deployment. | Activation/deactivation of system features after deployment. |
Adding and removing features in SPL design engineering. | Adding and removing features at runtime. |
To make a change to the system variability, the product must be instantiated from the design engineering phase in SPL. | Provide optimal reconfiguration of the possible points of variation of the system. |
Research Questions | Aim and Classification Schema |
---|---|
RQ1. What approach was used to apply constraints during software reconfigurations in DSPL? | Collect information on the type of practices used to maintain system stability during DSPL reconfigurations: Closed Dynamic Variability, Open Dynamic Variability, Collaborative features, No proposed approach. |
RQ2. What methodologies are currently used to manage DSPL variability during reconfigurations? | Identify how the variability model communicates with the running system to visualize reconfiguration changes: Proprietary architecture, MAPE-K, Agent-oriented software engineering, Third-party software, No specific methodology. |
RQ3. What are the current challenges in the management of DSPL? | Highlight the main challenges to properly manage the dynamic variability of DSPL: Techniques, Open variation, Explicit variation points, Support of defaults, Binding time, Variant isolation, Proposal validation, Granularity, Non-code artifacts, No challenges mentioned. |
Publication Questions | Aim and Classification Schema |
---|---|
PQ1. What year was the article published? | Highlight how DSPL research has evolved over the years. Years with more publications: 2010–2021 |
PQ2. Where was the article published? | Identify the journals and conferences most interested in the study of the DSPL, analyzing the most predominant of them and publishers. |
Library | URL |
---|---|
ACM Digital Library | dl.acm.org |
IEEE Xplore | ieeexplore.ieee.org |
Science Direct | sciencedirect.com |
Springer Link | springer.com |
Wiley Inter-Science | onlinelibrary.wiley.com |
Library | Result |
---|---|
ACM Digital Library | 765 |
IEEE Xplore | 74 |
Science Direct | 485 |
Springer Link | 5511 |
Wiley Inter-Science | 1011 |
Total Result | 7846 |
ID | Criteria |
---|---|
IC1 | Articles published between 2010–2021. |
IC2 | Papers written in English. |
IC3 | Type of paper: |
| |
IC4 | Papers with more than one version, only the latest version will be included. |
IC5 | Papers whose abstracts deal with Dynamic Software Product Lines or reconfigurations in Software Product Lines for self-adaptive systems. |
IC6 | Topic: |
|
ID | Criteria |
---|---|
EC1 | Articles written before 2010. |
EC2 | Articles not related to Software Product Lines. |
EC3 | Secondary researches (If they exist and are relevant to the research, they will be added as related work). |
EC4 | Papers without access. |
EC5 | Duplicate papers will be excluded. |
EC6 | The following types of items will be excluded: |
|
Approaches for Applying Runtime Variability Constraints in DSPL | Selected Papers |
---|---|
Closed Dynamic Variability | SP1, SP4, SP5, SP6, SP7, SP10, SP11, SP12, SP13, SP14, SP15, SP17, SP18, SP19, SP20, SP21, SP24, SP27, SP29, SP32, SP37, SP44, SP46, SP49, SP55, SP59, SP62, SP68, SP69, SP70, SP73, SP78. |
Open Dynamic Variability | SP2, SP3, SP8, SP22, SP23, SP25, SP26, SP28, SP30, SP31, SP33, SP34, SP36, SP38, SP39, SP40, SP41, SP42, SP43, SP45, SP47, SP48, SP50, SP51, SP52, SP53, SP54, SP56, SP57, SP58, SP60, SP61, SP63, SP64, SP65, SP67, SP71, SP72, SP74, SP75, SP76, SP77, SP79, SP80, SP81, SP82, SP83, SP84. |
Collaborative features | SP9, SP16, SP35. |
No proposed approach | SP66. |
Methodologies Used to Manage DSPL Runtime Variability | Selected Papers |
---|---|
Proprietary architecture | SP1, SP4, SP5, SP6, SP7, SP9, SP10, SP11, SP13, SP15, SP17, SP18, SP19, SP20, SP21, SP24, SP26, SP27, SP29, SP31, SP32, SP35, SP37, SP41, SP43, SP44, SP45, SP46, SP48, SP49, SP52, SP54, SP55, SP59, SP60, SP62, SP63, SP64, SP65, SP66, SP67, SP68, SP70, SP71, SP72, SP73, SP74 SP78, SP81, SP83, SP84. |
MAPE-K control loop | SP2, SP3, SP8, SP23, SP28, SP30, SP33, SP34, SP36, SP39, SP40, SP42, SP50, SP57, SP58, SP61, SP75, SP77, SP79, SP80, SP82. |
Third-party software | SP12, SP14, SP25, SP69. |
Agent-Oriented Software Engineering | SP16, SP38, SP47, SP51, SP53, SP56, SP76. |
No specific methodology | SP22. |
DSPL Management Challenges | Selected Papers |
---|---|
Techniques | SP1, SP3, SP4, SP5, SP6, SP7, SP9, SP10, SP12, SP15, SP19, SP20, SP22, SP25, SP27, SP42, SP46, SP50, SP53, SP63, SP64, SP65, SP70, SP78. |
Open variation | SP2, SP8, SP23, SP26, SP30, SP32, SP35, SP36, SP38, SP40, SP54, SP57, SP66, SP67, SP68, SP72, SP80, SP81. |
Explicit variation points | SP11, SP14, SP24, SP39. |
Support of defaults | SP13. |
Binding time | SP16, SP18, SP49. |
Variant isolation | SP21, SP59. |
Proposal validation | SP34, SP43, SP44, SP45, SP48, SP55, SP60, SP61, SP69, SP74, SP75, SP76, SP79, SP82, SP84. |
Granularity | SP37. |
Non-code artifacts | SP58. |
No challenges mentioned | SP17, SP28, SP29, SP31, SP33, SP41, SP47, SP51, SP52, SP56, SP62, SP71, SP73, SP77, SP83. |
Criteria | FM-Based Approaches | MAPE-K Control Loop |
---|---|---|
Allows describing possible system states | ✓ | |
Allows to change the variability of a system at runtime | ✓ | ✓ |
Allows to store the record of changes in variability | ✓ |
Rank | Term | Score | Rank | Term | Score |
---|---|---|---|---|---|
1 | software product line | 53.12 | 21 | component-based adaptation approach | 1.58 |
2 | dynamic software product line | 49.41 | 21 | model-based runtime adaptation | 1.58 |
3 | product line engineering | 4.71 | 21 | dynamic aspect variability | 1.58 |
3 | dynamic software product lines | 4.71 | 21 | reified contextual information | 1.58 |
4 | feature model | 4 | 21 | industrial cyber-physical system | 1.58 |
6 | adaptive software architecture | 3.17 | 21 | runtime software adaptation | 1.58 |
7 | software product line design based approach | 2.58 | 21 | adaptive fault tolerance | 1.58 |
8 | dynamic software product line approach | 2.32 | 21 | brazilian female perspective | 1.58 |
8 | maintainable dynamic software product line | 2.32 | 21 | self-adapting mobile system | 1.58 |
8 | goal-driven software product line approach | 2.32 | 21 | product derivation process | 1.58 |
8 | dynamic software product lines based | 2.32 | 21 | modeling contextual variability | 1.58 |
12 | software product line engineering | 2 | 21 | multiobjective evolutionary algorithm | 1.58 |
12 | clustering feature model based | 2 | 21 | self-adaptive software system | 1.58 |
12 | runtime variability mechanism based | 2 | 21 | multiobjective optimization algorithm | 1.58 |
12 | autonomic web service composition | 2 | 21 | efficient consistency checking | 1.58 |
12 | software product line-based approach | 2 | 21 | feature-oriented variability reconfiguration | 1.58 |
12 | software product line infrastructure | 2 | 21 | safe runtime adaptation | 1.58 |
12 | state-constraint transition modelling language | 2 | 21 | multimedia content adhering | 1.58 |
12 | cyber-physical system | 2 | 21 | dynamic adaptive system | 1.58 |
20 | feature models | 1.95 | 40 | dynamic modeling | 1 |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Aguayo, O.; Sepúlveda, S. Variability Management in Dynamic Software Product Lines for Self-Adaptive Systems—A Systematic Mapping. Appl. Sci. 2022, 12, 10240. https://doi.org/10.3390/app122010240
Aguayo O, Sepúlveda S. Variability Management in Dynamic Software Product Lines for Self-Adaptive Systems—A Systematic Mapping. Applied Sciences. 2022; 12(20):10240. https://doi.org/10.3390/app122010240
Chicago/Turabian StyleAguayo, Oscar, and Samuel Sepúlveda. 2022. "Variability Management in Dynamic Software Product Lines for Self-Adaptive Systems—A Systematic Mapping" Applied Sciences 12, no. 20: 10240. https://doi.org/10.3390/app122010240
APA StyleAguayo, O., & Sepúlveda, S. (2022). Variability Management in Dynamic Software Product Lines for Self-Adaptive Systems—A Systematic Mapping. Applied Sciences, 12(20), 10240. https://doi.org/10.3390/app122010240