Software Product Lines
The software development approach based on a Software Product Line (SPL) proposes a methodology and techniques for the management and reuse of software devices that form part of a family of products. This methodology covers the different software development stages and provides languages to model the variability of a family of products, variability analysis operators, materialisation processes in specific products and the possibility of automatically generating optimal configurations of a product of the family on the basis of different quality attributes (security, computation time, communication latency, energy consumption, etc.). The SPL allow performing an analysis at the software architecture level to assess a system’s attributes before it is built. Once the configuration of a product is chosen, the implementation devices are automatically generated. In this line of research the work of ITIS focuses on defining new meta-models, models, languages and tools that permit specifying variability in complex systems such as cyber-physical systems in a modular manner, deriving optimal configurations and generating products that comply with the non-functional quality requirements in the course of the system’s life (RHEA project). We also apply the SPL to generate application deployments in IoT/Edge/Cloud environments taking in to account quality measures such as minimising latency or energy consumption (MEDEA). The application domains that benefit from this technology are those with intensive variability, such as augmented reality and eHealth applications (MEDEA and LEILA projects).