Het aanpassen van broncode is een tijdrovende en dure klus. Veel bedrijven verplaatsen het onderhouden van software daarom naar het buitenland. Jurgen Vinju denkt dat dit door zijn onderzoek niet meer nodig is.
Vinju is onderzoeker bij het Centrum voor Wiskunde en Informatica (CWI). Hij promoveert dinsdag op een proefschrift waarin hij onderzoekt hoe broncode automatisch aangepast kan worden, maar de kwaliteit van de code wel behouden blijft. “Bij het automatisch aanpassen komt de leesbaarheid in het geding”, zegt Vinju. Hij baseert zijn systeem op de technieken van het ontleden en ’termherschrijven’ met de programmeertaalASF+SDF. Het resultaat is een verbeterde versie van ASF+SDF.
Vinju paste de programmeertaal zo aan dat de geautomatiseerde code te lezen blijft voor de programmeur. “Door het automatiseren van onderhoud wordt het commentaar dat in de code staat vaak weggegooid. De software wordt zo onbegrijpelijk voor mensen”, zegt Vinju. Vinju breidde het bestaande onderhoudssysteem uit met het behoud van layout en commentaar. “Ik wilde in ieder geval dat het commentaar bleef staan, maar er moest ook commentaar aan toe kunnen worden gevoegd”, zegt Vinju. Anders dan andere programmeertechnologieën is het systeem van Vinju toepasbaar op verschillende programmeertalen, waaronder Cobol en C.
Tekortkomingen
Vinju inventariseerde aan de hand van eerdere case studies de tekortkomingen van ASF+SDF. Daarna paste hij de taal aan en toetste deze aangepaste taal op de eerdere case studies en bij industriële partners, voornamelijk banken. Een groot struikelblok was voor Vinju de ambiguïteit van code. “Neem bijvoorbeeld de zin ‘Hij zag het meisje met de verrekijker’. Zo is ook de betekenis van broncode niet meteen duidelijk.”, zegt Vinju. Het systeem moet dan op een geïnformeerde wijze kiezen voor één betekenis. “Ik heb geprobeerd om dit het systeem op een korte en heldere manier uit te leggen”, zegt Vinju.
Vinju denkt dat zijn onderzoek mogelijkheden biedt om het onderhoud van software niet langer te outsourcen. “Bedrijven worstelen of ze het aanpassen van software in huis willen houden. Het lijkt vaak goedkoper om het uit te besteden. Mijn systeem maakt het aanpassen goedkoper, waardoor het onderhoud in huis kan blijven”, zegt Vinju.