Delta modelling zorgt voor minder fouten in nieuwe software-functies

Bij het programmeren van nieuwe software-functies worden makkelijk veel fouten gemaakt. De code van meerdere functies grijpt vaak in op dezelfde plek.

Trefwoorden: #Centrum Wiskunde & Informatica, #CWI, #Delta modelling, #functies, #Michiel Helvensteijn, #programmeren, #software

Lees verder

Nieuws

( Foto: © Michiel Helvensteijn )

ENGINEERINGNET.NL - Hierdoor zou de code van de ene functie soms ongemerkt die van een andere kunnen overschrijven.

Dit leidt dan weer tot 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.

Vorige week promoveerde hij 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 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 functies idealiter elk tot één module worden samengevoegd, zodat code van verschillende functies netjes gescheiden is.

In realiteit moet code juist over verschillende locaties in de software worden verspreid en gemixt met die van andere functies. De promovendus ontwikkelde samen met collega’s de formele methode van Abstract Delta Modelling (ADM) om dit probleem te kunnen lossen.

Hij liet bijvoorbeeld zien hoe een functie 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".

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

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.


(bron: CWI)