Wetenschap

Hoogleraar bepleit systematische aanpak bij softwareontwikkeling

„Ooit werken programmeurs
bijna volmaakt”

Helma Rebel-Struijk
Negen uur lang vrijwel geen telefoonverkeer. Dat was het gevolg van het uitvallen van de telefooncentrale van New York, in januari 1990. Ruim zes jaar later stort 36 seconden na de lancering een Ariane-5-raket neer. Twee voorvallen die ogenschijnlijk niets met elkaar te maken hebben. Ze hebben echter wel dezelfde oorzaak: een fout in een computerprogramma.

Dat ze fouten maken, weten ze. Maar sommige softwarebedrijven hebben wel een heel slimme manier om die op te sporen. Ze roepen er de hulp van de klant bij in. Zo verspreidde softwaregigant Microsoft 250.000 zogenaamde bètaversies van het programma Office 2000, de opvolger van Office 97. Zo'n bètaversie kost de klant niets, maar in ruil daarvoor moet hij alle foutjes die hij tegenkomt, melden aan het softwarebedrijf. Op een cd-rom met een bètaversie van een programma zit een soort tijdklok, waardoor na een bepaalde tijd het programma niet meer te gebruiken is.

De Microsoft-klanten weten dat ze met een niet-volmaakt programma werken. Het gebeurt ook wel dat gebruikers dat ongemerkt doen, zoals bij het Internet-bladerprogramma Netscape. Boze tongen beweren dat dit bedrijf het opsporen van de fouten bewust zou hebben overgelaten aan de gebruikers.

Scepsis
„Hoe kan het dat programmeurs, in tegenstelling tot bijvoorbeeld technisch ontwerpers, steeds weer dezelfde, dure, fouten maken?”, vraagt prof. dr. T. Hoare zich af. Deze scepsis kan hem niet aangerekend worden. De hoogleraar computerwetenschappen aan de universiteit in Oxford geldt wereldwijd als een autoriteit op het gebied van de ontwikkeling van correcte computersystemen. Over het vóórkomen en voorkómen van deze fouten sprak Hoare vorige week in Den Haag tijdens de zevende NWO/Huygenslezing.

De hoogleraar houdt zich vooral bezig met software voor toepassing in vliegtuigen, raketten, kernreactoren en meer van dergelijke grootschalige projecten waar een klein foutje desastreuze of in elk geval zeer kostbare gevolgen kan hebben. Hoare kreeg voor zijn werk alle internationale eerbewijzen die de wereld van de computerwetenschappen kent.

De hoogleraar wil niet direct beweren dat programmeurs slordig te werk gaan. Niet onzorgvuldigheid maar een verkeerde systematische aanpak van de ontwikkeling van computerprogramma's is volgens hem de oorzaak van fouten. Gelukkig komen de meeste fouten nooit bij de klant terecht. „Programmeurs nemen de moeilijke taak op zich om elke fout op te sporen en ze één voor één te verwijderen, een karwei met de minder elegante naam “debugging” (ontluizen)”, zegt Hoare. De geijkte term voor een programmafout is “bug”.

Volgens hem een prijzige klus, waarvan de kosten wel de helft tot viervijfde van de totale ontwikkelingskosten bedragen. Toch merkt Hoare dat bedrijven dat er graag voor over hebben. Software geeft hardware pas daadwerkelijk waarde. Snelle levering is voor bedrijven dan ook belangrijker dan ontwikkelingskosten.

Enen en nullen
Het wijdverspreide vertrouwen in tests vormt volgens Hoare een deel van het probleem. De grote fout die programmeurs maken, is volgens de hoogleraar dat ze het testen van een computerprogramma vergelijken met het testen van een technisch product. „Eventuele risico's daar worden veroorzaakt door natuurlijke variaties in grondstoffen en het productieproces. Computerprogramma's bevatten dat soort fouten niet. De grondstoffen zijn enkel enen en nullen. Het enige doel van het tijdrovende debuggen is het opsporen van fouten die programmeurs door onzorgvuldig ontwerpen zelf hebben ingebouwd”, stelt hij.

De oplossing voor dit probleem is in Hoare's ogen dan ook niet zo moeilijk. Hij wijst daarbij op de meest succesvolle programmeurs. Zij werken structureel, beginnen met een helder ontwerp en nemen duidelijke regels in acht voor de structuur van hun programma. Het resultaat onderwerpen ze aan relatief weinig, maar goed doordachte tests. Ze zijn bijna altijd succesvol. De sleutel? Het gebruik van logica. Alle regels van de logica uit de 'gewone' wetenschappen gaan volgens Hoare ook op voor de computerwetenschap.

„Jammer genoeg”, zegt de hoogleraar, „hanteert maar een klein aantal programmeurs deze aanpak van ontwerpen en testen. Maar het geeft wel hoop. We moeten principes opstellen voor de computerwetenschap en verbreiden. Alle nieuwkomers in het vak moeten erin onderwezen worden, zodat op een dag iedereen bijna volmaakt programmeert. Een effectieve en goedkope oplossing”.