Overslaan en naar de inhoud gaan

Eenvoudig legacycode repareren of uitbreiden: methode komt er aan

Man achter computer met programmeercode op het scherm.
Shutterstock.com

Het lijkt te mooi om waar te zijn: een geautomatiseerd proces dat gecompileerde legacycode omzet in goed leesbare broncode en die na bewerking weer terugzet in machinecode. Maar een door het Amerikaans ministerie van Defensie gesponsord onderzoek aan de Georgia Tech lijkt dat echt mogelijk te maken.

Halverwege het vijfjarig project V-SPELLS ligt er al een goedwerkend prototype dat getest gaat worden door onder meer de US Navy, bericht The Register op basis van gesprekken met universitair docent en projectdeelnemer Brendan Saltaformaggio. Na het uitvoering testen en fijnslijpen de komende twee jaar, is de verwachting dat de methode met open armen ontvangen wordt door de verschillende Amerikaanse overheidsdiensten die zich al met grote belangstelling hebben gemeld.

Na twee jaar al legacystatus

De Amerikaanse overheid kampt met het probleem dat er heel veel aan onderzoek en ontwikkeling wordt besteed om toonaangevende software te bouwen die vervolgens na twee jaar moet worden herzien, terwijl niemand de broncode meer heeft. Het is gebruikelijk in de VS dat de software als executable wordt overgedragen aan het Pentagon, maar niemand de verantwoordelijkheid krijgt om de broncode te beheren. Zo kan het gebeuren dat inderdaad na twee jaar de software legacystatus heeft, laat staan wat de status is van code die tien jaar of langer geleden werd geïmplementeerd. 

Nu is er in de loop van de jaren genoeg techniek ontwikkeld om software te decompileren of te re-engineeren, maar de resulterende code is vaak slordig en moeilijk leesbaar. Vaak zijn deze methoden alleen in gebruik om uit te vogelen hoe een programma werkt en te zien of er exploiteerbare fouten in zitten. Het doel van het V-SPELLS (Verified Security and Performance of Large Legacy Software)-project is echt een methodiek te ontwikkelen waarmee een ontwikkelaar code kan aanpassen en weer opnieuw kan implementeren.

Volgens Saltafromaggio kan het prototype inmiddels met elk probleem dat DARPA tot nog toe heeft voorgelegd uit de voeten. 

Regressietesten ingebouwd

De aanpak in het V-SPELLS-project is de binaire code om te zetten in een graph-structuur met pseudocode en die aan ontwikkelaars te presenteren op een manier dat ze deze makkelijk kunnen doorzoeken, veranderen of aanvullen. Vervolgens worden er tests uitgevoerd waarmee kan worden vastgesteld of de werking van de software niet is aangetast door de veranderingen die zijn aangebracht. Daarna kan de nieuwe vernieuwde code in gebruik genomen worden. 

De methode werkt vooralsnog alleen met code geschreven in C en C++. Maar volgens Saltaformaggio is er geen reden te denken dat de methode niet kan worden omgebouwd voor bijvoorbeeld Java of Python. Dat moeten andere teams echter doen, vindt hij. 

Bredere inzet mogelijk

DARPA is doorgaans niet te beroerd om technologie die succesvol is ontwikkeld voor eigen gebruik, ook vrij te geven voor toepassing in 'civiele' omgeving. Dat kan in dit geval misschien nog wel eens tien jaar duren, gezien het wetenschappelijk stadium waarin de methode nu nog verkeerd. Maar Saltaformaggio verwacht dat dit zeker gaat gebeuren, zo schrijft The Register. 

Reacties

Om een reactie achter te laten is een account vereist.

Inloggen Word abonnee

Bevestig jouw e-mailadres

We hebben de bevestigingsmail naar %email% gestuurd.

Geen bevestigingsmail ontvangen? Controleer je spam folder. Niet in de spam, klik dan hier om een account aan te maken.

Er is iets mis gegaan

Helaas konden we op dit moment geen account voor je aanmaken. Probeer het later nog eens.

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in