Quality-aware analysis in product line engineering with the orthogonal variability model
Software Quality Journal, 2012•Springer
Software product line engineering is about producing a set of similar products in a certain
domain. A variability model documents the variability amongst products in a product line.
The specification of variability can be extended with quality information, such as measurable
quality attributes (eg, CPU and memory consumption) and constraints on these attributes
(eg, memory consumption should be in a range of values). However, the wrong use of
constraints may cause anomalies in the specification which must be detected (eg, the model …
domain. A variability model documents the variability amongst products in a product line.
The specification of variability can be extended with quality information, such as measurable
quality attributes (eg, CPU and memory consumption) and constraints on these attributes
(eg, memory consumption should be in a range of values). However, the wrong use of
constraints may cause anomalies in the specification which must be detected (eg, the model …
Abstract
Software product line engineering is about producing a set of similar products in a certain domain. A variability model documents the variability amongst products in a product line. The specification of variability can be extended with quality information, such as measurable quality attributes (e.g., CPU and memory consumption) and constraints on these attributes (e.g., memory consumption should be in a range of values). However, the wrong use of constraints may cause anomalies in the specification which must be detected (e.g., the model could represent no products). Furthermore, based on such quality information, it is possible to carry out quality-aware analyses, i.e., the product line engineer may want to verify whether it is possible to build a product that satisfies a desired quality. The challenge for quality-aware specification and analysis is threefold. First, there should be a way to specify quality information in variability models. Second, it should be possible to detect anomalies in the variability specification associated with quality information. Third, there should be mechanisms to verify the variability model to extract useful information, such as the possibility to build a product that fulfils certain quality conditions (e.g., is there any product that requires less than 512 MB of memory?). In this article, we present an approach for quality-aware analysis in software product lines using the orthogonal variability model (OVM) to represent variability. We propose to map variability represented in the OVM associated with quality information to a constraint satisfaction problem and to use an off-the-shelf constraint programming solver to automatically perform the verification task. To illustrate our approach, we use a product line in the automotive domain which is an example that was created in a national project by a leading car company. We have developed a prototype tool named FaMa-OVM, which works as a proof of concepts. We were able to identify void models, dead and false optional elements, and check whether the product line example satisfies quality conditions.
Springer