Bachelor/Master Thesis: Automatic GUI Generation from Structural Design Patterns in Class Diagrams

Modern software systems are often specified using UML class diagrams. These diagrams serve as blueprints for the system architecture, including relationships, hierarchies, structural design patterns and more. However, the development of graphical user interfaces (GUIs) visualizing these abstract models can be cumbersome. We developed a tool called CD2GUI based on MontiGem, a generator framework for web applications, to automate this transformation step by generating GUIs from class diagrams.

While the CD2GUI tool can automate GUI generation based on structural elements (e.g. classes and associations), it lacks the ability to interpret higher-level architectural patterns, such as Composite. These structural design patterns are common in practice and carry meaningful implications for how a GUI should be structured, e.g. a tree view for composites.

Within this thesis, the goal is to develop an extension for CD2GUI enabling the recognition of different structural design patterns in class diagrams and the automatic generation of GUI representations. The Composite pattern can be used as a starting point but other patterns and their visualizations should be explored as well. The approach will be integrated in the CD2GUI tool also using features from MontiGem.

Tasks of this thesis

  • Elaborate which structural design patterns are relevant for GUI visualization and how they can be visualized
  • Create a mapping from design patterns to GUI components
  • Implement a mechanism that interprets class diagrams and analyzes them for design patterns
  • Include the implementation into the generation process of an application using MontiGem
  • Create test data and evaluate the approach with an example development project

Desirable Skills

  • Interest in software engineering processes and model-driven engineering
  • Lectures SLE or MBSSE
  • Interest in web development (TypeScipt, Angular) and GUIs
  • Programming in Java

Contact

Interested in this topic? Inform yourself about our current research and publications.

For more information please sent your application documents to Sebastian Will.

Aufgabenstellung:

Prof. Dr. Bernhard Rumpe
Lehrstuhl Software Engineering
Ahornstr. 55
52074 Aachen