Nowadays model driven software development (MDSD) is getting more and more important as usually the complexity of hardware and software systems is far beyond the limit which can be handled easily by traditional paradigms. This approach is an alternative to create domain-specific development environments to help the rapid prototyping for not only software engineers but for experts in the given domain too, speeding up the whole development lifecycle of the product. Model transformation is tightly connected to MDSD as it automates the mapping between different kinds of models during development. The MDSD related technologies have been an important research area in the past years, but creating domain-specific tools still requires expertise in a wide range of areas: metamodeling, transformations, language design.
The thesis relies on the Eclipse Modeling Framework as the modeling environment which is an industry standard platform used for (meta)modeling. EMF-IncQuery is based on this technology and provides a pattern language to evaluate declarative queries over EMF models efficiently. This efficiency is due to incremental graph pattern matching, that is, the queries are answered using a cache that is continuously maintained after each model manipulation.
One of the main conceptual results of the thesis is the EMF-IncQuery backed event-driven rule execution engine. This extension allows attaching predefined actions (written in Java) to queries and automatically executing them when a new match of a query appears (or disappears). However, in many practical problems transitive closure of models is widely used which requires extending the pattern language of EMF-IncQuery. During the thesis work I have investigated various incremental and nonincremental transitive closure algorithms and created prototype implementations to compare their runtime characteristics using synthetic performance tests. As part of the work, I have adapted an algorithm which is based on the incremental maintenance of the strongly connected components of the graph and it came out to be the most efficient out of the ones that I have implemented.
To illustrate the practical applications of the results I have carried out three case studies as part of the thesis work: the validation framework of EMF-IncQuery, stochastic simulation of Peer-to-Peer VoIP networks and a basic module for Design Space Exploration for runtime reconfiguration of cloud-infrastructure models.