Skip to content

PhD Projects

Below are a few PhD projects in my areas of interest. All projects require strong object-oriented design and development skills.

LLMs for Model-Driven Software Engineering

Large Language Models (LLMs), such as GPT-5 and Mistral, have demonstrated strong performance on natural language tasks (see metamodelling-with-chatgpt). The following topics consider applications of LLMs to model-driven software engineering.

  • LLM-Driven Model Transformation Synthesis: Explore whether LLMs can generate model-to-model (M2M) and model-to-text (M2T) transformations from examples or specifications while preserving correctness and maintainability.
  • Semantic Validation of Models Using LLMs: Investigate the capability of LLMs to detect inconsistencies, anti-patterns and or missing constraints in domain-specific models.
  • Multi-Agent LLM Frameworks for Collaborative Modelling: Develop a framework in which specialised LLM agents (for example, domain expert, consistency checker, and transformation agent) collaborate to build and evolve domain models.
  • LLM-Supported Domain-Specific Language Engineering: Investigate how LLMs can assist in defining domain-specific languages and related tooling (e.g. metamodels, editors, code generators) from domain descriptions or exemplar models.

Traceable and Partially Editable Model Views

Picto [1] is a tool for visualising models via model-to-text transformation to SVG/HTML. In the example below, a risk model (top right) is transformed into three HTML-based views ("High", "Medium", "Low"), that visualise risks with respective likelihood/severity in the model.

Currently, views in Picto are read-only and there is little support for traceability between the model and the views. The aim of the project is to extend Picto with support for partially-editable views (e.g. editing the title of the first risk in the view within Picto should update the respective risk in the model) and for tracing view elements back to their respective model elements (e.g. ctrl+click on the first yellow cell of the view should take the user to the l attribute in line 6 of the model. The main challenge is to detect which parts of the generated views have been generated from which model elements by capturing and analysing traceability information provided by the model-to-text transformation engine, and to decide which edits in generated views can be unambiguously propagated to the source model.


Last update: November 18, 2025