A Metamodeling Framework for .NET

OData support
Dr. Simon Balázs
Department of Control Engineering and Information Technology

During the history of software development a common need was to bridge the communication gap between the developers and their clients. One possible way to do this is to create the model of the concrete system in a metamodelling system which uses the terminology of the target speciality, in order that the client can understand our system easier.

The most common problem with creating such systems is that the learning of the modelling language and the creation of the model itself seem to be wasted time from the perspective of the project itself. Most of these modelling systems support some kind of code generation, create this way a base for the concrete system and fasten the development itself.

My thesis consists of the planning and implementation of a code generation framework. The target audience of the framework are software engineers who want to develop object oriented software systems. The users of the system will be helped in solving two common problems of object oriented programming: two-way association handling and multiple inheritance.

To design a framework which is easy to use on different projects is a hard – if not impossible – task, so during the planning of this system it was of upmost importance that the modules of the framework have to be as separated from each other as possible. This way the concrete implementations can be given by the team for the concrete project – possibly reusing the modules, or parts of the modules of the default framework implementation.

This document includes the review of the basic metamodelling and code generation, and serves as a documentation of the problems and design choices concerning the planning and development of the framework. The document also contains an implementation of the framework, and the example – and proof of concept – model, which is used by the department developed SOAL language.


Please sign in to download the files of this thesis.