Software product line applied to the internet of things: A systematic literature review
Introduction
Among the systematically non-opportunistic strategies of reuse artifacts in software engineering, the software product line (SPL) paradigm is gaining attention and has been consolidated in the academy and industry [1,2]. SPL differs from the traditional software development process because it considers a family of products instead of each product individually [2] Several organizations1 such as Boeing, Bosch Group, Cummins, Nokia, Philips, Siemens, Toshiba, and the US Naval Research Laboratory have adopted the SPL paradigm to obtain better quality and productivity in the software development cycle to encompass a set of specific products for a particularly competitive market [3,4]. Some benefits obtained by these organizations that may be emphasized are quality improvement, reduction of development costs, production time, risks, and improved delivery quality of a given product to the customer to meet their needs and expectations, both short-term and long-term [5].
Such benefits are attributed to the correct planning and application of technical and organizational management activities. One of the main SPL activities is variability management (VM) [7,8], which provides the concepts of customization and derivation of products using approaches developed in the literature [7], [8], [9]. Variability consists of how a product can be differentiated from others of the same family based on the common and variables features in an SPL [1], [2], [3], [4], [5], [6], [7].
We believe that such SPL engineering characteristics supported by VM can be a way to meet the heterogeneous device and systems management gaps of the Internet of Things (IoT) paradigm, which is also in agreement with the literature. Owing to the growth of “things” in specific IoT systems in complex and dynamic smart environments or networks, the common and variables features of VM can be adopted to manage them. Basically, IoT defines connections based on multiple objects (“things”) as devices (e.g., sensors, radio frequency identification (RFID), and microcontrollers as Arduino and Raspberry Pi) and equipment (e.g., home refrigerators or medical hardware), which encompass characteristics such as identification, detection, and interaction [10,11].
Lee and Lee [12] believe that managing these things can also impact new costs and investments. In addition to these impacts on IoT, difficulties may arise in applying SPL engineering in IoT systems: (i) investing resources (time, people, and financial) to understand the reuse strategy in adapting SPL engineering in the IoT; (ii) the time spent learning the basic concepts of SPL engineering; (iii) understand how to map the features of IoT systems and represent them in specific SPL models (feature model or multi-perspective models); (iv) which processes and types of IoT artifacts can be represented using SPL; (v) understand SPL tools for managing things; and (vi) how to configure or reconfigure functionalities and/or things (e.g., sensors and actuators) to derive custom IoT products. However, we believe that by adopting SPL in an organized and systematic manner, it is possible to improve IoT systems productivity and management related to the development of quality and customized products, reducing long-term difficulties.
A way to minimize these impacts and difficulties can be by the definition of architectural elements supported by approaches to the development of IoT systems [13] and the possible adaptation of the SPL engineering framework of Pohl et al. [5]. In this sense, Buyya and Dastjerdi [14] pointed out the importance of a reference architecture to organize and understand this complex scenario to guarantee the evolution of IoT. For instance, the IoT-i project in Europe defined strategies and techniques for developing IoT solutions according to interest in different sectors. Thus, a second project called IoT-A2 specified an IoT architecture reference model using the building blocks and requirements collected in the IoT-i project [14].
Motivated by these perceptions, this study aims to investigate how SPL engineering has been applied in the IoT paradigm, as well as how VM is carried out, and identify gaps in the primary studies considering their associations with further investigations to answer three research questions (RQs):
- •
RQ1: How are software product lines (SPL) being applied in the context of the Internet of Things (IoT) systems? This RQ aims to analyze and identify smart application areas/domains in which SPLs are applied in IoT; in which types of IoT systems one or several SPLs have been adopted or adapted; and which SPLs and IoT systems have been applied in the academic and/or industrial environment.
- •
RQ2: How is the variability management (VM) of SPL carried out in IoT systems? This RQ aims to explore VM activity applied to IoT systems; how VM activity is adopted to IoT devices or systems; the existence of processes using the VM activity; the existence of models (e.g., feature model and/or IoT-based feature model - same meaning with another nomenclature); VM resolution time types; and the existence of VM mechanisms, relationships, constraints to perform VM.
- •
RQ3: Which approaches, frameworks or platforms use SPL in IoT systems? This RQ aims to investigate and identify possible approaches, frameworks, or platforms that apply SPL concepts across different IoT systems domains; and presents their technology and application in the academy and/or industrial environments.
These RQs investigate how SPL is applied in the context of the IoT paradigm, considering how the VM of things is carried out, and the possible existence of approaches, frameworks, or platforms in this scenario. These RQs have emerged from the need to search for possibilities or solutions to better manage such interconnected things. Based on these RQs, the five main contributions of this study are:
- •
A systematic literature review (SLR) was conducted and retrieved studies up to 12 March 2019.
- •
1039 studies were analyzed based on defined search strings and filtered through inclusion and exclusion criteria, allowing us to reach a final set of 56 selected primary studies.
- •
Relevant primary studies have been identified, allowing to discuss new research opportunities between SPL and IoT.
- •
The problem space has not been solved in IoT systems management, but positive evidence is present in most selected primary studies.
- •
No secondary studies such as systematic literature review or systematic mapping related to SPL and IoT were identified at the time of carrying out this SLR. Thus, we expect to provide an initial body of knowledge for scientific and industrial domains.
The remainder of this paper is structured as follows: Section 2 summarizes the background of the study. Section 3 describes the protocol and the research method used for conducting this SLR. Section 4 presents the results obtained as well as gaps identified in the studies related to the SPL and IoT paradigms. Section 5 reports the answers and discussions of the research questions based on the final set of selected primary studies. Section 6 presents the main threats to the validity of this review. Finally, we present conclusions and future work in Section 7.
Section snippets
Background
Software product line is a paradigm that allows the customization of software product families through the sharing of common and variable features based on central artifacts (core assets) [2]. The SPL engineering framework proposed by Pohl et al. [5] defines abstractions regarding the reuse level of the artifacts of an SPL for product customization through two processes: domain engineering (DE) and application engineering (AE). In DE, the identification of common and variables aspects in SPL is
Systematic literature review protocol
This SLR was conducted through a strategy consisting of six main stages: (i) definition of research questions (Section 3.1), (ii) research method for primary studies (Section 3.2), (iii) definition of data sources, keywords, and search query (Section 3.3), (iv) selection of studies by applying the inclusion and exclusion criteria (Section 3.4), (v) study quality assessment (Section 3.5), (vi) extraction and aggregation of data (Section 3.6), and (vii) the classification scheme of selected
Overview of selected primary studies
In the following sections, we present demographic data, the distribution, and the data sources with respect to the data extracted from each selected primary study to provide the analyses of frequency, venue, and trends of these publications.
Analyzing the results presented in Fig. 1 complemented by Fig. 2, it was possible to observe that 56 studies were selected, among which three secondary studies indirectly contributed to answering questions RQ1, RQ2, and RQ3. Wohlin [31] presents guidelines
Discussion
The following sections provide a discussion on the answers to the RQs towards the specific objectives of this SLR.
Threats to validity
The main threats to the validity of this SLR were identified as its limitations and are discussed in this section.
Construct validity. Encompass design and generalization capacity of the study [23]. In the literature, there are several definitions of IoT. We minimize such a threat by presenting a succinct background on such a paradigm to mitigate inaccurate assumptions or definitions on the IoT. Generic keywords for “LPS” and “IoT” were used in this study. We do not adopt specific terms as “web
Conclusions and future work
We pointed out the studies that did not solve the problem space and the main gaps related to “things” management even upon applying the SPL concepts. No related systematic reviews or mappings were identified up to this time. Therefore, we contributed by discussing how the SPL and VM were applied in IoT, presenting new research opportunities. In this study, we identified some gaps of SPL in IoT, as well as, relevant primary researches that apply SPL for variability management in IoT systems.
This
Declaration of Competing Interests
The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.
Acknowledgments
This study was financed in part by the Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - Brasil (CAPES) - Finance Code 001.
References (84)
- et al.
A systematic review of evaluation of variability management approaches in software product lines
Inf. Softw. Technol.
(2011) - et al.
Issue-based variability management
Inf. Softw. Technol
(2012) - et al.
The internet of things (IoT): applications, investments, and challenges for enterprises
Bus. Horiz.
(2015) - et al.
Internet of things (IoT): a vision, architectural elements, and future directions
Futur. Gener. Comput. Syst.
(2013) - et al.
Internet of things: vision, applications and research challenges
Ad. Hoc. Netw.
(2012) - et al.
Guidelines for conducting systematic mapping studies in software engineering: an update
Inf. Softw. Technol
(2015) - et al.
Software quality trade-offs: a systematic map
Inf. Softw. Technol.
(2012) - et al.
Combining service-orientation and software product line engineering: a systematic mapping study
Inf. Softw. Technol.
(2013) - et al.
A systematic review of systematic review process research in software engineering
Inf. Softw. Technol.
(2013) - et al.
A survey on engineering approaches for self-adaptive systems
Pervasive Mob. Comput.
(2015)
A systematic review on the engineering of software for ubiquitous systems
J. Syst. Softw.
An investigation in the body sensor network domain
Inf. Softw. Technol.
Architectural evolution of famiware using cardinality-based feature models
Inf. Softw. Technol.
Systems and Software Variability Management: Concepts, Tools and Experiences
Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering
Software product lines: going beyond
Software Product Lines: Practices and Patterns
Software Product Line Engineering: Foundations, Principles, and Techniques
Variability in software systems - A Systematic literature review
IEEE Trans. Softw. Eng.
Variability management in software product lines: a systematic review
Building a framework for internet of things and cloud computing
The internet of things - A Survey of topics and trends
Inf. Syst. Front.
Trends in systems and software variability
IEEE Softw.
Systems and Software Variability Management: Concepts, Tools and Experiences
Runtime variability for dynamic reconfiguration in wireless sensor network product lines
A feature-oriented modeling approach for embedded product line engineering
Feature-Oriented domain analysis framework for energy-aware self-adaptive software
Guidelines for performing systematic literature reviews in software engineering
Evidence-Based Software Engineering and Systematic Reviews
Defect types and software inspection techniques: a systematic mapping study
J. Comput. Sci.
A systematic mapping study of software product lines testing
Inf. Softw. Technol
Requirements engineering paper classification and evaluation criteria: a proposal and a discussion
Requir. Eng.
Guidelines for snowballing in systematic literature studies and a replication in software engineering
The nonfunctional requirement focus in medical device software: a systematic mapping study and taxonomy
Innov. Syst. Softw. Eng.
A feature-oriented approach to developing dynamically reconfigurable products in product line engineering
Service-Oriented dynamic software product lines
IEEE Comput.
A model-driven framework to develop personalized health monitoring
Symmetry (Basel)
Real-Time campus university bus tracking mobile application
Towards a cvl process to develop agents for the iot
On the support of multi-perspective process models variability for smart environments
Cited by (19)
Variability modeling of products, processes, and resources in cyber–physical production systems engineering
2024, Journal of Systems and SoftwareEDALoCo: Enhancing the accessibility of blockchains through a low-code approach to the development of event-driven applications for smart contract management
2023, Computer Standards and InterfacesCitation Excerpt :As an example, it is having a considerable impact on areas such as e-health [3–5], smart industry [6], cybersecurity [7,8], smart cities [9], education [10] and voting [11]. Blockchain emerges as a solution to address the challenge of ensuring the security, integrity, traceability, immutability and transparency of data generated by devices [12] and services thanks to its decentralized nature. One of the main advantages of the blockchain technology is that it does not require trusted third parties or a centralized certification authority for the verification of transactions [13].
Supporting IoT applications deployment on edge-based infrastructures using multi-layer feature models
2022, Journal of Systems and SoftwareCitation Excerpt :This section discusses the related work on variability management and code offloading. The use of SPL has being proved to provide benefits to IoT systems regarding the management and modeling of variability, which is mainly managed by FMs with variation points, variants, relationships and constraints (Geraldi et al., 2020). Just a few works address variability at the deployment stage taking into account features that model the diversity of existing devices and technologies into consideration (Gámez and Fuentes, 2013).
Global software development agile planning model: challenges and current trends
2023, Indonesian Journal of Electrical Engineering and Computer ScienceA reference model for software product line capability assessment
2023, Journal of Software: Evolution and Process