Softwarespecificaties zijn vaak vaag, inconsistent en ze bevatten fouten. Hierdoor ontstaat een cultuur waarin programmeurs systemen bouwen naar eigen inzicht en steeds minder acht slaan op softwarespecificaties. Dat leidt tot een enorme verspilling van programmeerinspanningen en een slechte software-architectuur. Dat zegt hoogleraar Jan Friso Groote van Technische Universiteit Eindhoven.
Hij leidt daar de faculteit Systeemontwerp en is gespecialiseerd in de softwareveiligheid van ingebedde systemen.
‘Een voorbeeld van een vage omschrijving is: de software moet gebruiksvriendelijk zijn’, vertelt Groote in een vraaggesprek met Computable. ‘Daaruit kan een programmeur niet opmaken of hij een bepaald edit-veldje wel of niet moet aanmaken, hoe competent hij ook is.’
Hak- en breekwerk
Hierdoor ontstaat volgens Groote ‘een cultuur waarin programmeurs systemen bouwen naar eigen inzicht en steeds minder acht slaan op softwarespecificaties. Dat leidt tot een enorme verspilling van programmeerinspanningen en een slechte software-architectuur.’
Hoe inefficiënt die werkwijze is, illustreert Groote aan de hand van een metafoor: ‘Stel je de bouw van een huis voor aan de hand van een onduidelijke schets. Stel je voor dat de aannemer desondanks begint met de bouw van het huis. Het gevolg: hak- en breekwerk, omleggen van leidingen, de constructie van extra steunpilaren. Kortom: enorme vertragingen en een gebrekkige architectuur.’
Software verificatie
Goede softwarespecificaties zijn volgens Groote essentieel bij het voorkomen van programmeerfouten: ‘Wat wil je dat de software wel doet, en wat juist niet?’ Andere hulpmiddelen zijn het testen van software door het geautomatiseerd analyseren van een vereenvoudigde model van de software. Ook softwareverificatiesystemen zouden volgens de hoogleraar vaker moeten worden gebruikt.