Brussel (B) – De duizenden regels code in een computerprogramma moeten op elkaar zijn afgestemd. Het beheren van complexe computerprogramma’s is daarom geen sinecure. Strikte software-architectuur biedt een oplossing.


Computerprogramma’s zijn vaak enorm complexe bouwsels. Zomaar een regel veranderen, is er niet bij. Dat kan ernstige consequenties voor het gehele programma hebben. Denk maar aan de milleniumbug, of de aanpassing van software voor de euro. Het uitvlooien van de honderdduizenden regels code in een programma neemt enorm veel tijd in beslag. De onderzoeker Kim Mens van het laboratorium voor programmeerkunde van de Vrije Universiteit Brussel ziet maar één oplossing: een strikte toepassing en onderhoud van de software-architectuur. Hij wijdde er zijn proefschrift aan.
Zoals een architect plannen maakt van gebouwen, vat een software-architect de structuur van een groot programma samen in een simpel schema. Net zoals een gebouw kun je een computerprogramma vanuit meer standpunten bekijken. Een programma met een duidelijke architectuur is veel eenvoudiger te begrijpen en te onderhouden dan eentje zonder.

Erosie
Helaas heeft software de neiging snel te ‘eroderen’. Onder tijdsdruk wijzigen programmeurs vaak de programmacode, bijvoorbeeld om fouten te verbeteren, zonder dat ze daarbij de architectuur ofwel opbouw aanpassen. Binnen de korste keren is die architectuur volledig achterhaald. Hij heeft dan nog maar weinig nut als documentatie van de software, als een programmeur de werking van het programma wil analyseren. Dit probleem van software-erosie is de voornaamste reden waarom programmeurs slechts zeer sporadisch de architectuur van hun programma’s documenteren. Waarom zouden ze: het is zonde van de geïnvesteerde tijd. Er is dus behoefte aan technieken die dit probleem kunnen ondervangen.
Dr Kim Mens onderzocht een rekenregel (algoritme) die nagaat of een programma nog steeds is opgebouwd en werkt volgens zijn oorspronkelijke architectuur. Als dit niet het geval is, geeft het algoritme precies aan waar de bewerkingen in het programma botsen met de oorspronkelijke architectuur.
Het algoritme dat programma en architectuur met elkaar vergelijkt, is zeer eenvoudig en voor de hand liggend. Het gebruikt enkele zeer logische en simpele principes. Toch zal de gewone computergebruiker er niet meteen mee overweg kunnen. Software-ontwikkelaars daarentegen zullen het algoritme zeker bejubelen. In de toekomst wordt het algoritme opgenomen in een totaalpakket dat een programmeur hints geeft om gevonden inconsistenties op te lossen. Tevens zal het de oplossingsstrategie semi-automatisch uitvoeren. Daarmee lijkt het een veelbelovende eerste stap om het belangrijke probleem van software-erosie op te lossen.

Peter Raeymaekers