Constraints: the Heart of Domain and Application Engineering in the Product Lines Engineering Strategy
Résumé
Drawing from an analogy between features based Product Line (PL) models and Constraint Programming (CP), this paper explores the use of CP in the Domain Engineering and Application Engineering activities that are put in motion in a Product Line Engineering strategy. The start idea is simple: both CP and PL engineering deal with variables, and constraints that these variables must satisfy. Therefore, specifying a PL as a constraint program instead of a feature model, or another kind of PL formalism, carries out two important qualities of CP: expressiveness and direct automation. On the one hand, variables in CP can take values over boolean, integer, real or even complex domains (i.e., lists, arrays and trees) and not only boolean values as in most PL languages such as the Feature-Oriented Domain Analysis (FODA). Specifying boolean, arithmetic, symbolic and reified constraint, provides a power of expression that spans beyond that provided by the boolean dependencies in FODA models. On the other hand, PL models expressed as constraint programs can directly be executed and analyzed by off-the-shelf solvers. Starting with a working example, this paper explores the issues of (a) how to specify a PL model using CP, including in the presence of multi-model representation, (b) how to verify PL specifications, (c) how to specify configuration requirements and (d) how to support the product configuration activity. Tests performed on a benchmark of 50 PL models show that the approach is efficient and scales up easily to very large and complex PL specifications
Domaines
Génie logiciel [cs.SE]
Fichier principal
Final_manuscript_on_the_journaltemplate-with_images.pdf (1.12 Mo)
Télécharger le fichier
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...