Achieving Extensibility Through Product-Lines and Domain-Specific Languages: A Case Study
ICSR-6 Proceedings of the 6th International Conerence on Software Reuse: Advances in Software Reusability
Verifying aspect advice modularly
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
When and how to develop domain-specific languages
ACM Computing Surveys (CSUR)
Verifying feature-based model templates against well-formedness OCL constraints
Proceedings of the 5th international conference on Generative programming and component engineering
Safe composition of product lines
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
Language support for managing variability in architectural models
SC'08 Proceedings of the 7th international conference on Software composition
Embedded software development with projectional language workbenches
MODELS'10 Proceedings of the 13th international conference on Model driven engineering languages and systems: Part II
Statically safe program generation with safegen
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Mapping features to models: a template approach based on superimposed variants
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Defining domain-specific modeling languages to automate product derivation: collected experiences
SPLC'05 Proceedings of the 9th international conference on Software Product Lines
Code reuse with language oriented programming
ICSR'11 Proceedings of the 12th international conference on Top productivity through software reuse
Hi-index | 0.00 |
Product line engineering deals with managing and implementing the variability among a set of related products. We distinguish between two kinds of variability: configuration and customization. Customization variability can be described using programming language code or creative construction DSLs, whereas configuration variability is described using configuration based approaches, such as feature models. Many product lines have both kinds of variability, and they need to be integrated efficiently. This paper describes an approach for product line engineering using projectional language workbenches. These represent code and models with the same fundamental technology, enabling the mixing of models and code. They make the tight integration between several domain-specific languages possible and simple. Since they can store arbitrary information in models, it is possible to overlay configuration variability over customization variability (i.e. apply feature model-based configuration to code and models). Because of the projectional approach to editing, programs can be shown with or without the dependencies on feature models, they can even be rendered (and edited) for a specific variant. This approach leads to highly integrated and productive tools for product line development. The paper explains the approach, outlines the implementation of a prototype tool based on Jetbrains MPS and illustrates the benefits using a small product line for embedded systems.