Thesis proposal "Coupled object models in web programming"


This proposal is ideally suited for a Master's thesis.

The thesis will be supervised by Prof. Dr. Ralf Lämmel, University of Koblenz-Landau.

The candidate will be a member of the Software Languages Team.

Research context

There is a recurring need in software design or architecture to use related but systematically different object models. For instance, web-based systems often use one object model on the server and another similar object model on the client. The former object model supports full representation of the application data in a native object-oriented manner. The latter object model supports efficient client views and hence it is driven by considerations of data access and GUI views. The relationship between such models is typically not formalized and automated, which leads to error-prone and laborious hand-written mappings and common co-evolution challenges.

Scientific contribution

The thesis consists of an empirical part and a conceptual part. The former part is supposed to examine web-based systems and to analyze the use of coupled object models in practice. The latter part is supposed to develop a transformational approach to the representation of relationships between related object models. These transformations are also meant to support typical operations on the object models at the data level so that, for example, data can be pushed and pulled either way.

Practical contribution

Within the context of some concrete approaches to web programming, e.g., REST and GWT, the transformational approach, as mentioned above, is to be implemented and demonstrated with a number of representative examples.

Additional information

This is a proposal for a research-oriented Master's thesis. As a result, the primary goal is to produce publishable results. The candidate will be supervised closely, but is also expected to be organized and self-motivated. This proposal requires strong background in programming and software engineering.

Some of the following areas should be known to the candidate:

  • Generative programming
  • Round-tripping
  • Model-driven engineering
  • Client-server
  • Web programming