The goal of Model Driven Engineering (MDE) is to achieve a system design starting
from a high level of abstraction and then refining it gradually into a specific
realization of a solution. As a result of this approach the initial model of the design
problem is not specific enough to automatically generate a solution, rather it spans
a design space of models possibly containing a large number of solutions.
Design Space Exploration (DSE) is a search based methodology that finds an
appropriate solution within such a design space that is sufficiently good with regards
to multiple criteria. These criteria however in the case of MDE are more often
than not described by complex structural requirements over the model like network
connectedness or model interdependency, in which cases the otherwise widely used
methods of logical programming or SAT solvers are either hard to apply or do not
scale sufficiently well.
In response to the drawbacks of traditional approaches several research projects
started trying to define unified frameworks based on the MDE approach that are
specifically designed to deal with such requirements. VIATRA-DSE is a framework
that achieves this by defining graph patterns and transformation rules to be used
within a graph pattern matching engine. The used engine is called EMF-IncQuery
and it provides highly scalable incremental pattern matching for outstanding performance.
The VIATRA-DSE framework has two important drawbacks: (i) it can
only operate on models defined in it’s own modeling environment and (ii) due to it’s
monolithic architecture it cannot scale sufficiently well to very large problems.
The scope of this Master’s Thesis is to improve the scalability capabilities of
the previously developed VIATRA-DSE framework while utilizing as much of the
previous research as possible in order to reach a level of performance that enables
the framework to be used in industrial scale design problems. In order to achieve this
goal, I have (i) used most of the techniques already in the VIATRA-DSE framework,
(ii) improved upon the system by extending it with the ability to communicate the
design problem data over the network and made it possible to (iii) do computations
on multiple computers simultaneously, greatly improving the overall performance.