The UML standard is the most widely used modelling method associated with model-driven development. It can be used for complex systems design and documentation. In recent decades one of its major drawback is that models defined this way do not support direct execution. This comes down to the fact, that the UML standard defines contradictory semantics regarding some of its language constructs.
The xtUML initiative has been created to solve these deficiencies. The aim of xtUML is to define an executable modelling language based on UML. The bases of this language is provided by component, class and state machine diagrams which describe structure and behaviour support the definition of various actions using dedicated action languages such as ALF. Another possible approach is UML-RT, where the main emphasis is on layered structure. The xUML-RT language tries to combine the benefits of the two approaches. Inter alia it reuses multi-level state machines from UML-RT and the message based communication between components from xtUML.
In this thesis, I use the xUML-RT language. The goal is to provide a method for automatically generate a distributed Java realization of the system under design captured as an xUML-RT model, where the distributed behaviour is implemented using the actor design pattern as supported by the Akka framework.
I adapted an ongoing project – which includes a transformation-chain from xUML-RT to C++ – as the basis of my work. First of all I have extended the complex model architecture of the project and replaced the C++ specific parts with a domain specific model describing the Java language. After this I have applied these changes to existing model transformations and created a new transformation implementation for the Java language describing part of the model. Finally, I have modified the code generator component to generate application on Java programming language. In this thesis, I have also examined the scaling of the completed transformation chain and evaluated the pros and cons of my approach compared to a simple Java realization.