Domain-specific languages (DSLs) are a means to let developers concisely implement problem solutions in a way very natural to the problem domain. For example, the structure of the domain and the terminology is reflected the DSL. Recently more and more tools are around supporting the development of DSLs that even let you develop graphical modeling tools for DSLs with little effort. This means that you can draw a (domain-specific) diagram of your solution rather than writing program text for it.
The aim of the assignment is to develop a graphical modeling tool for an existing DSL that lets you define schedulers. In this language, it is possible to define how to order the execution of tasks like program threads, but also hardware components in embedded systems or work flow elements.
For this language, text-based tools like an editor or a compiler have been implemented using the Eclipse XText framework. EText is based on the Eclipse Modeling Framework (EMF) and provides an Ecore model of the Scheduling DSL. In this assignment, you should use the Graphical Modeling Framework (GMF), which is also based on Ecore models and allows you to tightly integrate with and partly re-use the existing tools.
In this assignment, you should explore to which degree it is convenient and natural to define scheduling solutions in a graphical way. Therefore, you should define the expressiveness of the graphical version of this language and it can be independent from the existing text-based language. It is, nevertheless, expected that that the graphical language is a subset of the textual one which contains imperative components which are inherently difficult to model graphically. For the integration of the tools developed in this assignment with the existing tools, it should be possible to visualize those program parts expressible in the graphical language. Vice versa, it should be possible to generate stub program text for graphically developed programs, which programmers can complete using the textual tools.
List of tasks
- Get familiar with GMF (including EMF and Ecore)
- Get familiar with the scheduling DSL and its Ecore model
- Survey model-to-text and text-to-model transformations
- Develop the graphical modeling tools in GMF and find good/intuitive graphical representations of elements in the scheduling DSL and of relations between them
- Define transformations from graphical to textual representation
- Define transformations from textual to graphical transformations
- From the experience with the graphical programming languages, make suggestions for improving the language as a whole
- The Eclipse Graphical Modeling Project: http://www.eclipse.org/modeling/gmp/
- Kardelen Hatun, Christoph Bockisch, Hasan Sözer and Mehmet Akşit, A Feature Model and Development Approach for Schedulers, In Proceedings of MISS @ AOSD, 2011
- Perdita Stevens, Bidirectional model transformations in QVT: semantic issues and open questions, In Software and Systems Modeling, Springer, 2011