Oude software eindelijk inzichtelijk /reageer

Oude software eindelijk inzichtelijk

Software-programma’s zijn zelden foutloos. Afhankelijk van de samenwerking tussen verschillende programmeurs, de complexiteit van de software en de duur van de testperiode zal een programma sneller of minder snel crashen. Vaak is het echter niet mogelijk om als softwaregebruiker hier een vinger achter te krijgen. Promovendus Lucian Voinea ontwikkelde voor het eerst een methode om de ontstaansgeschiedenis, en daarmee deels de kwaliteit, van een softwareprogramma visueel inzichtelijk te presenteren. Hij verdedigde begin oktober zijn proefschrift ‘Software Evolution Visualization’.

“Software evolueert soms met rare sprongen”, zegt Voinea. “Soms neemt een programmeur een ontwerpbeslissing die op het moment klein lijkt, maar die in de loop der tijd een flinke impact heeft op de stabiliteit van het hele programma.” Het beroemdste voorbeeld hiervan is de millenniumbug. Om in de begintijd van de softwareprogrammatuur ruimte te besparen, die toen ontzettend duur was, werden de jaartallen in slechts twee cijfers weergegeven. Om de overgang naar het jaar 2000 toch vlekkeloos te laten verlopen, was een wereldwijde reparatie-inspanning noodzakelijk.

Bewust gemaakte keuzes

“Met dit simpele voorbeeld kun je zien dat veel problemen in software vaak niet het gevolg zijn van stomme fouten, maar van bewust gemaakte keuzes. Met mijn methode kun je erachter komen wat de redenen van de programmeurs indertijd waren voor het maken van ontwerpcodes.” Een voorbeeld van software uit het verre verleden is de vele ‘onleesbare’ antieke software bij bijvoorbeeld banken. Bovenop de eerste, oude regelscode is vaak een lappendeken aan nieuwe programmatuur ontstaan, waarbij niet altijd meer te achterhalen is waarom ontwerpbeslissingen in het verleden genomen zijn.

Voinea: “Een programmeur kan bijvoorbeeld besloten hebben om twee stukken software te splitsen. Wellicht omdat dat beter is voor de stabiliteit van het programma. Maar dat weet je nu niet. Een programmeur die in een volgende versie die stukken software bij elkaar zou willen zetten, kan dan onbewust een flinke fout begaan.”

Het maken van grote pakketten software die foutloos werken, is in de praktijk dan ook een zeer moeilijke opgave. Steeds vaker zijn softwareproblemen de oorzaak van treinvertragingen, elektriciteitsstoringen of internetuitval. Zo werd in juni van dit jaar bekend dat mislukte ict-projecten de overheid in de afgelopen vijf jaar maar liefst honderd miljoen euro hebben gekost. Elke manier om de kwaliteit van het ontwerp en het onderhoud van software te verbeteren, is dan ook meer dan welkom.