Veel mensen weten het niet, maar ook in een koelkast, printer, digitale horloge en auto zit software. En ook die software moet onderhouden worden. Onderzoekers van TNO-ESI helpen fabrikanten daarbij.
Vanochtend heeft u zich na het opstaan misschien eerst gewogen op de digitale weegschaal, op uw digitale horloge gekeken hoe laat het is, de verwarming hoger gezet en eten uit de koelkast gepakt. Wat u zich waarschijnlijk niet realiseert is dat al deze apparaten worden aangestuurd door software. Het gaat om software waar u zich meestal niet bewust van bent, maar die er wel is. Zonder die software doet de weegschaal het niet en krijgt de verwarmingsketel kuren. Heeft u een auto? Daar zit nog veel meer onzichtbare software in verwerkt.
Ook in de machines in de industriële sector of gezondheidssector zit software. Denk bijvoorbeeld aan een elektronenmicroscoop of een röntgenapparaat in een ziekenhuis of een printer. Al die zogeheten embedded software is speciaal door de fabrikanten ontworpen. Door de jaren heen groeit de software die in apparaten zit, wat tot problemen kan leiden.
Boomstam met jaarringen
De afdeling Embedded Systems Innovation (ESI) van TNO doet toegepast onderzoek naar grootschalige software ontwikkeling, de zogenoemde Big Software. Onderzoeker Arjan Mooij gebruikt de metafoor van een doorgezaagde boomstam, waarbij je alle jaarringen ziet, om uit te leggen wat het probleem precies is. “Neem bijvoorbeeld een nieuwe printer die op de markt komt. De ontwikkelaars pakken de software van een oude printer (oftewel legacy software) als basis en gaan die uitbreiden met nieuwe software. De eerste jaarring van de boomstam (de oude software), krijgt gezelschap van een tweede jaarring (de uitbreiding), en bij de volgende generatie een derde enzovoorts.” Datzelfde doen ze bij fouten. Ook dan leggen ze er een ring omheen met een update.“De ontwikkelaars komen liever niet aan de kern van de software. Hierdoor wordt alles steeds complexer.”
Mooij wijst verder op de millenniumbug, de overgang van Windows XP naar Windows 7 en de aanpassing van 32-bits processoren naar 64-bits. Ook daarbij moesten bedrijven de software in hun machines bijwerken. “Ze hebben geen invloed op dit soort externe veranderingen, maar als ze niets doen, dan kunnen ze uiteindelijk geen product meer op de markt zetten. Hoeveel geld er precies gemoeid is met het onderhouden van embedded software is nooit goed onderzocht. Naar schatting gaat het om tenminste veertig procent van de industriële software ontwikkelbudgetten.”
Verjongingskuur
Om software efficiënter te onderhouden en uit te breiden, moet je de jaarringen opruimen, meent Mooij. “Dat komt neer op een soort verjongingskuur, rejuvenation genoemd. Je kunt proberen om alle oude software weg te gooien, en gewoon opnieuw te beginnen. Het risico is dan dat er dingen worden weggelaten die wel van belang blijken te zijn. Die verrassingen wil je niet. Dit leidt dan tot mislukte ict-projecten die uitlopen en meer geld kosten dan begroot.”
Programmeerregels met kennis
Reden voor Mooij en TNO-ESI om te kijken naar technieken waarmee zo’n verjongingskuur sneller en betrouwbaarder wordt uitgevoerd tegen lagere kosten. “We proberen tot een verjongingsslag te komen. Als het kan pakken we de ontwikkeldocumentatie erbij, maar de kennis over wat de oorspronkelijke software precies doet is er vaak niet meer. In de programmeerregels, de code van de software, vind je die informatie wel. Helemaal verstopt in het bouwwerk dat gecreëerd is.”
Uit oude software extraheren de onderzoekers van TNO-ESI modellen. “De modellen beschrijven in de kern wat de software doet. Waar gaat het nu echt om, wat moet de machine doen? De belangrijke regels, de logica, communicatieprotocollen. We kijken dus niet naar de ringen of hoe het ooit is opgeschreven. Alle ringen verdwijnen en de essentie wordt weer helder en actueel.”
Samen met de Nederlandse hightech-industrie bekeek TNO-ESI meerdere voorbeelden van software die een verjongingskuur konden gebruiken. Ze richten zich op een combinatie van mens en machine, waarbij ze samen een analyse van de oude software doen. “De hoeveelheid legacy software is veel te groot om het alleen met mensen op te lossen en computers zijn ook nog niet zo slim dat ze dit alleen kunnen doen.”