quite a rigid solution, but, at least, it does not require
complex a runtime framework.
Since the current technical solution is our first
implementation drop, mostly we aimed to validate
our assumptions in practice; hence we decided to
provide a quick prototypical execution framework, by
generating Java code from the AST instances stored
in the DMLA models.
The framework itself has been programmed in
Java and it consists of a model repository, which
contains the tuples of the model and a symbol table
for built-in and custom operations. The runtime can
generate code from the tuples, compile it, and load the
compiled code dynamically. It is important to note
that the generated code currently takes into account
only the Core and the Bootstrap, so it is independent
of DMLAScript syntax and its Xtext module. Hence,
the syntax of DMLAScript is currently handled by an
external tool, and thus should be thought of only as
syntactic sugar over DMLA’s operation language.
5 CONCLUSIONS
Model-driven development has become a feasible
option to create and maintain complex systems.
However, static modeling solutions are not always
sufficient any longer in the modern era of industrial
applications. Thus, the demand for dynamic modeling
techniques became a natural tendency in many fields.
Although extending static models with external
operation languages and execution frameworks can
sometimes meet the requirements, it would be more
elegant, and also due to its design more verifiable and
customizable, to build the mechanism of operations
directly into the modeling framework. From the
theoretical perspective, representing operations as
modeled entities has been already researched and well
understood in detail, but a seamless, self-describing
and non-circular integration of these ideas into a fully
functional modeling framework has not been
implemented up till now.
Our approach, the Dynamic Multi-Layer Algebra
(DMLA) provides such a practical solution for the
challenge. DMLA features a highly customizable,
multi-layer modeling and validation structure that
allowed us to build a fully modeled operation
language into it. In general, this language enables
programming with operations over modeling entities,
but its real strength only gets to the surface when it
comes to specifying the validation formulae of multi-
level instantiation in particular. That ability results in
a fully self-describing, self-validation modeling
framework, which can validate even its own language
definition. Moreover, since the operation language
can be part of any modeled domain, it may be further
extended or customized.
Currently, the DMLA environment provides as
default a high level, Java-like operation language,
DMLAScript, which is suitable to keep the
specification of the operation logic within
manageable size. In the future, we are investigating
ways to speed up the current validation process by
parallel execution. We are evaluating the possibilities
for optimizing the core operations of the validation by
parallelizing them with GPU support, which could
strike a balance between the flexibility of the
bootstrap and the performance of its execution.
REFERENCES
Atkinson, C. & Gerbig, R., 2012. Melanie: Multi-level
modeling and ontology engineering environment.
Proceedings of the 2Nd International Master Class
on Model-Driven Engineering: Modeling Wizards,
pp. 7:1 - 7:2.
Atkinson, C., Gutheil, M. & Kennel, B., 2009. A Flexible
Infrastructure for Multilevel Language Engineering.
IEEE Transactions on Software Engineering, 35(6), pp.
742 - 755.
Atkinson, C. & Kühne, T., 2001. The Essence of Multilevel
Metamodeling. The Unified Modeling Language.
Modeling Languages, Concepts, and Tools, Volume
2185, pp. 19-33.
Boerger, E. & Stark, R., 2003. Abstract State Machines: A
Method for High-Level System Design and Analysis.
s.l.:Springer-Verlag Berlin and Heidelberg GmbH &
Co. KG.
Clark, T., Sammut, P. & Willans, J., 2015. Super-
Languages: Developing Languages and Applications
with XMF.
Combemale, B. et al., 2013b. Reifying Concurrency for
Executable Metamodeling. Software Language
Engineering. SLE 2013. Lecture Notes in Computer
Science, Volume 8225, pp. 184-203.
Combemale, B. et al., 2013a. Bridging the Chasm between
Executable Metamodeling and Models of Computation.
Software Language Engineering. SLE 2012, Lecture
Notes in Computer Science, Volume 7745, pp. 184-203.
DMLA Website [Online] https://www.aut.bme.hu/Pages/
Research/VMTS/DMLA [Accessed 23 04 2017].
Gutheil, M., Bastian, K. & Atkinson, C., 2008. A systematic
approach to connectors in a Multi-level Modeling
Environment. Proceedings of the 11th International
Conference on Model Driven Engineering Languages
and Systems, Volume 5301, pp. 843-857.
Kermeta Website [Online] http://diverse-project.github.io/
k3/ [Accessed 23 04 2017].
Lara, J. d. & Guerra, E., 2010. Deep Meta-modelling with
MetaDepth. Objects, Models, Components, Patterns,
Volume 6141, pp. 1-20.
MODELSWARD 2018 - 6th International Conference on Model-Driven Engineering and Software Development
526