Sections

Skip to content. | Skip to navigation

You are here: Home Research Software Engineering Available Master's topics Reverse Engineering Models from Existing Software Systems

Reverse Engineering Models from Existing Software Systems

1-3 short or long theses

1-3 short or long theses

Supervisor:  Leon Moonen

Background:

Model-Driven Engineering (MDE) has become an increasingly popular approach to deal with the complexity of modern day software engineering. In the model driven software development paradigm, the focus is on developing models instead of source code. Like higher level programming languages were earlier developed to raise the level of abstraction from the assembly language, MDE aims at further raising the level of abstraction from source code to models. This means that in MDE, models are no longer considered as informal drafts or initial plans, but they are the final description of the system which is maintained and can be analyzed and used for the generation of automated tests and executable code, in addition to more traditional roles as supporting communication and comprehension among different stakeholders.

However, the paradigm shift from traditional development approaches to MDE adoption is not easy. In most industrial situations, MDE can hardly be started from a clean slate because organizations have significant vested interests in existing systems and the artifacts used for their creation (e.g. versioned source  files, build and configuration files, operational and issue tracking data).  As a result, there is a strong demand from industry for approaches that can support the migration towards model-driven engineering and bring the benefits of MDE to the continuing development and maintenance of the large amounts of existing software systems.

In the InspectIT project, we aim at addressing this situation and are investigating various aspects of the reconstruction of both structural and behavioral models from artifacts for existing software systems. For strong candidates, we have several possible thesis topics to choose from, including (but not limited to):

  • building robust & flexible fact extractors to analyze industrial software
  • cost-effective instrumentation and tracing of dynamic information from industrial scale software systems
  • reconstructing models by mining software repositories (such as data from a version control system)
  • recognizing (user defined) patterns in extracted data
  • case studies in model reconstruction
  • assessing the quality of reconstructed models
 

If you are interested in any of these topics, or something that might be closely related, come and talk to us to discuss oportunities.

What will you do:

In cooperation with the researchers in the project, you will

  1. analyze the relevant literature on reverse engineering and model-driven engineering;
  2. apply reverse engineering techniques and tools on industrial cases to investigate the state-of-the-art in recovering models;
  3. develop new algorithms for reverse engineering of models from (certain) software system artifacts;
  4. implementing these algorithms in user-friendly tools, e.g. as plugins for (Eclipse based) UML modelling frameworks.

What you will learn:

These thesis projects will provide you with knowledge and skills that are in high demand by today's industry. In particular, you will gain an in-depth understanding of

  • model driven engineering, modeling languages and tools;
  • reverse engineering and program analysis techniques;
  • developing techniques and tools that help industry deal with legacy software systems;
  • ins and outs of conducting industry-relevant research.

 

For more information please contact Leon Moonen
Personal tools