Here is the abstract of my Diploma Thesis, which I defended today.
As the model driven approach to software engineering broadens its adoption base, models which are considered as first class technological objects, along with their manipulation as such, become increasingly important during the whole of the technical lifecycle of software projects.
In many applications, it is necessary to merge, transform and compare different models that describe different parts of a system. Examples of such models are design models, control models, system monitoring models etc. Merging new models from existing ones is essential for building tools that support the model driven development of complicated software applications.
The aim of this diploma thesis is to design a model algebra, with specific operators that facilitate operations such as model merging and model differencing. The algebra is designed for models that conform to the Meta Object Facility (MOF) specification and wich are represented as graphs with regard to their mathematical formalism.
To this end, we study the merging and differencing operators concerning their function, their behavior and their algebraic properties. We also look into the essential preconditions for their execution and we present algorithms that implement them. Moreover, we propose an extention to the model merging operator, using matching rules written in triple graph grammars, with the intention of achieving greater flexibility in describing ways to match models that we want to merge.
This, extended merging operator is then used to tackle a practical example of merging models representing log files that conform to the Common Base Event (CBE), a specification for logging events in distributed software systems.
Model driven engineering, software engineering, software models, model algebra, model operators, model merging, model differencing, triple graph grammars, log files.