Universiteit Twente

Aanpak softwarefouten: 'kleine tools' vaak onderschat

Oratie prof.dr.ir. Arend Rensink

09 november 2011

In de strijd tegen fouten die optreden in software, is vooral de explosief stijgende complexiteit een geduchte `vijand'. De rol die zelf-ontwikkelde, kleine software tools kunnen spelen in deze strijd, wordt nog wel eens onderschat, vergeleken met zwaar gepatenteerde oplossingen van de industrie. Te vaak blijft het dan bij een eenmalige exercitie, terwijl het tool veel meer potentie heeft. Een gemiste kans, want zo'n `lelijk eendje' kan uitgroeien tot een mooie zwaan. Dat stelt prof. Arend Rensink in zijn intreerede als hoogleraar Softwaremodellering, -transformatie en -verificatie aan de Universiteit Twente, op 10 november.

Als voorbeeld noemt Rensink een tool genaamd GROOVE, ontwikkeld in zijn groep, waarmee verificatie van software mogelijk is op basis van de grafentheorie. De taal van de grafen is een manier van beschrijven van de software, die onder meer de verschillende 'paden' beschrijft die een computerprogramma kan afleggen. Met het zelf ontwikkelde tool is het mogelijk om software te analyseren en fouten te achterhalen, maar ook om het onderliggende model waarop de software is gebaseerd alvast te testen, zelfs voordat er geprogrammeerd wordt. Tools als deze is helaas vaak maar een kort leven beschoren, publicaties vermelden vooral de resultaten die ermee behaald zijn en daar blijft het bij. Bijvoorbeeld omdat het nog geen hapklare brokken zijn voor de software-industrie. Zonde, aldus Rensink, want het beschikbaar stellen van de code, zonder de frustrerende effecten van softwarepatenten, helpt al om de tool verder te ontwikkelen.

Merwedebrug bleef open

In zijn oratie beschrijft Rensink uitgebreid de kracht van de grafentheorie om software te modelleren en te verifiëren. In zijn ogen passen deze beschrijvingsmethode en de bijbehorende grammaticaregels beter bij de huidige object-georiënteerde software dan de bestaande procesalgebra. Wat blijft is de explosie van complexiteit, die er recent bijvoorbeeld toe leidde dat de Merwedebrug wel open ging, maar niet weer dicht, met een extreme file tot gevolg. Maar ook ernstiger gevolgen van softwarefouten zijn denkbaar. Om die complexiteit aan te kunnen heeft Rensink vier oplossingsregels om met grafen te kunnen werken: reductie - doe alleen het hoog nodige -, decompositie - verdeel en heers, abstractie - doe niet zo moeilijk - en tooling - zet de computer aan het werk. Op die manier is het complexe probleem in deelproblemen te verdelen die beter behapbaar zijn.