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.