Software Inconsistency Resolver: Difference between revisions

From Computer Laboratory Group Design Projects
Jump to navigationJump to search
(Created page with "Proposed to Jasmin Jahić <jj542@cam.ac.uk>, to pass on to Chris Cooper-Bland of Endava A problem with software architectures is when they are inconsistent [** because X1, for example X2**]. These inconsistencies could be detected automatically by using an LLM to identify [** property Y **]. The inconsistent architecture can then be visualised using the interactive diagram tool draw.io, allowing developers to resolve the inconsistency with direct manipulation of the mod...")
 
No edit summary
 
Line 1: Line 1:
Proposed to Jasmin Jahić <jj542@cam.ac.uk>, to pass on to Chris Cooper-Bland of Endava
Proposed by Jasmin Jahić <jj542@cam.ac.uk>, to be discussed with Chris Cooper-Bland of Endava for 2026


A problem with software architectures is when they are inconsistent [** because X1, for example X2**]. These inconsistencies could be detected automatically by using an LLM to identify [** property Y **]. The inconsistent architecture can then be visualised using the interactive diagram tool draw.io, allowing developers to resolve the inconsistency with direct manipulation of the model, and outputting the results as XML that can be ingested by [** maintenance tool Z**].
This is currently phrased as a research project, so a specific problem and technical approach would need to be defined.
 
Your task is to make a architecture design consistency tool, probably based on LLM technology, that works on the different levels of abstractions. In its basic instance, the tool works with a model of software architecture and source code. It identifies parts of code belonging to abstract architectural components, suggests issues with breaking isolation, updates all the identifier names in a code base, for internal consistency and to ensure agreement with software architectural model (interfaces, component names, identifiers, other specifications). To create a software architectural model, we will use draw.io as the tool, as it enables generating clean xml from a visual representation. Besides the main goal of the project, the students will have the opportunity to explore:
 
- Can LLM read binary on any level and extract any software architecture-relevant information?
 
- Can LLMs enable control of source code from architecture (e.g., "notice" any change in architecture and suggest changes in the source code)?
 
- Can LLMs enable updates to architecture model based on the source code (back propagate any change from source code and conclude if anything should be changed in the architecture)?

Latest revision as of 08:18, 5 November 2024

Proposed by Jasmin Jahić <jj542@cam.ac.uk>, to be discussed with Chris Cooper-Bland of Endava for 2026

This is currently phrased as a research project, so a specific problem and technical approach would need to be defined.

Your task is to make a architecture design consistency tool, probably based on LLM technology, that works on the different levels of abstractions. In its basic instance, the tool works with a model of software architecture and source code. It identifies parts of code belonging to abstract architectural components, suggests issues with breaking isolation, updates all the identifier names in a code base, for internal consistency and to ensure agreement with software architectural model (interfaces, component names, identifiers, other specifications). To create a software architectural model, we will use draw.io as the tool, as it enables generating clean xml from a visual representation. Besides the main goal of the project, the students will have the opportunity to explore:

- Can LLM read binary on any level and extract any software architecture-relevant information?

- Can LLMs enable control of source code from architecture (e.g., "notice" any change in architecture and suggest changes in the source code)?

- Can LLMs enable updates to architecture model based on the source code (back propagate any change from source code and conclude if anything should be changed in the architecture)?