Programmeringskod abstrakt teknik bakgrund mjukvaruutvecklare och datorskript - Bildbanksfoto

Doktorandprojekt: Applicering av AI i mjukvaruutvecklingsprocessen

I detta doktorandprojekt försöker vi automatisera vissa delar i mjukvaruutvecklingsprocessen genom nyttjande av AI.

Fakta om projektet

Doktorand
Nils Johansson
Huvudhandledare
Mauro Caporuscio
Biträdande handledare
Welf Löwe, Diego Perez, Hatem Algabroun, Tobias Olsson
Deltagande organisationer
Linnéuniversitetet, Volvo CE
Finansiär
Volvo CE, KK-stiftelsen (Industriforskarskolan för Data Intensive Applications + (DIA+))
Tidsplan
Juni 2023 – Juni 2028
Ämne
Data- och informationsvetenskap (institutionen för datavetenskap och medieteknik, fakulteten för teknik)
Forskargrupper
Smart Industry Group (SIG)
Linnaeus University Centre for Data Intensive Sciences and Applications (DISA)
Forskarskola
Industriforskarskolan Data Intensive Applications (DIA)

Mer om projektet

En specifik uppgift som vi försöker automatisera är refaktorering av mjukvara. Det är inte ovanligt att mjukvaruutvecklande företag befinner sig i en situation där ett gammalt mjukvarusystem underhålls i åratal. Under denna tid eller när den först utvecklades, kan den drabbas av arkitektonisk försämring eller erosion.

Att omstrukturera ett mjukvarusystem till en ny arkitektur är dock en kostsam process som kräver stor ansträngning och engagemang. Vid refaktorering med en stor design-up-front-metod skapas initialt en ny design av programvaran. Alternativt används en referensarkitektur. När en ny arkitektur erhålls, påbörjas en process för att tilldela kod eller funktionalitet till varje modul i den nya arkitekturen. Istället för att mödosamt försöka analysera den gamla koden för att bestämma vilken funktionalitet som ska tilldelas vissa moduler, skulle det vara fördelaktigt att utföra denna mappning automatiskt genom AI. 

I denna studie försöker vi lösa denna aktivitet genom att formalisera som ett naturligt språkproblem med hjälp av maskininlärning och specifikt stora språkmodeller (Large Language Models). Beskrivningar av moduler används för att utgöra klasser. Källkod från den gamla mjukvaran klassificeras sedan till lämpliga klasser (moduler) från den nya arkitekturen, det är därmed ett textklassificeringsproblem.

Projektet är en del av forskningen i forskargruppen Smart Industry Group (SIG), Linnaeus University Centre for Data Intensive Sciences and Applications (DISA) samt ingår i Industriforskarskolan Data Intensive Applications (DIA).