Minder fouten in features door delta-modelling

Bij het programmeren van nieuwe features in software worden makkelijk veel fouten gemaakt. De code van verschillende features grijpt vaak in op dezelfde plek, en zo kan de code van de ene feature soms ongemerkt die van een andere overschrijven. Hierdoor ontstaan bugs, die ertoe leiden dat software later op de markt komt en duurder is. Michiel Helvensteijn, promovendus van het Centrum Wiskunde & Informatica (CWI) te Amsterdam, onderzocht manieren om dit soort fouten te voorkomen.

Michiel Helvensteijn promoveerde aan de Universiteit Leiden op zijn proefschrift ‘Abstract Delta Modeling – Software Product Lines and Beyond’. De resultaten zijn interessant voor software-engineers en de industrie. 

Software wordt steeds groter en 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.

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.

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".

Hij 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 meer software-edities."

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.

Meer informatie:
https://www.cwi.nl/research-groups/Formal-Methods

http://www.mhelvens.net/