Bachelor and Master Theses

To apply for conducting this thesis, please contact the thesis supervisor(s).
Title: Preserving Architectural Intent in AI-Assisted Software Maintenance
Subject: Software engineering
Level: Advanced
Description:

AI coding assistants can implement changes that pass functional tests while violating architectural decisions. For example, introducing dependencies between modules that should remain independent. This thesis aims at investigating how often this happens and whether continuous architectural conformance feedback helps prevent or correct these violations.

 

Possibel Research Goal

Evaluate whether AI-generated maintenance changes preserve documented architectural intent, and whether automated architectural feedback improves the results.

 

Possible Research Questions

  1. How often do functionally correct AI-generated changes violate documented architectural constraints?
  2. Does continuous conformance feedback reduce these violations compared with architectural instructions alone or checking after an initial implementation?
  3. What additional effort and execution cost does continuous feedback introduce?

 

Possible Research Method

Controlled experiment using public GitHub repositories:

  1. Select Java projects containing documented architectural decisions, maintenance tasks and runnable functional tests.
  2. Translate selected structural decisions,such as layering, module boundaries and forbidden dependencies—into validated executable checks using ArchUnit, reusing existing architecture tests where available.
  3. Ask LLMs/AI coding agents to perform historical maintenance tasks from the corresponding pre-change repository versions.
  4. Compare three workflows: architectural instructions alone, checking after the initial implementation, and continuous checking with feedback during development.
  5. Evaluate functional correctness, newly introduced architectural violations, their correction during development, and execution cost.

The initial target is 80 maintenance tasks across eight projects, evaluated with multiple AI models and repeated runs.

A pilot will refine the sample and establish feasibility.

Start date:
End date:
Prerequisites:

Strong programming and debugging skills, including the ability to understand and modify unfamiliar codebases.

Confidence using Git and GitHub, including checking out historical versions, inspecting changes and working with branches.

Ability to write scripts and automate experiments, including running tools, collecting results and processing data.

A good understanding of software architecture, especially modularity, layering and dependencies.

IDT supervisors: Alessio Bucaioni
Examiner:
Comments:
Company contact: