Modeling Variability in Template-based Code Generators for Product Line Engineering
Timo Greifenberg, Klaus M\"uller, Alexander Roth, Bernhard, Rumpe, Christoph Schulze, Andreas Wortmann

TL;DR
This paper introduces a novel approach for creating flexible, reusable product lines of template-based code generators by explicitly managing variability through feature-oriented concepts and variability regions.
Contribution
It applies feature-oriented programming concepts to make variability explicit in code generator templates, enabling modular and configurable product line development.
Findings
Explicit variability regions improve reusability of code generator templates.
Layer-based organization facilitates flexible product line configuration.
Automatic selection of necessary layers simplifies customization.
Abstract
Generating software from abstract models is a prime activity in model-drivenengineering. Adaptable and extendable code generators are important to address changing technologies as well as user needs. However, theyare less established, as variability is often designed as configuration options of monolithic systems. Thus, code generation is often tied to a fixed set of features, hardly reusable in different contexts, and without means for configuration of variants. In this paper,we present an approach for developing product lines of template-based code generators. This approach applies concepts from feature-oriented programming to make variability explicit and manageable. Moreover, it relies on explicit variability regions (VR) in a code generators templates, refinements of VRs, and the aggregation of templates and refinements into reusable layers. Aconcrete product is defined by…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Software Engineering Methodologies · Service-Oriented Architecture and Web Services · Model-Driven Software Engineering Techniques
