Nowadays, embedded systems are gaining importance. At the same time, the development of their software is increasing its complexity, having to deal with quality, cost, and time-to-market issues among others. With stringent quality requirements such as performance, early verification and validation become critical in these systems. In this regard, advanced development paradigms such as model-driven engineering (MDE) and software product line engineering (SPLE) bring considerable benefits to the development and validation of embedded system software. However, these benefits come at the cost of increasing process complexity.
This work presents a process based on UML and MARTE for the analysis of embedded model-driven product lines. It specifies the tasks, the involved roles, and the work products that form the process and how it is integrated in the more general development process.
In order to manage and perform model analysis for ensuring the quality of the products of the Software Product Line (SPL), it is necessary to establish a process with the aim of tackling the complexity. Following established product line development practices, two separate processes were defined for model based analysis:
Model based Analysis Process in Domain Engineering: This process sets the infrastructure to perform the analysis of the products of the product line. That is, it defines the analysis core assets.
Model based Analysis Process in Application Engineering: Based on the above mentioned analysis core assets, this process specifies how they are applied to perform model analysis.
1.1 Model based Analysis Process in Domain Engineering
If the goal is to develop and analyze an embedded SPL, the core assets developed in Domain Engineering (e.g., models, as MDE is applied), must be prepared to perform analysis later on. This is the aim of the Model based Analysis Process in Domain Engineering. This process takes the feature model and the design models as input and outputs core assets that will serve as the building blocks for model analysis in Application Engineering.
The following tasks are performed: Feature Model Elaboration: The variability in functionalities and quality attributes is defined using a feature model. Allocation Variability Elaboration: An allocation variability branch is added to the Feature model to add variability in deployment. Analysis Variability Elaboration: An analysis variability branch is added to the Feature model to add information related to critical scenarios to be analyzed and analysis types for each quality attribute defined before. Real-Time Specification: The SPL design models must be annotated with temporal information (performance…) using MARTE profile (considering also variability). Transformation Definition: To be able to generate the analysis models automatically, the required transformations must be defined. This task is performed once as the defined transformations can be reused.
1.2 Model based Analysis Process in Application Engineering
Previously developed core assets in Domain Engineering are used in Application Engineering process to perform model analyses, prioritizing the critical scenarios of each specific product model of the SPL.
Desired features must be selected from the different branches of the feature model. In this way, the specific product model configuration is defined considering the specified constraints. This model will be used to obtain the specific instances of Analysis Models using the defined transformations to get the specific product analysis model derived from the SPL design models.
Existing tools that support the tasks to be performed in the process are also described. A classification of such tools and a study of traceability among them are provided, allowing engineering teams to choose the most adequate chain of tools to support the process.
Autores: Lorea Belategi / Goiuria Sagardui / Leire Etxeberria / Maider Azanza /
El paper fue publicado en julio de 2016 en la conferencia GECCO (The Genetic and Evolutionary Computation Conference), que es un congreso de clase 2 del ranking SCIE de congresos relevantes. Hasta la fecha, según google scholar, ha recibido un total de dos citas. Cyber-Physical Systems (CPSs) can be found in many sectors (e.g., automotive and aerospace). These systems are usually configurable to give solutions based on different needs. The variability of these systems is large, which implies they can be set into millions of configurations. As a result, different testing processes are needed to efficiently test these systems: the appropriate configurations must be selected and relevant test cases for each configuration must be chosen as well as prioritized. Prioritizing the order in which the test cases are executed reduces the time for detecting faults in these kinds of systems. However, the test suite size is often large and exploring all the possible test case orders is infeasible. Search algorithms can help find optimal solutions from a large solution space. This paper presents an approach based on weight-based search algorithms for prioritizing the test cases for configurable CPSs. We empirically evaluate the performance of the following algorithms with two case studies: Weight-Based Genetic Algorithms, Random Weighted Genetic Algorithms, Greedy, Alternating Variable Method and Random Search (RS). Our results suggest that all the search algorithms outperform RS, which is taken as a baseline. Local search algorithms have shown better performance than global search algorithms.
Autores: Aitor Arrieta / Shuai Wang / Goiuria Sagardui / Leire Etxeberria /
Palabras Clave: Configurable Cyber-Physical Systems - Search Algorithms - Test Case Prioritization - Testing
Los ascensores son sistemas complejos que integran ademásde software, componentes eléctricos, mecánicos, etc. La complejidad deestos sistemas es aumentada además al tener en cuenta la variabilidad:un ascensor puede ser instalado en edificios de más o menos pisos, puedetener diferente puertas, los actuadores y sensores pueden variar, etc.La validación del software de estos sistemas es compleja en diferentesaspectos. Este artículo presenta un trabajo industrial para la validaciónde software embebido congurable refactorizado en el contexto del sectordel transporte vertical.
Autores: Goiuria Sagardui / Leire Etxeberria / Joseba Andoni Agirre / Aitor Arrieta / Carlos F. Nicolas / Jose Maria Martin /
Palabras Clave: Ascensores - Test - Validación - Variabilidad
Artículo relevante publicado en 2018 en el ISTContext: Software Product Line (SPL) testing is challenging mainly due to the potentially huge number ofproducts under test. Most of the research on this field focuses on making testing affordable by selecting arepresentative subset of products to be tested. However, once the tests are executed and some failures revealed,debugging is a cumbersome and time consuming task due to difficulty to localize and isolate the faulty featuresin the SPL.Objective: This paper presents a debugging approach for the localization of bugs in SPLs.Method: The proposed approach works in two steps. First, the features of the SPL are ranked according to theirsuspiciousness (i.e., likelihood of being faulty) using spectrum-based localization techniques. Then, a novel faultisolation approach is used to generate valid products of minimum size containing the most suspicious features,helping to isolate the cause of failures.Results: For the evaluation of our approach, we compared ten suspiciousness techniques on nine SPLs of differentsizes. The results reveal that three of the techniques (Tarantula, Kulcynski2 and Ample2) stand out over the rest,showing a stable performance with different types of faults and product suite sizes. By using these metrics, faultswere localized by examining between 0.1% and 14.4% of the feature sets.Conclusion: Our results show that the proposed approach is effective at locating bugs in SPLs, serving as a helpfulcomplement for the numerous approaches for testing SPLs.
Autores: Aitor Arrieta / Sergio Segura / Urtzi Markiegi / Goiuria Sagardui / Leire Etxeberria /
Palabras Clave: Debugging - Feature Models - software product lines - Spectrum-based fault localization
Variability is a central concept in Software Product Lines (SPLs). It has been extensively studied how the SPL paradigm can improve both the efficiency of a company and the quality of products. Nevertheless, this brings several challenges when testing an SPL, which are mainly caused by the potentially huge amount of products that can be derived from an SPL. There exist different studies proposing methods for testing SPLs. Also there are secondary studies reviewing and mapping the literature of the existing proposals. Nevertheless, there is a lack of systematic guidelines for practitioners and researchers with the different steps required to perform a testing strategy of an SPL. In this paper, we present a first version of a tutorial that summarizes the existing proposals of the SPL testing area. To the best of our knowledge, there is no similar attempt in existing literature. Our goal is to discuss this tutorial with the community and enrich it to provide a more solid version of it in the future.
Autores: Elvira G. Ruiz / Jon Ayerdi / José A. Galindo / Aitor Arrieta / Goiuria Sagardui / David Benavides /
Palabras Clave: software product lines - Software reusability - Software Testing