Vad innebär din forskning?
– Säkerhetskritiska system är mjukvara som om den inte fungerar kan leda till att personer skadas eller till stora finansiella förluster. Till exempel mjukvara i självkörande fordon eller bromssystem. Spårbarhet innebär att kraven som ställs på ett system kan följas genom hela utvecklingen av systemet. I säkerhetskritiska system tillkommer ytterligare en dimension, riskanalys. Vi kan alltså titta på en specifik risk och se hur den hanteras i utformningen av systemet, i källkoden och vilka olika bevis i form av testfall eller simuleringar som finns för att visa att den är säker.
– Själv arbetar jag främst med obemannade flygfarkoster, så kallade drönare. Det första man gör är att metodiskt identifiera specifika risker. När det gäller drönare är en risk att informationen om var den befinner sig är felaktig. Om drönaren tar fel på var den är och åker iväg åt fel håll finns det risk att den kan skada personer eller egendom. I det fallet undersöker man systemet och ser vilka tänkbara orsaker som kan ligga bakom en felaktig position och så försöker man hantera risken. I det här fallet används alltid två separata metoder för att bestämma drönarens plats.
– Det finns flera sätt att arbeta med spårbarhet. Vanligtvis skapar man manuellt spårningslänkar men det är krångligt och när systemet utvecklas och nya funktioner läggs till måste man underhålla och utveckla spårningslänkarna. I forskningen har vi istället testat att använda maskininlärning och deep learning-metoder för att automatiskt skapa och underhålla spårningslänkar. Visionen är att vi automatiskt kan upptäcka och generera länkar vilket skulle göra att det här mödosamma momentet i mjukvaruutveckling på sikt kommer att försvinna.
– Jag har arbetat med flera av forskarna på avdelningen för software engineering, bland annat Dr Jan-Philipp Steghöfer och doktoranden Salome Maro, Dr Richard Berntsson-Svensson och Dr Eric Knauss. Det mest aktiva samarbetet just nu är med Jan-Philipp. Han forskar på användarsidan av spårbarhet. När vi automatiskt genererar spårlänkar kommer de inte att bli perfekta. Hur kan vi bäst stötta användarna så att de kan hantera de potentiella länkarna? Vilken annan information behöver de och hur ska den presenteras så att användaren kan göra snabba, korrekta bedömningar? Det samarbetar vi kring, och jag hoppas på ytterligare samarbete på det området.
Vad ser du i framtiden inom ditt forskningsområde?
– När man arbetar med säkerhetskritiska system måste man skapa något som kallas för safety argument. Det förklarar varför systemet är säkert att använda och visar att man tagit hänsyn till och hanterat riskerna i alla steg. För att kunna göra det måste du ha spårbarhet genom hela systemet. Vi tittar på vilka verktyg som kan hjälpa till med det.
– Det vi är särskilt intresserade av är hur verktyg kan stötta när mjukvaran stegvis utvecklas. Traditionellt bygger man mjukvaran efter att man fått alla krav, då skriver man koden och som sista steg försäkrar man sig om att mjukvaran är säker och får den certifierad eller godkänd. Men det här är ett gammalt sätt att arbeta som kväver innovation eftersom det är väldigt kostsamt att omcertifiera om du utvecklar mjukvaran. Så det vi vill göra är att skapa verktyg som med hjälp av AI kan jämföra version ett och version två och förstå vad som ändrats och hur det påverkar säkerheten.