By Romana Jakob, Julian Lehner, Alexander Schörghuber
Introduction
In the last decade a dramatic growth of software intricacy and different methodologies and techniques have been proposed to support the development of complex systems. Model Driven Engineering lays the focus more on modelling than on coding and lets software architects harness the opportunity of dealing with higher-level abstractions.
Basically said, programming is completely based on
abstraction, which increases the need for models in order to get a better
understanding of the whole problem. Nowadays, there is a huge amount of diverse
tools to create languages. Therefore, the need for objective empirical tool
comparison increases.
Models can only develop their full potential if they
can be manipulated by means of automated transformation to obtain different
kinds of artifacts. These artifacts may range from other models to
documentation or even implemented code. At this point it is vital, that the
designers and developers are able to comprehend the overall possibilities of
the framework used for development. It is left to say, that each system focuses
on different outcomes and therefore it is important to know the differences and
the advantages and drawbacks of the used system within the applied field.
Thus, when it comes to evolving a system it is crucial
to obtain an accurate picture of the quality requirements of the system. In
this work, the focus especially lies on frameworks for the realization of a
model-driven approach to language development. The concrete tools used in this
comparison are the Eclipse Modeling Framework (EMF) which is used for the definition
of a metamodel together
with Xtext which is used for defining a textual
notation and JetBrain's Meta programming system (MPS).
The core
topic of the project is the comparison of these tools. EMF may be more
established as it enjoys a longer market presence but MPS has definitely made
up its delay. The paper tries to develop neutral criteria to compare modeling
frameworks and apply them on EMF and MPS based on an example implementation of
IML (Intermediate Modeling Layer).
Evaluation
By implementing a pre-defined language named IML in these two meta modeling systems, the knowledge was gained to accomplish the evaluation. In each of these two implementations, the focus was held on using system specific elements and do not focus on details and syntactic sugar.
To summarize the outcome of the evaluation it is
important to say that each of the considered systems has its own advantages and
disadvantages regarding the used evaluation criteria. To pick out some of the
features there are for example those that are really good in both systems, like
Feature coverage, Functionality or Scalability. Then, there are criteria that
are very different in both systems like Lines of code (or better the textual
overhead) because of the spread files approach of MPS. A little bit surprising
is that, there is no criteria that has got a bad grade in both systems. This as
much more shows that the existence of both meta modelling systems is
legitimate.
Outlook
The work gives only a small overview about some parts of those very powerful meta modeling tools. The focus was on analyzing an existing language in EMF and implementing this language completely from scratch in MPS by focusing on the Meta-Modeling and defining and implementing of the abstract syntax.
And then to analyze the different approaches and make
a comparison of those two systems. Because MPS is not so well known and more
new than EMF, it was also a bigger part of the project to describe some basics of
MPS. The task for the future would be to work out more examples about the
additional features of MPS and to compare them with the existing
implementations of EMF.
EMF is a very powerful and wide meta modeling system
with a big community and because of using eclipse also continously enhanced,
for example in the area of creating View Models and using renderer based on the
Ecore Domain Model to achieve user interfaces. A study would be interesting on
how these approaches could be realized in MPS. Maybe this is more work to do to
fit it into a single project, but some fundamental research would be fine.
For more information on the project, we kindly refer to the full report and the source code of the implementation.
For more information on the project, we kindly refer to the full report and the source code of the implementation.
No comments:
Post a Comment