Programanalys kan vara avgörande för kvaliteten i mjukvara. Analysverktygen kan också vara svåra att förstå och integrera i arbetsflödet. Forskningsprojektet ADAPT ämnar lösa det genom att ge verktygen förmågan att anpassa sig efter användare och kontext.
Det råder en hatkärlek till programanalysverktyg. Samtidigt som de kan vara absolut nödvändiga för att hitta brister som fel, problem och säkerhetshål i mjukvarukod, kan de ofta vara svåra att använda. Flera studier visar att utvecklare upplever att verktygen är svåra att integrera i arbetsflödet, att deras resultat är svåra att förstå eller att de ger så mycket information att det blir svårt att hantera.
– När utvecklare inte kan nyttja kunskapen verktygen ger, påverkar det såklart kvaliteten i mjukvaran. Och när det kommer till programvara inom industri och samhällskritiska system kan konsekvenserna bli rätt allvarliga, säger Emma Söderberg, forskare och universitetslektor i datavetenskap vid Lunds tekniska högskola.
Där driver hon projektet ADAPT: Adaptiva utvecklingsverktyg. Projektet studerar hur programanalysverktygen kan göras mer adaptiva gentemot användare och kontext – och på så sätt ge bättre effekt. Projektet är fullt finansierat av SSF.
– Vi vill ta in det mänskliga perspektivet i hur de här verktygen byggs och integreras in i utvecklingsmiljön, säger hon.
Flera infallsvinklar
Projektet studerar flera möjliga lösningar. En av dem är att verktygen automatiskt ska kunna avgöra användbarheten i deras felmeddelanden. Om informationen inte är användbar i det aktuella sammanhanget ska verktyget inte heller visa det.
– Programanalysverktygen kan vara jobbiga att ha igång i en arbetsmiljö. En av de vanligaste frågorna som dyker upp hos användare är hur man kan stänga av dem. Om verktygen kan bli bättre på att detektera när resultaten används så kan vi välja när resultaten ska presenteras och på så sätt bidra till en bättre användarupplevelse.
Projektet tittar även på hur de kan utveckla interaktionen mellan verktyg och användare. Emma Söderberg lyfter en kompilator som ett exempel. Det är en typ av programanalys som kan ge många svårtolkade felmeddelanden samtidigt som den bara hanterar envägskommunikation.
– Vi är nyfikna på att se vad som händer om vi designar interaktionen med användarna mer som ett samtal, så att användaren kan tala om att den inte förstår ett analysresultat. Om kompilatorn kan komplettera med varför den kommit fram till resultatet, kan det ge mer kontext och på så sätt göra resultatet lättare att förstå.
Därtill undersöker forskarlaget hur verktygen kan anpassa sin hjälp efter användaren själv. Ett centralt spår är att eye tracking ska hjälpa verktyget urskilja vilket läsmönster användaren har och därigenom veta vilken hjälp som är relevant att visa.
– Ibland läser man kod, ibland skriver man kod, ibland granskar man kod. Det är också stor skillnad på en person som är ny på jobbet och en som jobbat med samma sak i 20 år. Till exempel kan en mer erfaren utvecklare känna igen avvikelser enklare, och kan därför läsa kod på ett annat sätt.
Drivs av det mänskliga perspektivet
Projektet startade 2020 och pågår till mars 2025. Hittills har projektet byggt förståelse för problematiken och hur olika användare arbetar. Fem år är lång tid i sammanhanget och projektet har under tiden sett en ny typ av programmerare växa fram.
–Stora språkmodeller (LLM, reds. anm.) som Chat GPT har ju fokus på just konversationsbaserad interaktion. Vi har intervjuat personer som aldrig annars skulle programmera, med helt annan kompetensbakgrund och som jobbar med potentiellt andra språk än erfarna programmerare, säger hon och lägger till:
– Det är intressant att se hur vi behöver stödja den användargruppen på andra sätt än professionella programmerare.
Med kunskapen på plats har projektet klivit in i en designfas. I en iterativ process testar de hur programanalysresultaten kan presenteras och hur de kan detektera användarmönster. De har bland annat en open source-plattform för att anpassa programanalys efter ögondata.
– Det är ett proof of concept för hur vi kan trigga olika saker i en kompilator beroende på ögonrörelser.
– Det mänskliga perspektivet driver oss, att få saker att fungera bättre utifrån hur vi faktiskt är som användare.
Forskningsprojektet ADAPT: Adaptive Developer Tools är fullt finansierat av SFF och pågår till och med 2025. Målet är att utveckla teknik för adaptiva programanalysverktyg och i förlängningen underlätta för mjukvaruutvecklare att skriva källkod med högre kvalitet.
Projektets open source-plattform finns på: gitlab.com/lund-university/gander
Kontakt: emma.soderberg@cs.lth.se