Embedded software wordt bron van zorg
Ingebedde software is in feite niets anders dan ‘gewone software’, die vast zit ingebouwd in een systeem. Boasson: "En daar zit nu net de kneep, die ingebedde software heeft dus dezelfde (on)hebbelijkheden als gewone software. Misschien nog wel in hogere mate, omdat je de programmatuur niet makkelijk kunt aanpassen." Begin april werd nog pijnlijk duidelijk op wat voor schaal problemen met embedded software kunnen optreden. DaimlerChrysler is bijvoorbeeld gedwongen een groot aantal auto’s van het type Mercedes terug te roepen, omdat er een fout is geconstateerd in de software van de boordcomputers. De wagens hebben een probleem bij de stroomvoorziening van de boordelektronica, die in dit soort grote auto’s wordt gevoed met twee accu’s. Software zorgt ervoor dat die accu’s op de juiste manier worden belast. Het is wellicht een kleine ingreep om die software aan te passen, maar het moet in de fabriek gebeuren en ook nog eens bij een groot aantal auto’s. Geen incident De problemen bij Mercedes zijn geen incident. Zo was er in 1997 de geavanceerde interlokale bus, de Interliner, die bij het station van Eindhoven op hol sloeg. Dat incident is toen onderzocht door een team van de TU Eindhoven en daaruit bleek dat de ‘ingebakken’ software van de bus niet correct was. Een combinatie van factoren zorgde ervoor dat de bus niet meer kon worden afgeremd en de pui van het station ramde. In oktober 2003 moest een kapitein van een Connexion draagvleugelboot zijn vaartuig op het IJ op een kade laten lopen, omdat de besturing het volledig liet afweten. Een jaar eerder was er een vergelijkbaar incident met zo’n boot. Op hol slaan "Net als bij ‘gewone’ software doet embedded software soms niet wat ervan wordt verlangd. De makers van die applicaties ontkennen dat vaak maar er zijn te veel voorbeelden waar het fout gaat met embedded software. Denk maar aan op hol slaande cruise controls, of systemen voor bestraling in ziekenhuizen die veel te veel vermogen produceren." "De eenvoud van embedded software wordt ook vaak overdreven", stelt prof. dr Chris Verhoef van de Vrije Universiteit in Amsterdam. "De software aan boord van een auto doorbrak tien jaar geleden al de grens van 1 miljoen regels code. Nu zitten we op een veelvoud daarvan. Ik zou dat toch geen simpele software willen noemen. Over een tijdje heeft een auto net zoveel software binnen de protieren als een middelgrote bank in zijn computersystemen", aldus Verhoef. Het probleem van embedded software is dat het niet meer kan worden aangepast. "Programmatuur die niet werkt kan worden aangepast. Bij embedded software bestaat die mogelijkheid niet. De functionaliteit zit vast ingebakken in een bepaald apparaat en werkt dat niet naar behoren dan is dat een probleem. "Een probleem", zegt Boasson, "dat in de toekomst alleen maar groter wordt omdat er steeds meer embedded software gebruikt wordt." Specs deugen niet De meeste problemen ontstaan volgens Boasson, doordat de ontwikkelaars van embedded software vaak geen idee hebben van de condities waaronder hun producten gebruikt worden. Volgens hem vallen al bij de opleiding Software Engineering zaken buiten de boot: "Daar wordt echt geen aandacht besteed aan natuurkunde om maar wat te noemen, of aan control theorie of signaalverwerking. Allemaal onderwerpen die een rol spelen bij systemen waarin ingebedde software wordt gebruikt. In de praktijk gebeurt daarom vaak het volgende: de ontwerper van ee embedded programma leest niet meer dan de specificaties waaraan de software moet voldoen en implementeert die vervolgens. Wat men nalaat is zich ook maar een moment af te vragen of die specificaties eigenlijk wel deugen."