During model-driven software development the structure and behavior of a system are designed. The advantage of this method is that it raises productivity. The source code of components can be automatically generated, the system configuration can be defined and documentation can also be derived from the model specified. Furthermore, even during development the system can be validated if is working as intended, eliminating design errors in an early phase. Because of this in the case of critical systems the presence of tool support for this method is vital.
The most popular language for modeling system behavior is the state machine defined by the UML2 standard. However, it is very important to be able to verify system behavior directly. In this thesis, I will present the semantics of state machines, and after this I will propose a solution for the problem above.
During this task I used Papyrus, an Eclipse Plugin to design the state machines I used. I have created a state configuration model, to store information about the current state of a state machine. The metamodel for this model was created in EMF, while the behavioral rules for the state machine were created in EMF-IncQuery graph patterns.
The structure of this thesis is the following: first I examine other solutions for the problem which already exist, and then I present the technological background for my own work. I present the behavioral semantics of state machines with rules based on graph patterns. After this I will go over the process of designing the solution then it’s implementation. At the end I conclude my experiences and results and also present possible future plans of work.