Till startsida
Webbkarta
Till innehåll Läs mer om hur kakor används på gu.se

Vad är egentligen bra mjukvarudesign?

Professor Michel Chaudrons forskningsområde handlar om hur man designar stora mjukvarusystem, vilket har flera likheter med hur man konstruerar stora byggnader – det krävs bra design för att nå ett optimalt resultat. För mjukvarusystem handlar bra design främst om prestanda, säkerhet i systemet, och om hur lätt systemet är att underhålla. Att hitta en balans i systemets komplexitet är också viktigt, ju mer detaljer du tillför, ju mer komplext blir det också att analysera och korrigera.

Att skapa en design sker i en mycket tidig fas av mjukvaruutvecklingen och innebär mycket tankeexercis, eftersom man i det här stadiet ännu inte har något att testa. Det enda som finns att tillgå är tänkta strukturer och kod och det innebär rätt stora svårigheter när man ska förutsäga hur systemet kommer att fungera. Det är ofta som designer och mjukvaruarkitekt man arbetar efter en masterexamen i datavetenskap, medan man direkt efter en kandidatexamen brukar ha hand om själva programmeringen av systemen – det finns alltså en tydlig nivåskillnad i komplexiteten.

Michels doktorsavhandling Separating Computation and Coordination in the Design of Parallel and Distributed Systems från år 1998 handlade om design av mjukvara, där ett stort fokus låg på den matematiska delen av processen. Efter sin doktorsexamen jobbade Michel två år som IT-konsult på ett IT-företag, där han kom in på de frågor som sysselsatt honom sedan dess: Vad kännetecknar egentligen bra mjukvarudesign? Och vilka led i mjukvaruprocessen är de som är mest avgörande för resultatet?

Headhuntad från Holland

Michel är ursprungligen från Leiden i Holland. Efter de två åren ute i industrin efter sin doktorexamen, arbetade han under en tioårsperiod som forskarassistent i Eindhoven, sedan ytterligare några år ute i industrin, och kom därefter tillbaka i akademin som biträdande professor i Leiden.

På en konferens inom mjukvara under 2012 fick Michel Chaudron en förfrågan om han inte var intresserad av att söka en av de utlysta tjänsterna inom software engineering i Göteborg. Michel lockades av att forskargruppen vid Göteborgs universitet och Chalmers var stor och sysslade med intressanta frågeställningar. Sverige anses ligga långt framme internationellt inom mjukvaruforskning och gruppen i Göteborg har potential att bli en av världens tio främsta. Michel sökte och fick en av tjänsterna och i september 2012 påbörjade han sin tjänst som professor på avdelningen för software engineering vid institutionen för data- och informationsteknik.

Gruppen inom Software Engineering i Göteborg har potential att bli en av världens tio främsta

Michel Chaudron om varför han tackade ja till tjänsten som professor i Software Engineering i Sverige.

Forskar helst på reella mjukvaruproblem ute i industrin

– Min forskning är operativ, säger Michel Chaudron, och jag uppskattar verkligen om jag kan få ta del av reella problem ute i industrin. Det börjar ofta med att jag kontaktar företagen och frågar dem om de vill delge mig sin design och följdfrågan blir sedan om de har upplevt några problem med den design de har idag. Vilken teknik använder de? Men det finns ett problem med att bedriva forskning på hur företag hanterar sin mjukvara och det är att designen emellanåt är konfidentiell. Därför ägnar vi oss också åt att studera open source, där vi har fri tillgång till både design och kod.

Mycket kan hända på vägen när man tar fram mjukvara

– I mina studier vill jag komma ifrån det rena tyckandet och istället fokusera på sådant som är mätbart. Ett problem är att de flesta mätbara fakta faller tillbaka på källkoden och mycket kan ha hänt på vägen. Designen kan ha utförts i Sverige, medan implementeringen sker i Indien till exempel och det är generellt svårt att peka ut exakt vad som har resulterat i vad. Människor har diskuterat sinsemellan och arbetat om vissa saker, en del implementeringar kanske inte genomfördes efter den ursprungliga modellen, andra problem kan ha tillstött. Modeller och design interagerar dessutom med varandra och problem i ett system kan både handla om en bra modell men med en misslyckad design, eller tvärtom.

Modeller som tydligt visar bra design?

– Hur skapar man modeller där man lätt kan se att det här är en bra design?, frågar sig Michel Chaudron. Jag arbetar mycket med att ta fram olika modeller som kan åskådliggöra hur designen fungerar. Ett av de analysinstrument för mjukvarudesign som vi har tagit fram visar tydligt var de svaga punkterna finns i systemen, men det kan ändå uppstå svårigheter med att prioritera – i synnerhet om det rör sig om riktigt stora system som kanske har 80 olika svaghetsmarkeringar. Företaget kanske väljer att åtgärda fem av dessa svaga punkter och hur avgör man om just dessa fem är de som är mest väsentliga för systemets prestanda?

Michel kommer in på att han gärna skulle vilja ta fram ett implementeringsverktyg som automatiskt uppdaterar designen för systemet, samtidigt som uppdateringar görs i implementeringsdelen. Detta för att slippa dubbelarbetet som uppstår när man måste gå baklänges och se vilka ändringar som även påverkar designavsnitten.

Hur lär man studenterna bra mjukvarudesign?

– Jag har en doktorand kvar i Leiden som jag fortfarande handleder och som studerar hur det mest optimala sättet att lära ut bra mjukvarudesign ser ut. Vi har en teori som handlar om att studenter som blir duktiga på abstrakt tänkande också blir duktiga på design av mjukvara och har funnit att tre typer av ”intelligens” är mest avgörande för att bli bra på mjukvarudesign: matematisk, logisk och språklig intelligens.

Michel har även skapat ett spel som ska underlätta för studenterna när de lär sig att konstruera mjukvara. Spelet get studenterna höga poäng för genomtänkt mjukvarudesign och de lär sig inte minst att göra rätt prioriteringar. Michels artikel om spelet vann år 2012 ett ”first paper award” på en konferens inom modellerande och mjukvarudesign. Spelet finns nu som prototyp och ska förhoppningsvis snart kunna användas i undervisningen.

Intresse för den mänskliga faktorn

I Sverige och Skandinavien har man ett större intresse för den mänskliga faktorn när det gäller mjukvara, menar Michel, medan man i övriga delar av Europa fokuserar mer på de rent datavetenskapliga delarna. I Sverige görs många empiriska studier på området: ”Låt oss hämta vår forskningsdata från företag ute i verkligheten!” och empiriska studier är ofta särskilt utmärkande för forskning inom software engineering. De mänskliga elementen har generellt sett mycket stor inblandning i resultatet av mjukvaruutvecklingsprocesserna. Det handlar om allt från enskilda personers attityder, till hur lagarbetet ser ut – vilket leder till olika val under mjukvaruprocessens gång.

 

Januari 2013

Text: Catharina Jerkbrant
Foto: Johan Wingborg
 



Kontaktinformation:

Michel Chaudron
Avdelningen för software engineering
Institutionen för data- och informationsteknik
+46 31 772 11 65

Forskningsprofilen

Michel ChaudronMichel Chaudron från Holland är sedan hösten 2012 professor på avdelningen för software engineering vid institutionen för data- och informationsteknik.

Sidansvarig: Catharina Jerkbrant|Sidan uppdaterades: 2013-02-05
Dela:

På Göteborgs universitet använder vi kakor (cookies) för att webbplatsen ska fungera på ett bra sätt för dig. Genom att surfa vidare godkänner du att vi använder kakor.  Vad är kakor?

Denna text är utskriven från följande webbsida:
http://itufak.gu.se/forskning/forskarintervjuer/michel-chaudron/
Utskriftsdatum: 2017-09-20