|
||||
|
Transformation of Domain-Specific Languages (DSLs)The generation of an executable product instance requires the transformation of DSLs used for the specification of the product line's solution space to a uniform implementation language. This may involve model transformations and code generation steps. Within feasiPLe we introduce a multi-staged MDSD Process that realises these transformations by the use of several intermediate stages and abstraction layers. The process results in an integrated specification of the overall system. We assume, that the used DSLs are defined by a metamodel and DSL expressions can be represented by means of a model. Multi-Staged Product InstantiationThe instantiation of a product from a DSL-based system specification can be split into several stages which reflect the segmentation of functional, platform-specific, and contextual variability in the problem space of a product line. In the first step functional variability points are bound. For this purpose model-to-model transformations are used that map variant independent models to variant specific models. This transformation step is configured by the functional variant model. The following step binds platform specifics. This is done again by means of model-to-model transformations which map DSL models to platform specific models. The last step generates source code for a specific target platform from the given models. However, using multiple stages is only optional. With an adequate abstraction and a fitting variability modelling, code generation could start directly on DSL instances. Supporting arbitrary composition systems for product line instantiationThe multitude of transformation step requires a generic tooling environment that allows for their integrated usage. To support other realisation technologies relevant within the context of feasiPLe - like graph rewrite systems, CeasarJ, or Reuseware - we introduce the abstract concept of composition steps. Every composition step is associated with a certain composition system, e.g. model transformation, code generation, aspect weaving, or graph rewriting. A composition system describes a tool component that creates a set of output artefacts for a given set of input artefacts. For product line engineering the input artefacts are identified by the mapping of features (configuration items in the problem space) to the solution space. For the realisation of a multi-staged instantiation process, several composition steps are chained up. For the implementation of the tolling environment the following problems need to be considered:
|
|||
Copyright © feasiPLe Consortium 2006-2008 |