institut f¨ur informatik - PST Thesis Management Interface - LMU
institut f¨ur informatik - PST Thesis Management Interface - LMU
institut f¨ur informatik - PST Thesis Management Interface - LMU
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
2.1. Model-Driven Software Development<br />
The software component example given earlier in this section reflects this nature in a small<br />
scope: a general-purpose modeling language, UML, was used to create a specific modeling<br />
language intended to model simple AUTOSAR software components.<br />
DSLs can help bridge the gap between the problem and the solution domains: they allow<br />
solutions to be expressed in terms of problem domain entities and at the level of abstraction<br />
of the problem domain [FR07]. This makes it possible for domain experts to not only use<br />
DSLs, but also understand, validate and develop the language themselves, while not having<br />
to be concerned with implementation details at lower abstraction levels [vDKV00]. Thus,<br />
DSLs offer abstraction qualities that are necessary to express models in MDSD.<br />
Model transformation<br />
Model transformations are used to transform models that were initially conceived for some<br />
purpose into models that are better suited for other purposes while maintaining model traceability.<br />
Maintaining model traceability means keeping the transformed models consistent and<br />
the relationship between them traceable [FR07, HT06]. A typical example is the transformation<br />
from a technology-independent, high-level abstraction model to a technology-specific,<br />
low-level abstraction model that features specific data instead.<br />
Model transformations require a model as one of the inputs in the automation process and<br />
one or more models and/or different levels of executable code as output. Different types of<br />
transformations exist which can be classified as follows: [BCT05]<br />
• Refactoring transformations reorganize a model based on well-defined criteria. The<br />
output is a revision of the original model - the refactored model.<br />
• Model-to-model transformations convert information from one or more models to<br />
another model or a number of models. The goal is usually to convert information at<br />
one abstraction level to a different abstraction level. This type of transformation can<br />
also have other purposes that are specific to certain issues within the problem domain<br />
- such a transformation is the subject of this thesis (see section 4.1.1).<br />
• Model-to-code transformations convert model elements into program code and are<br />
often the final transformation that is performed.<br />
Transformations can be applied both manually and automatically [BCT05]. In a manual<br />
transformation, a developer or a domain expert analyzes the input model and manually<br />
creates or modifies the elements in the transformed model by interpreting the information<br />
in the original model. Automatic transformations apply a series of changes to a single or<br />
a number of input models based on predefined transformation rules. The rules can be provided<br />
by a tool used to perform the transformations or can be manually tailored based on<br />
domain-specific knowledge. Utilizing automatic transformation requires the input model to<br />
be syntactically and semantically well-formed. Combined, semi-automatic approaches where<br />
the automation process requires manual input in order to produce a correct transformation<br />
are possible, too (see sections 2.3.2 and 4.1.1).<br />
9