29. Februar – 05. März 2004, Dagstuhl Seminar 04101
Language Engineering for Model-Driven Software Development
J. Bézivin (Univ. Nantes, FR), R. Heckel (Univ. Leicester, GB)
Auskunft zu diesem Dagstuhl Seminar erteilt
Model-driven approaches to software development require precise definitions and tool support for modeling languages, their syntax and semantics, their notions of consistency and refinement, as well as their mappings to the implementation level. In order to support model-driven development in a variety of contexts, we must find efficient ways of designing languages, accepting that definitions are evolving and that tools need to be delivered in a timely fashion.
In this respect, language definitions are not unlike software. Thus, a discipline of language engineering is required to support the design, implementation, and validation of modeling languages with the goal to deliver languages at low cost and with high quality.
An important contribution of any engineering science, besides the actual technology provided, is the meta knowledge about what are the relevant concerns to be addressed, what are the possible solutions, and what concern is best addressed in a given context by which kind of technology.
It is understood that different concerns of language engineering, like the defi- nition of abstract syntax and well-formedness rules, operational and denotational semantics, consistency and refinement relations, and model transformations, will, in general, require technologies from different domains.
A framework for classifying, choosing, and relating different solutions domains is provided by the concept of technological spaces [KBA03]. A technological space is a working context with a set of associated concepts, body of knowledge, tools, acquired skills and possibilities, often associated to a given community. Well-known examples include XML, UML meta modeling, graph transformation, algebra and logic, programming languages, etc.
It has been the goal of the seminar to investigate relevant concerns and promising solution domains for language engineering, learn from specific solutions presented by the participants, and attempt a provisional classification and mapping. To illustrate problems and available solutions, a sample language engineering problem was proposed and elaborated.
After a more detailed discussion of the architectural aspect of language engineering, this summary presents this case study, discusses concerns and open issues raised by the corresponding language definition problem, and gives a more general motivation of technological spaces as solution domains for model-driven development.