Reference Attribute Grammars as an Incremental Validation Framework for Delta-Based Multi-Model Product Lines
Abstract
A software product line comprises modules of core functionality as well as variable, configurable features. In model-driven engineering, the core consists of one or more models, and the features are defined by model transformations. Although developing such a product line brings many benefits, it poses two major challenges: First, all involved meta-models, transformation tools, and validation functions must be consistent, i.e., compatible. Second, the consistent co-evolution of models and features, i.e., all induced model transformations, must be assured. This work explores a novel approach for tackling both challenges. By using Reference Attribute Grammars (RAG), a modeling technique known from compiler construction, it becomes possible to express all involved models and their validation logic uniformly. During model evolution, RAGs enable efficient incremental consistency checking and repair. We demonstrate the feasibility of a RAG-based product line in a case study.