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.
Universiteit Twente