Een dure vuurpijl, zo omschrijft Mark van den Brand, lector Softwarekwaliteit aan het Instituut voor Informatica, de raket Ariane 5 die in 1996 in de lucht uit elkaar spatte. “Door een fout in de software ontplofte de Ariane 5 na 39 seconden. Die raket kostte vijfhonderd miljoen dollar.” In zijn openbare les, getiteld Softwarekwaliteit: hypes versus onderzoek in de software engineering, schrijft hij dat de hype het vaak wint van kwaliteit.
|
Foutloze software utopie
Veel informatici vinden dat computerprogramma’s gegarandeerd volledig correct moet zijn. Van den Brand vindt dat een nobel, maar vooralsnog onhaalbaar streven. “Foutloze software is waarschijnlijk een utopie.”
Gemiddeld zitten er 25 bugs in duizend regels code. Veel van deze bugs zijn onschuldig; ze zijn bijvoorbeeld door een simpele herstart te verhelpen. Er zijn echter ook talloze minder onschuldige bugs, die vaak veel geld kosten. Denk aan de ontplofte Ariane 5 en de Mars-sonde die niet op de juiste hoogte werd gestationeerd (50 kilometer in plaats van 50 mijl).
Daarnaast wordt bij softwareontwikkeling vaak geen rekening gehouden met de levensduur van de programmatuur. De snelheid waarmee grote softwareleveranciers nieuwe versies van hun applicaties uitbrengen onderschrijft deze stelling. De levensduur van software wordt volgens Van den Brand schromelijk onderschat, waarbij hij verwijst naar het millenniumprobleem. “Niemand heeft zich in de jaren zestig en zeventig van de vorige eeuw gerealiseerd dat de toen ontwikkelde systemen tijdens de millenniumwisseling nog operationeel zouden zijn.” Het kwaliteitsaspect onderhoudsgemak gaat dan een veel belangrijker rol spelen, meent hij.
Gedegen opleiding
Softwarekwaliteit gaat niet alleen om de correctheid van het geschreven programma, zoals velen stellen. Ook functionaliteit, betrouwbaarheid, bruikbaarheid, efficiëntie, onderhoudsgemak en overdraagbaarheid spelen een rol.
Een hoge kwaliteit is op meerdere manieren te realiseren. Allereerst door het inzetten van gereedschappen die de ontwikkeling vereenvoudigen. Daarbij valt te denken aan ontwikkelomgevingen die de programmeur continu ondersteunen bij zijn werkzaamheden door middel van bibliotheken met voorgedefinieerde componenten (programmageneratoren). Daarnaast moeten mensen die werken in de software engineering een degelijke opleiding hebben, stelt de lector.
Het lectoraat Softwarekwaliteit (een samenwerkingsverband tussen de Universiteit van Amsterdam, de Vrije Universiteit, de Hogeschool van Amsterdam en het Centrum voor Wiskunde en Informatica) wil hierop inspringen door kennis te ontwikkelen en onderzoek te doen naar het efficiënt produceren van kwalitatief hoogwaardige software. Volgens Van den Brand bestaat er een grote kloof tussen het fundamenteel en het toepassingsgericht onderzoek in de software engineering. Het lectoraat wil een belangrijke rol spelen in het dichten van deze kloof.
Verschillende rijksinitiatieven, zoals het ICT-Regieorgaan (zie ook https://www.computable.nl/artikels/archief4/d24kl4px.htm), onderstrepen de wens van de regering om voorop te lopen op ict-gebied. Het is volgens Van den Brand de vraag of de Nederlandse overheid inziet dat software engineering een onderzoeksgebied is dat van serieus belang is voor de (economische) ontwikkeling van Nederland. Als voorbeeld haalt hij het Presto-project aan, het enige aan software engineering gerelateerde onderzoeksvoorstel dat werd ingediend voor Ices-KIS-3 (een subsidie voor investering in kennisinfrastructuur). Dat voorstel werd door het Centraal Plan Bureau van de hand gewezen, omdat het volgens dit bureau beter aan Amerikaanse universiteiten kon worden uitgevoerd of door de Nederlandse software-industrie zou moeten worden gefinancierd. “Dit doet vermoeden dat de Nederlandse overheid het nog niet helemaal begrepen heeft.”
Houding bedrijfsleven
De houding van de Nederlandse software-industrie met betrekking tot kwaliteit wordt eveneens beïnvloed door de handelsmentaliteit van het Nederlandse bedrijfsleven, schrijft Van den Brand. Bedrijven vergeten soms dat de bouw van kwalitatief goede software n� misschien een grote investering is, maar dat deze zich op de lange termijn terugbetaalt doordat de programmatuur makkelijker te onderhouden is. Volgens de lector gaat het leeuwendeel van het geld dat wordt besteed aan softwareontwikkeling naar projectmanagement en overhead, en niet naar de code zelf. Veel bedrijven besteden applicatieontwikkeling uit. Het nadeel daarvan is dat gedetacheerde softwareontwikkelaars vaak kort op een project zitten en daarom weinig verantwoordelijkheid voor de lange termijn nemen. Daarnaast heerst er in Nederland een cultuur waarin het ‘reviewen’ van opgeleverde software niet standaard gebeurt. Dat leidt tot software die niet aan de gestelde eisen voldoet, slecht ontworpen is, gebouwd is door onervaren maar goedkope programmeurs en onvoldoende getest is. Software-ontwikkelprojecten overschrijden daardoor de budgetten met enorme bedragen, omdat er tijdens het gebruik nog talloze bugs moeten worden opgelost. Daarnaast is dit soort software lastig te onderhouden. “De reactie op zo’n situatie is het project afblazen en opnieuw beginnen met de volgende hype.”
Lectoraat
Van den Brand onderscheidt in zijn openbare les drie factoren die de kwaliteit van software beïnvloeden: het projectmanagement, de inhoudelijke kennis van de software engineer en de gebruikte methoden, technieken en tools. “Op het management van softwareprojecten willen we geen invloed uitoefenen”, schrijft hij. “De inhoudelijke kennis van de uitvoerende mensen kunnen we alleen indirect beïnvloeden via het onderwijs.” Op het gebied van de gebruikte tools kan het lectoraat echter een belangrijke rol spelen. Op dit moment is het onderzoek gericht op het gebruik van programmageneratoren bij softwareontwikkeling en de consequenties voor de kwaliteit van de geproduceerde programmatuur. “Een belangrijke taak van het lectoraat Softwarekwaliteit is het vertalen van onderzoeksresultaten naar het onderwijsprogramma.”< BR>
De openbare les van dr. Mark van den Brand is te downloaden op: http://www.hva.nl/lectoraten/lessen.htm