Universiteit Leiden Universiteit Leiden

Nederlands English

Minder fouten in software features door delta modelling

Bij het programmeren van nieuwe features in software worden makkelijk veel fouten gemaakt. Hierdoor ontstaan bugs, die ertoe leiden dat software later op de markt komt en duurder is. Michiel Helvensteijn, promovendus van CWI en het Leiden Institute of Advanced Computer Science, onderzocht manieren om dit soort fouten te voorkomen. De resultaten zijn interessant voor software engineers en de industrie.

Software wordt steeds groter en wordt ook door steeds meer ontwikkelaars gemaakt, waardoor het steeds moeilijker uit te breiden is. Om te voorkomen dat de software te complex wordt, moeten features idealiter elk tot één module worden samengevoegd, zodat code van verschillende features netjes gescheiden is. In realiteit moet code juist over verschillende locaties in de software worden verspreid en gemixt met die van andere features. Michiel Helvensteijn ontwikkelde samen met collega’s de formele methode van Abstract Delta Modelling (ADM) om dit probleem te kunnen lossen.

Apinatomy – een applicatie ontwikkeld met delta modelling. Bron: Michiel Helvensteijn.

Conflictoplossend model

De promovendus liet bijvoorbeeld zien hoe een feature met één deltamodule geformuleerd kan worden. Zo’n deltamodule verandert bestaande code van buitenaf en geeft aan welke code waar neergezet moet worden of welke bestaande code aangepast moet worden. Helvensteijn maakte het mogelijk dat ontwikkelaars relaties tussen delta’s kunnen aangegeven, zoals welke delta een andere mag overschrijven. Daarnaast ontwierp hij een conflictoplossend model.

Foutmelding

Helvensteijn: ‘Als geen van de delta’s ‘de baas’ is, krijgt de ontwikkelaar nu een duidelijke foutmelding, terwijl in eerdere technieken de ene module stilletjes de code van de ander kon overschrijven. Als ontwikkelaars deze methode voor conflict resolution volgen, scheelt het hun veel bugs. De software is dan modulair en makkelijk te onderhouden’.

Softwaresystemen

De promovendus vervolgt: ‘Software Product Line Engineering heeft hier in het bijzonder veel bij te winnen. Hierin kan dezelfde code-base gebruikt worden voor softwaresystemen die elk een ander maar vaak overlappende verzameling features hebben. Een specifiek systeem kan dan gegenereerd worden door een selectie van features te maken: ‘automated product derivation’. ADM kan hier helpen om de code ‘componeerbaar’ te maken, bijvoorbeeld voor meerdere software edities’.

Samenwerking tussen onderzoek en industrie

De nieuwe methode is in de praktijk getest en werkt goed. Het promotieonderzoek is mede gefinancierd door het EU HATS-project, waarin onderzoeksorganisaties en de industrie samenwerken aan software-variabiliteit. Software is een van de speerpunten van het Centrum Wiskunde & Informatica (CWI), waar het onderzoek is uitgevoerd.

Op woensdag 12 november promoveerde Michiel Helvensteijn aan de Universiteit Leiden op zijn proefschrift ‘Abstract Delta Modeling – Software Product Lines and Beyond’. 

Bron: Centrum Wiskunde & Informatica (CWI)

Meer informatie

Onderzoeksgroep Formal Methods